Zabbix – monitorowanie dostępności usług IT
Sprawny system monitorowania ciągłości pracy infrastruktury IT, pozwala na szybką reakcję na pojawiające się zdarzenia co minimalizuje koszty przestoju i dostarcza nam potrzebnej wiedzy na temat naszej infrastruktury. Monitoringowi podlegają wszystkie główne procesy zachodzące w serwerach i urządzeniach sieciowych, obciążenie procesora, dostępna wielkość pamięci, wydajność dysków twardych, wydajność i problemy serwera SQL. Na rynku dostępnych jest wiele rozwiązań tego typu, a jednym z najlepszych jest Zabbix.
Zabbix jest systemem do monitorowania usług IT stworzonym przez Alexeia Vladisheva w 2001 roku. Za pomocą Zabbixa możemy monitorować prawie każdy parametr działania serwerów, urządzeń sieciowych, stron www itp. Wspiera zarówno systemy z rodziny Windows, jak i Linux.
Instalacja na przykładzie CentOS Linux
Dodajemy repozytorium zabbix do yum’a:
mcedit /etc/yum.repos.d/zabbix.repo
[Zabbix] name=Zabbix baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/ gpgcheck=1 gpgkey=http://repo.zabbix.com/zabbix-official-repo.key
Instalujemy:
yum install yum-utils sudo yum install epel-release yum -y install zabbix-server-mysql zabbix-agent zabbix-get zabbix-web-mysql mysql mariadb-server httpd php
można też ręcznie pobrać z http://www.zabbix.com/download.php
Konfiguracja:
systemctl start mariadb
mysql_secure_installation
mysql -u root -p Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 12 Server version: 5.5.41-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'secretpassword'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye
Wgrywamy tabele:
mysql -u root -p zabbix
mysql -u root -p zabbix </usr/share/doc/zabbix-server-mysql-2.4.5/create/schema.sql mysql -u root -p zabbix </usr/share/doc/zabbix-server-mysql-2.4.5/create/images.sql mysql -u root -p zabbix </usr/share/doc/zabbix-server-mysql-2.4.5/create/data.sql
Jeśli trzeba tuningujemy podstawowe parametry PHP:
mcedit /etc/httpd/conf.d/zabbix.conf
date.timezone = Europe/Warsaw max_execution_time = 600 max_input_time = 600 memory_limit = 256M post_max_size = 32M
Sprawdzamy cat /etc/services|grep zab
i jeśli nie ma to dodajemy zabbixa do servisów:
cat >> /etc/services << EOF zabbix-agent 10050/tcp #Zabbix Agent zabbix-agent 10050/udp #Zabbix Agent zabbix-trapper 10051/tcp #Zabbix Trapper zabbix-trapper 10051/udp #Zabbix Trapper EOF
Ustawiamy hasło do bazy oraz podstawowe parametry:
sudo sed -i 's/^# DBPassword=.*/DBPassword=secretpassword/' /etc/zabbix/zabbix_server.conf sudo sed -i 's/^# CacheSize=.*/CacheSize=32M/' /etc/zabbix/zabbix_server.conf sudo sed -i 's/^# StartPingers=.*/StartPingers=5/' /etc/zabbix/zabbix_server.conf
Dziury w firewallu:
firewall-cmd --zone=public --add-port=80/tcp --permanent iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
Jeśli mamy włączone SELinux to:
sudo setsebool -P httpd_can_connect_zabbix=1
Uruchamiamy:
systemctl start zabbix-agent systemctl enable zabbix-agent systemctl restart zabbix-server systemctl enable zabbix-server systemctl start httpd systemctl enable httpd
Uruchamiamy w przeglądarce: http://nasze_ip/zabbix
Domyślny login i hasło: admin / zabbix
Po zalogowaniu się wchodzimy w Configuration > Hosts
i zmieniamy status agenta na enable
Sprawdzamy czy jest komunikacja z agentem:
zabbix_get -s 127.0.0.1 -p 10050 -k agent.version
Monitorowanie dostępności różnych usług
Za pomocą zabbixa w prosty sposób możemy monitorować dostępność różnych usług np: ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet. W tym celu musimy stworzyć Simple checks
a więc wchodzimy w Configuration > Hosts > (tworzymy nowego lub wybieramy istniejącego hosta) > Items > Create item
:
Parametry:
- Name:
Dostepnosc google
- Type:
Simple check
- Key:
net.tcp.service[http,google.com,80]
- Update interval (in sec):
5
Objaśnienie:
net.tcp.service[service,ip,port]
servic
e – one of ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnetip
– IP address or DNS name (by default, host IP/DNS is used)port
– port number (by default standard service port number is used).
Następnie sprawdzamy w Monitoring > Latest data
czy działa.
Monitorowanie dostępności hosta (ping,fping)
W tym celu tworzymy Simple checks a więc wchodzimy w Configuration > Hosts > (tworzymy nowego lub wybieramy istniejącego hosta) > Items > Create item
:
Parametry:
- Name:
Dostepnosc 8.8.8.8
- Type:
Simple check
- Key:
icmpping[8.8.8.8,4,1000,1492,500]
- Update interval (in sec):
25
Objaśnienie:
icmpping[target,packets,interval,size,timeout]
target
– host IP or DNS name;count
– number of packets;interval
– time between successive packets in milliseconds;size
– packet size in bytes;timeout
– timeout in milliseconds.
Następnie sprawdzamy w Monitoring > Latest data
czy działa.
Web monitoring
Specjalnie do monitorowania stron www mamy sekcję Web monitoring
chociaż po części możemy to zrobić za pomocą Simple check
. Nie mniej jednak w tym przypadku mamy więcej możliwości (np. autoryzacja, przesłanie pewnych danych za pomocą post lub get) oraz sprawdzanych jest więcej parametrów niż tylko dostępność. W celu konfiguracji web monitoringu wchodzimy w Configuration > Hosts > (tworzymy nowego lub wybieramy istniejącego hosta) > web > Create scenario
. Musimy wypełnić zakładki Scenario
i Steps
Parametry:
- Zakładka Scenario
- Name:
google.com
- New application:
google.com
- Update interval (in sec):
60
- Name:
- Zakładka Steps
- Klikamy
Add
- Name:
google.com
- URL:
google.com
- Klikamy
Wracamy do zakładki Scenario
i klikamy Add
Monitorowanie logów systemowych linux
Za pomocą zabbixa możemy także odczytywać niektóre zdarzenia za logów systemowych bądź dowolnych plików.
Aby zabbix_agent miał dostęp do logów zmieniamy w configu (mcedit /etc/zabbix/zabbix_agentd.conf
) parametr
AllowRoot=1
Restart: systemctl restart zabbix-agent
tworzymy Simple checks
a więc wchodzimy w Configuration > Hosts > (tworzymy nowego lub wybieramy istniejącego hosta) > Items > Create item
:
Parametry:
- Name:
Bledne lub poprawne logowanie
- Type:
Zabbix agent (active)
- Key:
log[/var/log/secure,password]
- Type of information:
Log
- Update interval (in sec):
60
- Log time format:
pppppp:yyyyMMdd:hhmmss
Objaśnienie:
log[/path/to/file/file_name,regexp,encoding,maxlines,mode]
Następnie sprawdzamy w Monitoring > Latest data
czy działa.
Trigger informujący o błędnym logowaniu
Wchodzimy w Configuration > Hosts > (wybieramy naszego hosta) > Triggers > Create trigger
:
Parametry:
- Name:
Wrong password
- Expression:
(({Zabbix server:log[/var/log/secure,password].iregexp('Failed password')})<>0)
- Description:
błędne logowanie
- Severity:
High
Jeśli przydał Ci się ten post prześlij proszę dowolną dotację. Dziękuję 🙂
I see you don’t monetize nowaruda.net, don’t waste your
traffic, you can earn additional bucks every month with new monetization method.
This is the best adsense alternative for any type of website (they approve all sites),
for more info simply search in gooogle: murgrabia’s tools