Заббікс це open-source система моніторингу корпоративного рівня. На поточний момент Zabbix одна з найпопулярніших і функціональних безкоштовних систем моніторингу. Завдяки простій установці і настройці Zabbix можна використовувати для моніторингу великих інфраструктур з сотнями серверів, так і для дрібних конфігурацій. У цій статті ми розглянемо, як виконати установку і базове налаштування сервера Zabbix 4.4 з веб-інтерфейсом на базі Linux Ubuntu і CentOS, встановити агенти Zabbix на сервері Windows і Linux, і додати нові хости в систему моніторингу.

Загальний інтерфейс Zabbix сервера представлений на скріншоті нижче.

веб інтерфейс системи моніторингу zabbix

З чого складається Zabbix і що він може?

Zabbix простий встановлення та налаштування, написаний на C (сервер, проксі і агент) і PHP (фронтенд). Zabbix Server і Zabbix Proxy може працювати тільки на Linux системах. Агент можна встановити на великій кількості підтримуваних ОС і платформах.

Інсталяція Zabbix сервера складається з:

  • бінарники zabbix_server (зазвичай працює як сервіс);
  • MySQL (MariaDB) / PostgreSQL бази даних;
  • Веб сервера Apache2 / Nginx з обробником PHP;
  • Файлів самого frontend сайту (.php, .js, .css і т.д.).

Зазвичай схема роботи виглядає так:

  1. Агент Zabbix посилає дані на сервер
  2. Сервер Zabbix отримує і обробляє дані.
  3. Якщо отримані дані підпадають під задані умови, то спрацьовує тригер;
  4. Активний тригер сигналізує про проблему. Пристрій повідомить, коли на фронтенді (сайті), і в залежності від конфігурації розсилається повідомлення поштою і виконується будь-які дії (наприклад, перезапуск служби, яка моніториться).

Zabbix може працювати з усіма відомими протоколами, а завдяки системі зовнішніх скриптів, Zabbix може виконувати і отримувати дані з будь-яких виконуваних скриптів / бінарників.

Установка Zabbix Server в Linux (Ubuntu, CentOS)

У цій статті ми розглянемо приклад установки Zabbix Server 4.4 на Linux (на прикладі Ubuntu Server 18.4 і CentOS) через пакетний менеджер.

Перейдіть на сторінку завантаження https://www.zabbix.com/download і виберіть репозиторій, що відповідає вашому дистрибутива Linux. Готові пакети є для всіх основних систем.

Наприклад, для установки Zabbix на Ubuntu 18.04 потрібно послідовно вибрати:

Версія Zabbix (4.4) -> Розповсюдження ОС (Ubuntu) -> Версія ОС (18.04 Bionic) -> База даних (MySQL) -> Веб-сервер (Nginx або Apache).

інструкція по установці zabbix, отримання репозиторіїв

Скачемо і додамо репозиторій:

# wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
# dpkg -i zabbix-release_4.4-1+bionic_all.deb
# apt update

Тепер можна встановити необхідні пакети:

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

установка zabbix-server в linux ubuntu

Для установки Zabbix в CentOS 8 / RHEL 8 потрібно підключити репозиторій з актуальною версією Zabbix (можна встановити Zabbix з гілки 4.0 LTS або останню версію Zabbix 4.4):

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
# dnf clean all

Припускаємо, що на сервері вже встановлені: nginx, MySQL / MariaDB, php і php-fpm. Тепер через пакетний менеджер встановимо сам сервер Zabbix і агент:

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent

Залишилося створити базу даних для Zabbix в MySQL (замість MySQL можна використовувати PostgreSQL, просто замініть в командах ‘mysql’ на ‘pgsql’).

Створіть базу даних і дайте права користувачеві, з-під якого Zabbix буде звертатися до бази даних:

mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ВашПароль';
mysql> quit;

Імпорт базу даних Zabbix. Потрібно буде ввести пароль, який ви вказали при створенні користувача.

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix

Змініть конфігураційний файл /etc/zabbix/zabbix_server.conf, вкажіть пароль від новоствореного користувача.

DBPassword=Пароль_Пользователя_Zabbix

Так як в моєму випадку веб сервером служить nginx, потрібно змінити nginx.conf, Розкоментувати наступні рядки

# listen 80;
# server_name example.com;

Приберіть # і поміняйте example.com на домен, за яким ви хочете заходити на Zabbix, в моєму випадку це test.zabbix.local.

Для Apache файл потрібно правити файл конфігурації /etc/httpd/conf.d/zabbix.conf.

Виставимо тимчасову зону в PHP. У файлі /etc/zabbix/php-fpm.conf раскомментіруем рядок

php_value[date.timezone] = Europe/Moscow

Додатково можна виставити наступні параметри PHP в /etc/php.ini:

memory_limit 128M
upload_max_filesize 8M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000

Додайте службу zabbix-server в автозапуск і запустіть її:

# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm

Налаштування веб-інтерфейсу Zabbix

Тепер потрібно налаштувати frontend (веб-інтерфейс) Zabbix. У браузері відкрийте вказаний раніше URL адреса zabbix сервера. У моєму випадку це test.zabbix.local (або на домен, який ви вказали. Не забудьте прописати його у себе в hosts файлі або на DNS сервері).

zabbix веб-інсталятор

Переконайтеся, що у всіх вимоги інсталятора вказано ОК.

zabbix перевірити попередні умови

Вкажіть дані для підключення до БД. Використовуйте користувача і пароль, який створили раніше.

дані для підключення до бази даних zabbix

Вкажіть назву Zabbix сервера. Порт рекомендую залишати стандартний – TCP 10051.

Система Zabbix за замовчуванням використовує два порти:

  • TCP 10050 – порт пасивного агента, по ньому zabbix сервер опитує клієнтів;
  • TCP 10051 – порт, на якому zabbix сервер отримує дані від клієнтів (активний агент).

Не забудьте відкрити дані порти. Наприклад, на Zabbix сервері на базі CentOS можна відкрити порти в firewalld за допомогою firewall-cmd:

# firewall-cmd --add-service={http,https} --permanentfirewall-cmd --add-port={10051/tcp,10050/tcp} –permanent

А на агента досить відкрити 10050:

# firewall-cmd --permanent --add-port=10050/tcp

Не забудьте перезавантажити firewalld:

# firewall-cmd –reload

ім'я та порти zabbix сервера

Після цього тисніть Next Step і Finish. Після успішної установки вас попросить залогінитися. За замовчуванням логін Admin, пароль zabbix (Замініть його).

авторизація веб-інтерфейсі в zabbix

інформаційна панель zabbix

На цьому установка сервера Zabbix Server завершена.

На сторінках https://www.zabbix.com/download є покрокові інструкції для установки Zabbix Server на інші операційні системи, а так само інструкції як зібрати zabbix-server з вихідного коду або запустити його в docker контейнерах.

Установка Zabbix Agent в Windows

Спробуємо встановити Zabbix агент на сервер Windows і додамо його на наш сервер моніторингу Zabbix. Завантажити версію Zabbix агент для Windows можна тут: https://www.zabbix.com/download_agents. агенти zabbix для windows

Виберіть потрібну версію агента під Windows. Я виберу формат msi (Amd64) (без OpenSSL). Якщо ви плануєте встановлювати zabbix agent на сервера / комп’ютери домену через групові політики або SCCM, то можете завантажити zip архів з бінарними файлами і файлами.

Запустіть інсталятор, прийміть ліцензійну угоду, вкажіть запитані дані. Зверніть увагу, що в поле “Server or Proxy for active checks” я вказав IP адреса в форматі IP: ПОРТ. Оскільки порт я залишав стандартний, я пишу IP: 10051.

настройка параметрів zabbix сервера при установці агента в windows

Далі ще пару раз натиснемо Next і Install.

Після цього переконаємося, що наш агент встановлений. У списку служб повинен з’явитися сервіс Zabbix Agent.

служба zabbix agent в windows

На клієнті Windows потрібно разрещіть вхідні підключення з IP адреси сервера Zabbix в брандмауер Windows:

New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.1.100 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow

Додавання пристрою на Zabbix-сервері

Щоб переконатися в працездатності агента, потрібно додати хост testnode2 на Zabbix сервер і призначити йому перевірки (checks).

замітка. У заббіксе є 2 типу перевірок:

  • Пасивні – Zabbix сервер запитує у агента будь-які дані;
  • Активні – агент посилає на сервер дані;

При установці агента ми вказували сервер в форматі IP: PORT якраз для активних перевірок.

Додавання нового пристрою для моніторингу в Zabbix виконується через Web-інтерфейс. Перейдіть в розділ Конфігурація -> Ведучі.

додавання хоста в моніторинг Zabbix

натисніть Створити хост і заповніть дані. Зверніть увагу, що Ім’я ведучого хоста повинен повністю збігатися з ім’я хоста машини або значенням параметра Ім’я хоста в конфіги агента.

додавання windows пристрою в Zabbix сервері

у вкладці Шаблони додати кілька вбудованих Windows шаблонів. Шаблони в Zabbix це набори значень, тригерів, графів і правил виявлення, які можуть бути призначені одному або декільком хостам.

Ці інтегровані шаблони мають постфікси “active”, значить, будуть використовуватися активні перевірки.

шаблони zabbix для windows

натисніть Додати. Щоб не чекати поки сервер і агент побачать один одного (зазвичай займає пару хвилин), перезавантажте службу Zabbix Agent на testnode2 і перевірте лог агента (C: Program Files Zabbix Agent zabbix_agentd.txt).

перезапуск служби Zabbix agent

лог zabbix_agentd.txt

Повідомлення “розпочато [active checks #1]“Говорить про те, що на сервері знайдені активні перевірки для цього хоста. Тепер подивимося на дані, які прийшли на сервер Zabbix від агента. Для цього в Zabbix перейдіть на Моніторинг -> Останні дані і виберете потрібний вам хост в поле Ведучі.

перевірка отримання даних від хоста в zabbix

дані про пристрій в веб інтерфейсі zabbix

Цей розділ подає останні дані, які прийшли на сервер за обраними хостам або групам хостів.

Зверніть увагу на те, що в дашборда Zabbix висить повідомлення про те, що служба BITS не запущено. Це повідомлення з’явилося тому що ми призначили стандартні шаблони нашому хосту. В одному з шаблонів був моніторинг сервісу BITS і відповідний тригер, який спрацьовує якщо служба BITS знаходиться не в статусі Running.

події в dashboard zabbix

На цьому настройка Windows Agentа завершена.

Установка Zabbix Agent в Linux

Тепер встановимо агент Zabbix в Linux. Для установки Zabbix агента в Ubuntu Server 18.04 за допомогою пакетного менеджера потрібно завантажити і встановити репозиторій Zabbix. Потім зі сховищ встановимо zabbix agent:
# wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
# dpkg -i zabbix-release_4.4-1+bionic_all.deb
# apt update
# apt install zabbix-agent

У CentOS для додавання сховища та установки агента zabbix використовується команди:
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-agent

Перед тим як ми запустимо zabbix агент, потрібно відредагувати конфігураційний файл /etc/zabbix/zabbix_agentd.conf. У ньому потрібно вказати IP адреса сервера Zabbix для активних перевірок.

Server=IP
ServerActive=IP:10051
Hostname=testagent

Після цього запустіть сервіс агента:

# service zabbix-agent start

Переконайтеся, що агент успішно запустився.

# cat /var/log/zabbix/zabbix_agentd.log

установка zabbix agent в linux ubuntu

рядок не вдається проаналізувати список активних перевірок говорить про те, що на сервері немає активних перевірок для цього хоста.

Як і у випадку з Windows агентом, вам потрібно додати ваш Linux хост в настройках сервера Zabbix. Зверніть увагу на параметр Host name в налаштування хоста в інтерфейсі заббікс сервера – цей параметр повинен збігатися з Hostname параметром, який ми вказуємо в конфіги Zabbix -агентів. У конфіге вище я вказував ім’я хоста заповідач.

додавання ubuntu в моніторинг zabbix

23

Перезавантажте Zabbix агент і перевірте лог.

лог zabbix_agentd

Перевірте, що дані від агента з’явилися на сервері Zabbix.

дані з linux сервера з'явилися в веб інтерфейсі zabbix

На цьому настройка Zabbix-агента на Linux системі завершена. У наступній статті ми розглянемо безагентний моніторинг доступності вузлів в Zabbix через ICMP Ping.

Leave a Reply

Your email address will not be published. Required fields are marked *