Rozbudowując infrastrukturę sieciową, dodając kolejne serwery oraz usługi musimy pomyśleć o monitorowaniu tego wszystkiego, aby szybko zdiagnozować problem nim powstaną wielkie szkody. Jedną z ciekawszych aplikacji do monitorowania usług sieciowych, serwerów czy urządzeń sieciowych jest Zabbix. Został stworzony przez Alexeia Vladisheva.
Aplikacja powstała w 1998 roku jako wewnętrzny projekt firmy. Dopiero w 2001 roku została upubliczniona na zasadach licencji GPL. W 2004 roku pojawiła się pierwsza stabilna wersja oznaczona numerem 1.0.
Zabbix pozwala na bieżące nadzorowanie wszystkich usług w sieci. Agenci Zabbixa potrafią sprawdzać poprawność połączeń, ich wydajność, badać integralność sieci.
Mogą testować routery, obciążenie na maszynach, zbierać dane o wykorzystaniu pamięci RAM, obciążeniu procesora na serwerach. Możemy sprawić również by Zabbix wysyłał nam SMSy jeśli z monitorowaną usługą zacznie dziać się coś niedobrego. Możemy otrzymywać również powiadomienia za pomocą poczty elektronicznej czy Jabbera.
Całość została napisana w języku C, poza webowym frontem do zarządzania, który stworzony został w PHP. Agenci Zabbixa mogą być zainstalowani zarówno na systemach Uniksowych jak i na Windows.
W jednym centralnym punkcie będziemy posiadać wszelakie interesujące nas dane, z których Zabbix wygeneruje dla nas odpowiednie statystyki, wykresy oraz raporty. Dane te możemy wizualizować za pomocą map, wykresów. Zabbix pomoże również w utrzymaniu SLA (Service Level Agreement) oraz OLA (Operation Level Agreement).
Wdrożenie Zabbixa jest bardzo proste. Na stronie projektu znajduje się bardzo dobrej jakości dokumentacja, która pokazuje jak uruchomić serwer Zabbixa oraz agentów do zbierania danych. Opisana jest instalacja serwera dla takich baz danych jak MySQL, Oracle, PostgreSQL oraz SQLite, w których przechowywane są dane z agentów.
Instalacja serwera
Instalacja serwera jak i agentów Zabbixa jest bardzo prosta. Korzystając z dokumentacji dostępnej na stronie, w kilka chwil uda nam się zainstalować serwer do zbierania danych oraz skonfigurować agentów, aby wysyłały te dane. W poniższym przykładzie wykorzystamy:
- Red Hat Enterprise Linux Server release 5.3 (Tikanga)
- PHP 5.3.0
- MySQL Community Server 5.1.42
- Apache HTTP Server 2.2.3
Na samym początku pobieramy źródła Zabbixa i wypakowujemy ich zawartość. Kolejnym krokiem będzie utworzenie bazy danych, w której będziemy przechowywać zebrane dane.
[bash]root@thecamels [~]# mysql -u<username> -p<password>
mysql> create database zabbix character set utf8;
mysql> quit;
root@thecamels [~]# cd create/schema
root@thecamels [~]# cat mysql.sql | mysql -u<username> -p<password> zabbix
root@thecamels [~]# cd ../data
root@thecamels [~]# cat data.sql | mysql -u<username>; -p<;password> zabbix
root@thecamels [~]# cat images_mysql.sql | mysql -u<username> -p<password> zabbix[/bash]
Kolejnym krokiem będzie skompilowanie i zainstalowanie serwera Zabbixa. Wydajemy polecenie w katalogu ze źródłami.
[bash]root@thecamels [~]# ./configure –enable-server –with-mysql –with-net-snmp –with-libcurl
root@thecamels [~]# make install[/bash]
Jeżeli wszystko wykonało się poprawnie to do pliku /etc/services
dodajemy następujące linie:
[bash]zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper[/bash]
Ostatnim krokiem będzie stworzenie konfiguracji oraz samo skonfigurowanie serwera. W paczce ze źródłami mamy dostępne przykładowe pliki konfiguracyjne. Kopiujemy je do /etc/zabbix
.
[bash]root@thecamels [~]# mkdir /etc/zabbix
root@thecamels [~]# cp -R misc/conf/* /etc/zabbix/
root@thecamels [~]# vim /etc/zabbix/zabbix_server.conf[/bash]
A następnie uruchamiamy serwer wydając polecenie /usr/local/sbin/zabbix_server
.
Zarządzanie przez przeglądarkę WWW
Całym Zabbixem można zarządzać przez przeglądarkę internetową za pomocą aplikacji napisanej w PHP. Kod dostępny jest w źródłach do pobrania. Jeżeli mamy poprawnie skonfigurowany serwer Apache oraz PHP możemy przystąpić do konfiguracji frontendu.
Kopiujemy odpowiednie pliki ze źródeł do katalogu, gdzie przechowywane są strony internetowe na naszym serwerze.
[bash]root@thecamels [~]# cd /usr/src/zabbix-1.8/frontends/php/
root@thecamels [~]# mkdir /var/www/html/zabbix/
root@thecamels [~]# cp -R * /var/www/html/zabbix/[/bash]
Przez proces instalacji poprowadzi nas prosty kreator. Musimy spełnić wymagania aplikacji, podać dane do bazy danych a następnie zainstalować aplikację webową. Do panelu logujemy się za pomocą loginu Admin oraz hasła zabbix.
Instalacja agentów
Na stronie zabbix.com dostępna jest lista prekompilowanych agentów dla różnych systemów operacyjnych. Jednak kompilacja agenta ze źródeł jest równie prosta i szybka.
[bash]thecamels@thecamels [~]# ./configure –enable-agent –prefix=/home/thecamels/zabbix/agent
thecamels@thecamels [~]# make install[/bash]
Przykładowe pliki konfiguracyjne kopiujemy do odpowiedniego dla nas katalogu a następnie edytujemy plik zabbix_agentd.conf
. Ustawiamy w nim parametry Server (podając adres IP serwera Zabbixa) oraz Hostname (nazwę pod jaką będzie widoczny agent).
[bash]thecamels@thecamels [~]# cd /home/thecamels/zabbix/agent/sbin/
thecamels@thecamels [~]# ./zabbix_agentd –conf /home/thecamels/zabbix/agent/conf/zabbix_agentd.conf[/bash]
Na samym końcu uruchamiamy agenta, a przez interfejs webowy dodajemy go do monitoringu. Po chwili nasza maszyna powinna być widoczna w monitoringu.
Prawie jak Nagios.
Nadaje się do monitorowanie wielu rzeczy. Podłączałem do tego wiele wynalazków. Niedawano nawet Openfire http://kczerw.blogspot.com/2014/04/zabbix-openfire-monitoring.html
[…] została wersja 1.8 oprogramowania do monitorowania serwerów o nazwie Zabbix. Wersja ta przynosi wiele ciekawych zmian. Główne poprawki tyczą się pełnego wsparcia dla […]
Ja gdy zapoznawałam się z Zabbixem to zainstalowałam MySQL i Apache pomógł mi w tym ten artykuł: https://blog.askomputer.pl/instalacja-mysql-i-apache-pod-zabbix/
Ja wraz z Zabbixem zainstalowałam MySQL i Apache pomógł mi w tym ten artykuł: https://blog.askomputer.pl/instalacja-mysql-i-apache-pod-zabbix/