Pardus Sunucu Üzerinde Docker ile Zabbix Kurulumu – 1 yazımız,
Zabbix ile monitoring faaliyetleri yapmak istiyorsanız ve bu işlemi docker ile sürdürmek niyetinde iseniz bu yazı tam da size göre 🙂
Amacım Zabbix tarafında bir yazı sinsilesi başlatmak. Buna da Zabbix ve bağlı servisleri docker kullanarak container oluşturarak başlamak istiyorum.
Aşağıdaki servisleri docker üzerinde konumlandırıp zabbix web panel ile süreci tamamlayacağız.
- Postgresql
- Zabbix-Server
- Nginx Web Server
- Zabbix-agent
- Pgadmin
- Grafana
Haydi başlayalım.
Öncelikle docker üzerinde postgres hizmet alacağımız için volume olarak kullanmak amacı ile iki tane klasör oluşturuyorum. Bunlar zabbix db datası için kullanılacak data diğeri de nginx web server tarafında kullanacağımız ssl klasörü.
mkdir data ssl
Komutu ile data ve ssl adında 2 klasör oluşturuyorum.
cd data
komutu ile data klasörü içerisine ulaşıyorum.
Postgres
docker container run --name postgres-server -t -e POSTGRES_USER="idelibalta" -e POSTGRES_PASSWORD="1234+abcd" -e POSTGRES_DB="ZABBIX" -v $(pwd):/var/lib/postgresql/data\ -d postgres:latest
Komut dizesi ile docker üzerinde postgres container oluşturuyorum.
-e POSTGRES_USER=”postgres tarafındaki kullanıcı adı”
-e POSTGRES_PASSWORD=”postgres tarafındaki şifre” \
-e POSTGRES_DB=”postgres database” \
-e : environment (çevre değişkeni)
–name : container adı
-v $(pwd):/var/lib/postgresql/data\
-v : parametresi volume
$(pwd) : komutu ile o an bulunduğum dizini bir değişkene atıyorum. /home/idelibalta/Docker_YMLs/zabbix dizini temsil ediyor.
-d : deattch modda çalışması için kullanılır.
Docker container ls
Komutu ile postgres container durumuna bakıyorum. Şu an aktif ve çalışıyor durumda.
Postgres tarafını yönetmek için pgadmin kurulumuna geçebiliriz.
PgAdmin
docker container run --name pg -p 5050:80 -e "PGADMIN_DEFAULT_EMAIL=inanc@inancdelibalta.com.tr" -e "PGADMIN_DEFAULT_PASSWORD=1234+abcd" -d dpage/pgadmin4
–name : container adı
-p : port bilgisi
Komut dizisi ile pgadmin4 container oluşturuyorum.
Docker container ls
Yada
Docker ps
Komutu ile aktif olan container listesini görebilirim.
Son kontrol de pgadmin ile postgres tarafına bağlandığımızı ve ZABBIX veritabanının aktif olduğunu görüyoruz.
SNMP traps
SNMP traps nedir ? Bence öncelikle bu soruya cevap vererek başlayalım. Zabbix host tarafındaki değerlere ulaşabilmek için snmp taraması yapar. Bunun için 162 UPD portu kullanır. Snmp trap kullanmak için öncelikle bir klasör oluşturalım. Bu klasörü container tarafında :/var/lib/zabbix/snmptraps yolu ile map edeceğiz.
Mkdir snmptrap
docker container run --name zabbix-snmptraps -t -v $(pwd):/var/lib/zabbix/snmptraps:rw -v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro -p 162:162/udp -d zabbix/zabbix-snmptraps:latest
Zabbix Server
Zabbix server kurulumuna geçelim.
docker container run --name zabbix-server -t -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="idelibalta" -e POSTGRES_PASSWORD="1234+abcd" -e POSTGRES_DB="ZABBIX" -e ZBX_ENABLE_SNMP_TRAPS="true" --link postgres-server:postgres -p 10051:10051 -v $(pwd)/snmptrap -d zabbix/zabbix-server-pgsql:latest
-e ZBX_ENABLE_SNMP_TRAPS=”true” : environment olarak kullandığımız bir parametre. Snmp tramps aktifmi değilmi. Aktif olduğu için True yapıyoruz.
–link : beraber çalışması gereken container lar için bağlantı parametresi
Zabbix Web Arayüzü
Zabbix sunucusu kurulumu bittikten sonra bu sunucuyu yönetmek için web arayüzünü kuralım. Bunun içinde nginx kullanacağız.
docker container run --name zabbix-web -t -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="idelibalta" -e POSTGRES_PASSWORD="1234+abcd" -e POSTGRES_DB="ZABBIX" --link postgres-server:postgres --link zabbix-server:zabbix-server -p 5051:80 -v /etc/ssl/nginx:/etc/ssl/nginx:ro -d zabbix/zabbix-web-nginx-pgsql:latest
İşte zabbix kurulumu tamamlandı. Varsayılan kullanıcı adı ve şifresi Admin – zabbix olarak kullanılıp arayüze bağlanılabilir.
Zabbix agent
Zabbix agent, Linux, Windows gibi desteklenen platformlarda çalışabilir ve aygıtlar üzerinden istenilen verileri toplayabilir. Örneğin CPU, RAM, NIC KART, DISK I/O gibi verileri toplayıp sunucuya gönderir. https://www.zabbix.com/zabbix_agent
docker container run --name zabbix-agent -e ZBX_HOSTNAME="zabbix-server" -e ZBX_SERVER_HOST="zabbix-server" -d zabbix/zabbix-agent:latest
Docker Container ls
İle kontrol edelim container çalışıyor mu diye.
Graffana
Grafana, açık kaynak kodlu bir monitoring uygulamasıdır.
Plugin vasıtası ile zabbix ile entegre olup zabbix tarafından elde edilen data ile görselleştirme için kullanılmaktadır. Bunu yapmak için bir plugin kullanır.
docker container run --name=grafana -p 3000:3000 -e "GF_SERVER_ROOT_URL=http://pardus" -e "GF_SECURITY_ADMIN_PASSWORD=1234+abcd" -d grafana/grafana
Grafana kurulumu da tamamlandı. Arayüz ise yukarıdaki gibi.
Zabbix plugin yüklemek için öncelikle container tarafına ulaşmalıyız.
Docker container exec -it -grafana container id- bash
grafana-cli plugins install alexanderzobnin-zabbix-app
Plugin yüklemesinden sonra
Docker container restart ‘container id’
Komutu ile container restart yapalım.
Grafana web panel üzerinde Installed Apps bölümünde Zabbix in bulunduğunu ve sadece Enable now beklediğini söyleyebiliriz.
Sonrası configuration yazılarında olacak. Şimdilik kurulumları tamamladık.
2 thoughts on “Pardus Sunucu Üzerinde Docker ile Zabbix Kurulumu – 1”