Zarejestruj się na BitBay.net
Home > Bezpieczeństwo, Linux > Zabbix – monitorowanie dostępności usług IT

Zabbix – monitorowanie dostępności usług IT

monitorowanie 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.

obciążenie procesora

 

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]

  • service – one of ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet
  • ip – 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
  • Zakładka Steps
    • Klikamy Add
    • Name: google.com
    • URL: google.com

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ę 🙂

Donate BTC

13tk9BhMDXbMkeDQ5zLaJZWXZp3R4FVdRt

  1. Brak komentarzy
  1. Brak jeszcze trackbacków

*