Oprogramowanie Zabbix służy głównie do monitorowania pracy serwerów, ale można go również wykorzystać do sprawdzania stanu serwisów WWW.
Zabbix Server
Instalację serwera przeprowadzałem w systemie Debian (wersja squeeze). Pobieramy oraz rozpakowujemy źródła ostatniej stabilnej wersji ze strony:
Przechodzimy do katalogu ze źródłami oraz strukturą bazy danych. Następnie ładujemy strukturę bazy oraz dane wymagane do działania serwera:
cd zabbix-1.8.8/create/schema
cat mysql.sql | mysql -u root zabbix
cd ../data
cat data.sql | mysql -u root zabbix
cat images_mysql.sql | mysql -u root zabbix
cd ../../
Przed konfiguracją należy zainstalować kilka paczek ze źródłami. Lista będzie różnić się w zależności od wybranej bazy danych (w moim przypadku MySQL):
apt-get install libmysqlclient-dev libiksemel-dev libcurl4-openssl-dev libsnmp-dev libopenipmi-dev
Skonfigurujemy Zabbixa tak, aby możliwe było monitorowanie z wykorzystaniem protokołu SNMP (–with-net-snmp), wysyłane powiadomień poprzez protokół XMPP (–with-jabber):
./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl
Jeżeli konfiguracja przebiegła pomyślnie, możemy instalować:
make install
Dokumentacja zaleca dodanie usług, ale nie jest to konieczne. Do pliku /etc/services możemy dodać następujące wpisy:
zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper
Teraz czas na utworzenie pliku konfiguracyjnego. Przykład dostarczy wraz z aplikacją wystarczy do uruchomienia serwera:
mkdir /etc/zabbix cp /root/zabbix/zabbix-1.8.8/misc/conf/zabbix_server.conf /etc/zabbix/zabbix_server.conf
Domyślnie Zabbix instaluje się w /usr/local/sbin, startujemy serwer poleceniem:
/usr/local/sbin/zabbix_server
Poleceniem ps możemy sprawdzić czy serwer działa:
ps aux | grep zabbix
Jeżeli nie zobaczymy procesu Zabbixa, to należy zajrzeć do pliku z dziennikiem. Domyślnie znajduje się w lokalizacji:
/var/log/zabbix_server
Panel administracyjny jest napisany w PHP. Do jego uruchomienia wystarczy skopiować odpowiednie pliki do katalogu, do którego dostęp posiada serwer WWW np.:
cd frontends/php
cp -a . /var/www/zabbix
Po uruchomieniu postępujemy zgodnie z instrukcjami w instalatorze. Domyślny login to „admin”, a hasło „zabbix”, które oczywiście należy zmienić po pierwszym logowaniu :)
Posiadamy już serwer, ale jeszcze nic nie jest monitorowane. W górnym panelu wybieramy menu Configuration -> Hosts i klikając w „Not monitored” włączamy monitoring na maszynie, na której zainstalowany jest serwer Zabbix. Po chwili pierwsza ikona z lewej strony zmieni kolor z czerwonego na zielony, co oznacza, że monitorowana maszyna jest włączona i można nawiązać z nią połączenie.
Zabbix Agent
Po instalacji serwera należy skonfigurować serwery, które chcemy monitorować. Do tego celu należy zainstalować agenta na każdym z nich. Przechodzimy do katalogu ze źródłami o wydajemy polecenia:
./configure --enable-agent
make install
Ponownie do pliku /etc/services możemy dopisać usługi:
zabbix_agent 10050/tcp
zabbix_trap 10051/tcp
Agenta uruchamiamy poleceniem:
/usr/local/sbin/zabbix_agentd
oraz weryfikujemy przy pomocy:
ps aux | grep zabbix
Logi są dostępne w pliku /var/log/zabbix_agent.
Konfiguracja serwera Zabbix
Po instalacji agenta na każdym serwerze, należy je powiązać z serwerem Zabbixa. Uruchamiamy panel i przechodzimy do menu Configuration -> Hosts. Klikamy na Create Host. Następnie podajemy nazwę serwera, adres IP oraz wybieramy domyślny szablon.
Uwagi
Należy zwrócić uwagę na dużą liczbę danych, które są zbierane przez aplikację. Po tygodniu od uruchomienia aplikacji oraz podłączeniu trzech serwerów baza danych zawiera już ponad 2 500 000 rekordów. Domyślny okres przechowywania danych jest ustawiony na jeden rok :) W większości przypadków, gdy chcemy być jedynie powiadamiani o stanie serwera, można zmniejszyć ten okres do kilku tygodni lub dni.