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. Listopad 13th, 2017 at 19:35 | #1

    I have noticed you don’t monetize your website, don’t waste your
    traffic, you can earn extra cash every month because you’ve got high quality content.
    If you want to know how to make extra money, search for:
    Boorfe’s tips best adsense alternative

  1. Brak jeszcze trackbacków

*