Monitorowanie działania systemów i aplikacji to jeden z najczęściej zaniedbywanych obszarów pracy administratorów. Wielu incydentów można było uniknąć gdyby ktoś analizował proste anomalie. Czas to zmienić.
Miesiąc temu w naszym cyklu poradników dla początkujących i średnio zaawansowanych administratorów opisaliśmy, jak uruchomić monitoring serwera za pomocą narzędzia munin. Munin jest fajny, jeśli ktoś lubi oglądać wykresy. W komentarzach do tamtego artykułu poprosiliście jednak, by w kolejnym wpisie pójść w stronę Zabbixa. Słuchamy naszych Czytelników, zatem dzisiaj czas na kolejne narzędzie. Jeśli chcecie większej elastyczności niż oferowana przez munina i lubicie konfigurować powiadomienia o problemach, to czas zainteresować się Zabbixem. Przydaje się, by nie zachowywać się jak administratorzy na obrazku poniżej.
We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać, jak postawić swój własny zdalny pulpit, swój serwer WWW, jak monitorować zmiany w plikach, jak zablokować reklamy na komórce, jak skonfigurować bezpieczną kopię zapasową a także jak zabezpieczyć logowanie do serwera za pomocą jednorazowych tokenów lub za pomocą klucza Yubikey.
Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.
Wstęp
Zabbix oferuje kilka opcji monitorowania:
- monitorowanie i weryfikowanie dostępności zdalnych usług takich jak SMTP czy HTTP,
- monitorowanie za pomocą dedykowanego agenta który może być zainstalowany na systemach Linux/Windows,
- monitorowanie za pomocą m.in. SNMP jako alternatywa do instalacji dedykowanego agenta.
Poniżej przedstawiamy instrukcję instalacji serwera Zabbix oraz usługi agenta na tym samym serwerze. Możecie cały proces obejrzeć na filmie lub przeczytać krok po kroku kawałek niżej.
Instalacja frontendu i backendu
W systemie Debian 8 posłużymy się oficjalnymi pakietami Zabbix ze strony projektu. Dodajemy oficjalne repozytorium Zabbix do systemu Debian 8:
# wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb
Instalujemy pobrany pakiet:
# dpkg -i zabbix-release_3.2-1+jessie_all.deb
Aktualizujemy informacje o pakietach:
# apt-get update
Instalujemy backend oraz frontend Zabbix:
# apt-get install zabbix-server-mysql zabbix-frontend-php
Jeśli na serwerze nie posiadamy bazy danych MySQL, baza ta zostanie zainstalowana oraz zostaniemy poproszeni o ustawienie hasła dla użytkownika 'root’.
Zabbix będzie zapisywał dane w bazie danych MySQL. W tym celu utworzymy dedykowanego użytkownika o loginie zabbix z prostym hasłem zabbixhaslo. Użytkownik ten będzie miał pełne prawa do bazy o nazwie zabbix.
# mysql -uroot -p mysql> create database zabbix character set utf8 collate utf8_bin;
Ustalamy prawa dostępu oraz hasło dla użytkownika 'zabbix’:
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixhaslo'; mysql> FLUSH PRIVILEGES; mysql> quit;
Importujemy schemat bazy danych:
# cd /usr/share/doc/zabbix-server-mysql # zcat create.sql.gz | mysql -uzabbix -pzabbixhaslo zabbix
W pliku/etc/zabbix/zabbix_server.conf musimy wprowadzić informacje o utworzonym użytkowniku w bazie danych. Wprowadzamy następujące zmiany:
# vi /etc/zabbix/zabbix_server.conf W linii 82 dopisujemy adres serwera MySQL: DBHost=localhost W linii 91 wprowadzamy nazwę bazy danych: DBName=zabbix W linii 107 wprowadzamy nazwę użytkownika bazy danych: DBUser=zabbix W linii 116 wpisujemy hasło: DBPassword=zabbixhaslo
Ustawiamy strefę czasową w pliku /etc/apache2/conf-enabled/zabbix.conf:
# vi /etc/apache2/conf-enabled/zabbix.conf W linii 19 oraz 28 ustawiamy: php_value date.timezone Europe/Warsaw
Uruchamiamy serwer Zabbix podczas startu systemu:
# systemctl enable zabbix-server
Uruchamiamy usługi zabbix-server oraz apache2:
# service zabbix-server restart # service apache2 restart
Instalacja i konfiguracja agenta
W repozytorium Zabbixa znajduje się pakiet 'zabbix-agent’. Na serwerach, które chcemy monitorować, instalujemy wspomniany pakiet.
# apt-get install zabbix-agent
Wprowadzamy zmiany w pliku konfiguracyjnym /etc/zabbix/zabbix_agentd.conf. W pliku tym wprowadzamy adres IP serwera, który będzie mógł się podłączyć do agenta oraz wprowadzimy nazwę hosta.
# vi /etc/zabbix/zabbix_agentd.conf [...] Server=127.0.0.1 [...] Hostname=Zabbix ArubaCloud [...]
Uruchamiamy agenta podczas startu systemu:
# systemctl enable zabbix-agent
Uruchamiamy usługę agenta:
# service zabbix-agent start
Konfiguracja frontendu
W przeglądarce podajemy adres naszego serwera gdzie zainstalowaliśmy frontend Zabbix. W domyślnej konfiguracji panel dostępny jest w katalogu /zabbix/.
W drugim kroku kreator sprawdzi nasze ustawienia PHP na serwerze:
Jeśli kreator stwierdzi, że obecna konfiguracja PHP na serwerze jest poprawna, to w kolejnym kroku zostaniemy poproszeni o wprowadzenie danych uwierzytelniających do bazy danych. Wpisujemy informacje, które podaliśmy podczas instalacji i konfiguracji hosta. W naszym przypadku będzie to użytkownik zabbix z hasłem zabbixhaslo.
Przedostatnim krokiem kreatora konfiguracji jest dodanie serwera do monitorowania. Na potrzeby artykułu będziemy monitorować serwer na którym zainstalowaliśmy backend oraz frontend Zabbix.
Ostatnim krokiem kreatora jest informacja, że konfiguracja przebiegła pomyślnie, a wprowadzone przez nas dane zostały zapisane do pliku /usr/share/zabbix/conf/zabbix.conf.php.
Logujemy się do panelu administracyjnego jako użytkownik Admin z hasłem zabbix.
Aby Zabbix monitorował serwer który podaliśmy podczas kreatora konfiguracji należy wybrać opcję Configuration > Hosts i przy pozycji „Zabbix server” w kolumnie Status nacisnąć na „Disabled”.
Po chwili serwer podłączy się do agenta.
Podsumowanie
W powyższym artykule pokazaliśmy Wam podstawy konfiguracji Zabbixa, by każdy, nawet początkujący Czytelnik mógł go uruchomić na swoim serwerze. W domyślnych ustawieniach Zabbixa pewnie dowiecie się sporo o swoim serwerze, jednak biorąc pod uwagę elastyczność tego narzędzia ledwo dotknęliśmy powierzchni tematu – zapraszamy Was do dalszego eksplorowania możliwości, bo naprawdę warto. A gdy wymyślicie ciekawe zastosowanie to podzielcie się z nami i innymi Czytelnikami w komentarzach.
Dla zachowania pełnej przejrzystości – artykuł ten to tekst sponsorowany, za który otrzymujemy wynagrodzenie.
Komentarze
Jak wg Was wypada check_mk w porównaniu do Zabbixa?
jak to się stało, że cały cykl był na CentOSie, a tu nagle debian?
Obstawiam inną osobę popełniającą artykuł ;)
„podstawy konfiguracji Zabbixa” – artykuł to bardziej liźnięcie podstaw właściwych podstaw
Ciąg dalszy na [stronach Digital Ocean][1], skąd najprawdopodobniej ten artykuł został przeredagowany.
Ciekawe ilu czytelników pozostawi zabbix@localhost, zabbixhaslo, użyszkodnika z „grant all privileges” w configu, itp.
Zamiast kolejnego bezmyślnego „walić least privilege, admin i ch*” spodziewałbym się nacisku na bezpieczeństwo instalowanej aplikacji.
Po artykułach o zabezpieczaniu servera, VPN czy YubiKey, wtopa trochę.
[1]: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-zabbix-to-securely-monitor-remote-servers-on-centos-7#step-5-—-installing-and-configuring-the-zabbix-agent
Jakie uprawnienia powinien mieć użytkownik zabbix do tabeli zabbix?
Możesz określić co dokładnie masz na myśli mówiąc, ze artykuł został „przeredagowany” z innego źródła? Pytam serio, jest naprawdę tak dużo sposobów instalowania Zabbixa że trudno by kroki się powtarzały w dwóch różnych instrukcjach?
’zabbixhaslo’ zostało podane jako wskazanie, że w tym określonym miejscu należy podać hasło. Liczę na to, że widząc pole „podaj hasło” nikt nie ustawia haseł typu 'admin123′ albo '123456′ ;)
Co do uprawnień do określonej tabeli – jeśli masz jakiś zdefiniowany schemat uprawnień dla tego użytkownika – podziel się z nami.
Ja liczyłem na coś więcej niż instrukcja do instalacji.. tego pełno w sieci. Wcześniej ktoś napisał, przydało by się coś o bezpieczeństwie dobrych praktykach itp.
Dziękujemy i prosimy o więcej ;-) Pozdrawiam
Dziekuję działa — uruchomiłem na instancji i zbieram dane z moich nodów :)
+1
Od lat korzystam z nagiosa ( pnp + nagiosql ). Czy ktoś z Was przesiadł się na zabbixa i bazując na doświadczeniu podać jego przewagę/zalety ?
Testowałem zabbix i nagios. Nagios wymiata.
A jak przeciwdziałać cichemu wyłączeniu serwera z zabbixem?
(np. nagły brak prądu/kernel panic/przepełnienie w samym zabbiksie). Przecież ten serwer/aplikacja też może ulec awarii. Jak monitorujecie krytyczne aplikacje, takie powyżej 99% dostępności?
Load balancing i replikacja horyzontalna.
Lepszy jest cgroup, tyle że nie do monitorowania, ale pilnowania,żeby przez jakąś awarię jednego programu cały system nie dostał czkawki.
Do tego Apparmor do totalnej kontroli ACL (albo SELinux), porządnie przemyślany i skonfigurowany firewall,i można jechać na urlop.
Chociaż Grsecurity&Pax czyniły ten urlop dużo spokojniejszym. :P
Przy okazji, do 'cichego wyłączenia” czy zatkania serwera przez zbyt wysoki load jest watchdog, a o problemach każdy Linux może raportować przez email albo np jabbera.
Także Zabbix i Munin to nie monitoring ale raczej przeglądanie statystyk obciążenia.
Ani jeden ani drugi nie zrestartuje maszyny, gdy coś się źle dzieje, nie odetnie niebezpiecznych połączeń sieciowych jak Snort+Ipset, i nie zablokuje prób siłowego łamania haseł,
co potrafi sam Netfilter (moduły hashlimit, recent, connlimit,
a także czasami string ) albo np fail2ban.
To by było na tyle
Mam banalnie proste pytanie i ufam, że nie zetniecie mi głowy, że zadaję je tutaj.
Spotkałam się z poglądem, że umieszczając w folderze serwisu plik .htaccess z dyrektywą Options +DirList – (umożliwiającą listowanie zawartości katalogu) – „ingeruje się w konfigurację serwera www”.
Moim zdaniem jest to pogląd błędny, ale może to ja nie mam racji.
Czy mogę prosić o ustosunkowanie się do tego stwierdzenia.
Jest już Zabbix 5. Polecam przetestować nową wersję. Sporo ułatwiających życie zmian i odmieniony interfejs. Do tego rozszerzyli zabezpieczenia, dodali autentykację SAML i usprawnili podstawowe funkcjonalności.