Zabbix to narzędzie do monitorowania open source dla usług sieciowych, sprzętu sieciowego, serwerów i aplikacji. Zaprojektowany do śledzenia i monitorowania stanu twojego systemu i serwerów. Backend Zabbixa jest napisana w języku C, a frontend  w PHP.

W tym wpisie zainstalujemy oraz skonfigurujemy serwer zabbix-a oraz dodamy mu jednego agenta. Konfiguracja zabbix to jedna z podstawowych rzeczy które dobry admin powinien umieć, więc do dzieła!

Wymagania

Aby przejść ten wpis potrzebujemy:

  • 2 serwery oparte na systemie Centos 7 – jeden jako nasz core, czyli serwer zabbix-a, drugi jako agent
  • dostęp ssh do konta root-a

Instalacja serwera zabbix

Instalujemy repozytoria epel, webtatic i zabbix:

yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm​
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

Instalujemy php 7.2:

yum -y install mod_php72w php72w-cli php72w-common php72w-devel php72w-pear php72w-gd php72w-mbstring php72w-mysql php72w-xml php72w-bcmath

I zmieniamy domyślną konfigurację php:

vi /etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Europe/Warsaw

Instaujemy mariadb oraz konfigurujemy hasło root-a:

yum -y install mariadb-server
mysql_secure_installation

Tworzymy bazę zabbix oraz użytkownika zabbix ( alternatywnie dodajemy dostęp do serwera mysql z zewnątrz; mojetajnehaslo zmieniamy na własne , trudne słownikowe hasło):

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, 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 'mojetajnehaslo';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'mojetajnehaslo';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> quit
Bye

Instalujemy zabbix:

yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-agent

Importujemy bazę:

# cd /usr/share/doc/zabbix-server-mysql-3.4.10/
# gunzip < create.sql.gz |mysql -u root -p zabbix             
Enter password:

Konfigurujemy serwer zabbix:

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=mojetajnehaslo

Uruchamiamy serwer zabbix, dodajemy do autostartu i sprawdzamy czy działa:

# systemctl start zabbix-server
# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2018-06-22 18:37:28 UTC; 8s ago
Main PID: 2532 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
├─2532 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

To samo robimy z agentem na głównym serwerze:

# systemctl start zabbix-agent 
# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2018-06-22 18:40:31 UTC; 6s ago
Main PID: 2623 (zabbix_agentd)

Przechodzimy do przeglądarki i wpisujemy adres:

http://IP_SERWERA/zabbix/

Uruchomi nam się okno instalatora:

Jeśli zamiast okna instalatora mamy błąd 500 , a w error logu błąd “Cannot start session” trzeba nadać uprawnienia do katalogu sesji:

chmod 777 /var/lib/php/session

Przechodzimy dalej, gdzie powinny być spełnione wszystkie wymagania:

W kolejnym kroku wpisujemy dane do naszej bazy danych:

Konfigurujemy dane i nazwe serwera zabbix:

I otrzymujemy podsumowanie:

Otrzymujemy potwierdzenie:

Congratulations! You have successfully installed Zabbix frontend.
Configuration file “/etc/zabbix/web/zabbix.conf.php” created.

Zostajemy przekierowani do panelu zabbix – domyślny login to admin a hasło to zabbix

Po zalogowaniu możemy zmienić język na polski by było nam wygodniej w nim operować – w tym celu po prawej strony u góry wybieramy ikonę człowieka i następnie zmieniamy język:

Przechodzimy do Konfiguracja–>Hosty i włączamy nasz serwer:

Gotowe – od teraz monitorujemy nasz serwer!
Do testów możemy zainstalować sobie np stress i wykonać sztuczne obciążenie:

#yum install stress -y
# stress --cpu  3 --timeout 70
stress: info: [3497] dispatching hogs: 3 cpu, 0 io, 0 vm, 0 hdd
stress: info: [3497] successful run completed in 70s

Aby sprawdzić czy serwer poprawnie monitoruje obciążenie przechodzimy do Monitorowanie–> Wykresy , i z Wykres wybieramy “CPU Utilization”:

Jak widać wszystko działa poprawnie.

Dodanie zewnętrznego agenta

Aby monitorować zewnętrzny serwer musimy zainstalować i skonfigurować na nim agenta.

Logujemy się na serwer który chcemy monitorować i instalujemy agenta:

 

rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-agent

Edytujemy plik agenta:

vi /etc/zabbix/zabbix_agentd.conf
Server=IP_Serwera_zabbix
 ServerActive=IP_serwera_zabbix
 Hostname=test1

Zapisujemy , uruchamiamy i dodajemy agenta do autostartu:

systemctl start zabbix-agent 
systemctl enable zabbix-agent

Wracamy do naszego serwera zabbix do panelu w przeglądarce. Wybieramy Konfiguracja –>Hosty i następnie “Utwórz host”:

Wpisujemy:

Nazwa hosta: hostname serwera wypełnione  zabbix_agentd.conf

Widoczna nazwa: nazwa pokazywana w panelu

Grupy – w przypadku gdy nasz agent jest na systemie centos 7 dodajemy “linux servers”

Interfejsy agenta – podajemy adres ip, port ( jeśli nie zmienialiśmy) zostawimy domyślny

Zaznaczamy “Włączony” i klikamy “Dodaj”

Po dodaniu wchodzimy w nasz serwer, wybieramy zakladkę “Szablony” i dodajemy szablon “Template OS Linux”:

 

 

Gotowe!

Możemy teraz odpalić na serwerze gdzie mamy agenta program stress:

#yum install stress -y
# stress --cpu  3 --timeout 70
stress: info: [3497] dispatching hogs: 3 cpu, 0 io, 0 vm, 0 hdd
stress: info: [3497] successful run completed in 70s

Następnie wracamy w przeglądarce do panelu zabbix, wybieramy Monitorowanie –>Wykresy , wybieramy naszego hosta i wykres “CPU Utilization”:

Jak widać całość działa 🙂

Co dalej?

Przedstawiłem tylko podstawowy opis instalacji i konfiguracji serwera, oraz podczepienie do niego agenta z zewnątrz.

Opis nie zawiera wielu podstawowych kwestii takich jak:

  • skonfigurowanie zapory
  • zabezpieczenie serwera zabbix
  • zabezpieczenie klienta zabbix
  • zabezpieczenie połączenia
  • konfiguracja zabbix – wykresy
  • konfiguracja powiadomień
  • i wiele wiele innych

 

Jeśli potrzebujesz profesjonalnej konfiguracji serwera zabbix daj znać – chętnie pomogę lub wykonam w całości takowe wdrożenie.

4.5 (89.09%) Ocen: 11