Zabbix добавление сервера windows

Zabbix это open-source система мониторинга корпоративного уровня. На текущий момент Zabbix одна из самых популярных и функциональных бесплатных систем мониторинга. Благодаря простой установке и настройке Zabbix можно использовать для мониторинга крупных инфраструктур с сотнями серверов, так и для мелких конфигураций. В этой статье мы рассмотрим, как выполнить установку и базовую настройку сервера Zabbix 4.4 с веб-интерфейсом на базе Linux Ubuntu и CentOS, установить агенты Zabbix на сервере Windows и Linux, и добавить новые хосты в систему мониторинга.

Общий интерфейс Zabbix сервера представлен на скриншоте ниже.

веб интерфейс системы мониторинга zabbix

Содержание:

  • Из чего состоит Zabbix и что он может?
  • Установка Zabbix Server в Linux (Ubuntu, CentOS)
  • Настройка веб-интерфейса Zabbix
  • Установка Zabbix Agent в Windows
  • Добавление устройства на Zabbix-сервере
  • Установка Zabbix Agent в Linux

Из чего состоит 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 Version (4.4) -> OS Distribution (Ubuntu) -> OS Version (18.04 Bionic) -> Database (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 веб installer

Убедитесь, что во всех требования инсталлятора указано ОК.

zabbix check pre-requisites

Укажите данные для подключения к БД. Используйте пользователя и пароль, который создали ранее.

данные для подключения к базе данных 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 dashboard

На этом установка сервера 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:PORT. Поскольку порт я оставлял стандартный, я пишу 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-интерфейс. Перейдите в раздел Configuration -> Hosts.

добавление хоста в мониторинг Zabbix

Нажмите Create host и заполните данные. Обратите внимание, что Host name хоста должен полностью совпадать с hostname машины или значением параметра Hostname в конфиге агента.

добавление windows устройства в Zabbix сервере

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

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

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

Нажмите Add. Чтобы не ждать пока сервер и агент увидят друг друга (обычно занимает пару минут), перезагрузите службу Zabbix Agent на testnode2 и проверьте лог агента (C:\Program Files\Zabbix Agent\zabbix_agentd.txt).

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

лог zabbix_agentd.txt

Сообщение “started [active checks #1]” говорит о том, что на сервере найдены активные проверки для этого хоста. Теперь посмотрим на данные, которые пришли на сервер Zabbix от агента. Для этого в Zabbix перейдите на Monitoring -> Latest Data и выберете нужный вам хост в поле Hosts.

проверка получение данных от хоста в 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

Строка cannot parse list of active checks говорит о том, что на сервере нет активных проверок для этого хоста.

Как и в случае с Windows агентом, вам нужно добавить ваш Linux хост в настройках сервера Zabbix. Обратите внимание на параметр Host name в настройка хоста в интерфейсе заббикс сервера — этот параметр должен совпадать с Hostname параметром, который мы указываем в конфиге Zabbix -агента. В конфиге выше я указывал имя хоста testagent.

добавление ubuntu в мониторинг zabbix

23

Перезагрузите Zabbix агент и проверьте лог.

лог zabbix_agentd

Проверьте, что данные от агента появились на сервере Zabbix.

данные с linux сервера появились в веб интерфейсе zabbix

На этом настройка Zabbix-агента на Linux системе завершена. В следующей статье мы рассмотрим безагентный мониторинг доступности узлов в Zabbix через ICMP Ping.

In the previous article, we looked at how you can add Linux servers on the Zabbix server for monitoring. In this guide, we switch gears and focus our spotlight on how you can add a Windows host system to the Zabbix server for monitoring.

For this tutorial, we will add the Windows server 2019 datacenter edition to Zabbix Server.

Step 1) Download Zabbix Agent for Windows Server

As we saw when adding Linux hosts, the first step when adding a host to the Zabbix server is to install the Zabbix agent on the host system first. With that in mind, head out to the official Zabbix agents download page and download the Zabbix Window’s agent.

By default, this will download it in the ‘Downloads’ folder as shown.

Download-Zabbix-agent-for-Windows

Once downloaded, right-click on the zipped file and select ‘Extract All’ to unzip it as shown.

This unzips it into 2 folders: bin and conf folder. The bin folder contains the Zabbix agent executable file while the conf folder contains the Zabbix agent configuration file – zabbix.agentd.conf

Extracted-Zabbix-agent-windows-host

Step 2) Edit the Zabbix configuration file

We need to make a few changes to the zabbix configuration file for the Zabbix agent to communicate with the Zabbix server. Therefore, open the zabbix configuration file – zabbix.agentd.conf – and modify the parameters as shown:

Server=<IP address of the Zabbix server>
ServerActive=<IP address of the Zabbix server>
Hostname=<The FQDN of the Windows server>

Save the changes and exit the file.

Step 3) Install and start Zabbix Agent on Windows server

With all the configurations in order, run command prompt as administrator and install Zabbix using the syntax as shown:

C:\> {full system path to zabbix_agentd.exe) –config  {full system path to zabbix_agentd.win.conf} –install

In my case, the command will be:

C:\>C:\Users\winnie95atieno\Downloads\bin\zabbix_agentd.exe --config C:\Users\winnie95atieno\Downloads\conf\zabbix_agentd.conf --install

Install-Zabbix-agent-conf-windows

From the output, we can see that the Zabbix agent has successfully been installed.

To start Zabbix, use the syntax:

C:\> {full system path to zabbix_agentd.exe) –start

The command will therefore be:

C:\>C:\Users\winnie95atieno\Downloads\bin\zabbix_agentd.exe --start

Start-Zabbix-Agent-Windows-Host

To confirm that the Zabbix agent is running, head out to the ‘Windows Services’ application and confirm that the Zabbix agent is up and running.

Verify-Zabbix-Agent-Service-Windows

Step 4) Configure Windows firewall for Zabbix Agent

By default, the Windows firewall is enabled and blocks incoming and going connections. We are therefore going to make a few changes to allow traffic from the Windows Server host to the Zabbix server.

First, we are going to allow ICMP protocol for the Zabbix server to establish network communication with the Windows host and report any errors when they occur. Therefore, run Windows Powershell with Administrative privileges and execute the command as shown:

netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol="icmpv4:8,any" dir=in action=allow

Next, allows port 10050 – which is the default port that Zabbix listens to  – on the firewall.

netsh advfirewall firewall add rule name="Open Port 10050" dir=in action=allow protocol=TCP localport=10050

Allow-Zabbix-agent-ports-firewall-windows

To this point, we have successfully installed and configured the Zabbix agent on the Windows host system. The Zabbix agent should be sending system metrics to the Zabbix server. Let’s now go over and see how you can add the Windows host on the Zabbix server.

Step 5)  Add a Windows host on Zabbix Server

To add a Windows host, go to Configuration –> Host –> Create Host

Create-Windows-Host-Zabbix-Server

On the next screen, fill out the Windows host details such as hostname, visible name and IP address.

Specify-Windows-Host-Details-Zabbix-Server

For the ‘Groups’ section, click on the ‘Select’ button and click on the ‘Templates/Operating system’ option.

Choose-Operating-System-Template-Zabbix-Server

Next, click on the ‘Templates’ tab on the menu and click ‘Template OS Windows by Zabbix agent’. Finally, click on the ‘Select’ button.

Choose-Windows-OS-Template-Zabbix-Agent

On the dashboard, check the Windows host listed as shown below. Note that the state is indicated ‘Enabled’ with the Zabbix icon ‘ZBX’ in green color.

Windows-Server-Added-Zabbix-Server

To graph the metrics associated with the Windows host system, click on ‘Monitoring’ –>  ‘Hosts’. Click on the Windows host and select ‘Graphs’.

Windows-Hosts-Graph-Zabbix-Server

Finally, the Zabbix server will start graphing the system metrics shipped by the Zabbix agent which is residing on the Windows server host system. There are various metrics that you can monitor including network Interface statistics, CPU usage and utilization, Disk space usage and Memory utilization to mention a few.

Windows-Server-Network-Graph-Zabbix-Server

Windows-Host-Disk-Graph-Zabbix-Server

And this brings us to the end of this topic. It’s our hope that you can now comfortably add a Windows host on the Zabbix server for monitoring.


Estimated reading: 6 minutes


995 views

In the previous article, we looked at how you can add Linux servers to the Zabbix server for monitoring. In this guide, we switch gears and focus our spotlight on how you can add a Windows host system to the Zabbix server for monitoring.
For this tutorial, we will add the Windows server 2019/2022 data center edition to Zabbix Server.

Step 1: Download and Install Zabbix Agent on Windows

As we saw when adding Linux hosts, the first step when adding a host to the Zabbix server is to install the Zabbix agent on the host system first. With that in mind, head out to the official Zabbix agents download page and download the Zabbix Window’s agent.
By default, this will download it in the ‘Downloads’ folder as shown.

Method 1: Install via cmd

Once downloaded, right-click on the zipped file and select ‘Extract All’
This unzips it into 2 folders: bin and conf folder. The bin folder contains the Zabbix agent executable file while the conf folder contains the Zabbix agent configuration file – zabbix.agentd.conf
1. Then manually installed and started on the system using windows Command Prompt as in the following example:

C:\Users\caezsar><full system path to zabbix_agentd.exe> --config <full system path to zabbix_agentd.win.conf> --install

For example, suppose you’ve downloaded and extracted the Zabbix agent zip archive to C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl, run the following command to install the service:

C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl\bin\zabbix_agentd.exe --config C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl\conf\zabbix_agentd.conf --install

2. After the service has been installed on your Windows host, open zabbix_agentd.win.conf file and manually edit the following parameters:
zabbix_agentd.win.conf

Server=IP of Zabbix Server
ServerActive=IP of Zabbix Server
Hostname=use the FQDN of your windows host

3. To start the service just type:

C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl\bin\zabbix_agentd.exe --start

To stop the service run the same command as above with --stop argument and to uninstall the service use the --uninstall argument.

C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl\bin\zabbix_agentd.exe --stop
C:\Users\Administrator\Downloads\zabbix_agent-5.0.33-windows-amd64-openssl\bin\zabbix_agentd.exe --uninstall

Method 2: Install via msi  file

1. A second and more convenient method to install and automatically configure the Zabbix agent on Windows environments is by downloading the Zabbix Agent installer MSI package specific to your system architecture.
2. Once the Zabbix agent MSI file has been downloaded on your system, run it and supply the required information in order to configure and install the agent on the target monitored host as follows:

Hostname: use the FQDN of your windows host (the hostname value should match the “Full Computer name” configured for your machine)
Zabbix server Name: use the IP of the Zabbix Server
Agent Port: 10050 
Remote Command: check this value
Active Server: IP of Zabbix Server
Zabbix Agent Installation on Windows

Zabbix Agent Installation on Windows

If you need to modify the Zabbix configuration file with other custom values at a later date, the conf file can be found on the %programfiles%Zabbix Agent path.
After you’ve finished the setup, open Windows Command Prompt with Administrator privileges, run services.msc command in order to open Windows Services utility, and locate the Zabbix Agent service to check if the service is running and automatically started after reboot.

services.msc

From this console, you can manage the service (start, stop, pause, resume, enable or disable).

Zabbix Agent Windows Service

Zabbix Agent Windows Service

Step 2: Configure Windows Firewall and Test Zabbix Agent

7. Almost all Windows-based systems have Windows Firewall active and running, therefore Zabbix agent port must be opened in the firewall in order to communicate with the Zabbix server.
In order to open the Zabbix agent port in the windows firewall, open Control Panel -> System and Security – > Windows Firewall and hit on Allow an app through Windows Firewall.

Open Zabbix Port on Windows

Open Zabbix Port on Windows

8. Next, click on Allow another app button, and a new window should open. Use the Browse button to navigate and add Zabbix agent executable file (usually found in %programfiles%Zabbix Agent if you installed it using the MSI program), then hit on Add button to add the service.

Add Zabbix Agent

Add Zabbix Agent
Add Zabbix to Windows

Add Zabbix to Windows

9. Next, make sure you check and open the firewall rule on the network segment where the Zabbix server is located in your network and hit the OK button to finish and apply the configuration.

10. In order to test if the Zabbix agent running on windows is reachable from the Zabbix server-side, use telnet or netcat command on Zabbix server against windows agent IP-Port and a Connected message should appear. Hit Enter key to generate an error message and automatically disconnect from the agent:

telnet <Windows_agent IP Address> 10050
Check Zabbix Agent Port on Windows

Check Zabbix Agent Port on Windows

Step 3: Add Zabbix Agent Monitored Windows Host to Zabbix Server

11. Once the windows agent has been tested from the command line and everything looks fine, go to Zabbix Server web interface, move to Configuration tab -> Hosts, and hit on Create Host button in order to add the Windows monitored host.

Add Windows Host to Zabbix

Add Windows Host to Zabbix

12. On the next screen, fill out the Windows host details such as hostname, visible name and IP address.

Windows Host Configuration in Zabbix

For the ‘Groups’ section, click on the ‘Select’ button and click on the ‘Templates/Operating system’ option.

13. Next, click on the ‘Templates’ tab on the menu and click ‘Template OS Windows by Zabbix agent’. Finally, click on the ‘Select’ button.

Zabbix Template OS Windows

14. On the dashboard, check the Windows host listed as shown below. Note that the state is indicated ‘Enabled’ with the Zabbix icon ‘ZBX’ in green color..

Zabbix Template OS Windows

15. To graph the metrics associated with the Windows host system, click on ‘Monitoring’ –>  ‘Hosts’. Click on the Windows host and select ‘Graphs’.

Zabbix Template OS Windows

Finally, the Zabbix server will start graphing the system metrics shipped by the Zabbix agent which is residing on the Windows server host system. There are various metrics that you can monitor including network Interface statistics, CPU usage and utilization, Disk space usage, and Memory utilization to mention a few.

Zabbix Template OS Windows

Summary

In this article, we have guided Install Zabbix Agent and Add Windows Host to Zabbix Monitoring. Hope this article will be useful for you

Support 24/24h with coupon code: 1DOLLAROFF 10% discount. Click now! 👆

Знакомство с системой

Zabbix — популярная система мониторинга IT-инфраструктуры и приложений с открытым исходным кодом, которой пользуются малые, средние и крупные компании по всему миру. В тексте мы расскажем об установке и настройке пятой версии Zabbix, которая вышла в мае 2020 года.

Основное преимущество продукта — большое сообщество пользователей и, как следствие, множество полезной информации о подходах к использованию, настройке, созданию шаблонов мониторинга и многом другом.

Скачать Zabbix можно на официальном сайте. Продукт поддерживает множество актуальных платформ. 

Поддерживаемые платформы Zabbix 5.

Поддерживаемые платформы Zabbix 5.

Кроме CentOS, установка Zabbix-сервера из бинарного файла возможна на следующие операционные системы:

  • Alma Linux,
  • Debian,
  • Oracle Linux,
  • Raspberry Pi OS,
  • Red Hat Enterprise Linux;
  • Rocky Linux,
  • SUSE Linux Enterprise Server;
  • Ubuntu,
  • Ubuntu (arm64).

Zabbix и его компоненты

Zabbix — это распределенная система мониторинга, которая состоит из компонентов. Рассмотрим ключевые.

  • Zabbix-сервер. Этот компонент — ядро системы мониторинга. Он отвечает за визуализацию, агрегацию и аналитику данных, оповещения, управление распределенными компонентами (прокси и агентами). В качестве web-сервера вендор позволяет использовать Apache или Nginx.
  • Zabbix-прокси. Компонент отвечает за управление Zabbix-агентами. Использование прокси опционально, но позволяет снизить нагрузку на Zabbix-сервер за счет переноса с него функций управления агентами и предобработки данных. Эта функциональность появилась как раз в пятой версии Zabbix.
  • Zabbix-агент. Агент — конечный компонент инфраструктуры мониторинга. Выполняет сбор и отправку данных о производительности на Zabbix-прокси или Zabbix-сервер.
  • База данных Zabbix. Хранилище метрик производительности. Вендор поддерживает реляционные базы данных: MySQL, PostgreSQL, SQL Server, Oracle. Обращаем внимание, что с версии 5.0 прекращена поддержка базы данных IBM DB2.
  • Web-интерфейс. Компонент предназначен для мониторинга показателей системы. Также при его помощи можно настраивать отслеживаемые компоненты и основную систему Zabbix.

Готовые решения для установки

Установка Zabbix в виде Docker-контейнера

Установка системы из Docker-контейнера — быстрый способ, который займет не более 10 минут. 

1. Добавим репозиторий Docker и установим необходимые пакеты.

    # yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce docker-ce-cli containerd.io docker-compose

Следующий шаг — клонирование репозитория Zabbix с Github:

    # git clone https://github.com/zabbix/zabbix-docker.git

2. Перейдем в клонированный репозиторий и просмотрим содержимое командой ls.

    # cd zabbix-docker/
# ls

agent                                       docker-compose_v3_centos_mysql_local.yaml   java-gateway     snmptraps
agent2                                      docker-compose_v3_centos_pgsql_latest.yaml  kubernetes.yaml  web-apache-mysql
build.sh                                    docker-compose_v3_centos_pgsql_local.yaml   LICENSE          web-apache-pgsql
docker-compose_v3_alpine_mysql_latest.yaml  docker-compose_v3_ubuntu_mysql_latest.yaml  proxy-mysql      web-nginx-mysql
docker-compose_v3_alpine_mysql_local.yaml   docker-compose_v3_ubuntu_mysql_local.yaml   proxy-sqlite3    web-nginx-pgsql
docker-compose_v3_alpine_pgsql_latest.yaml  docker-compose_v3_ubuntu_pgsql_latest.yaml  README.md        zabbix-appliance
docker-compose_v3_alpine_pgsql_local.yaml   docker-compose_v3_ubuntu_pgsql_local.yaml   server-mysql     zbx_env
docker-compose_v3_centos_mysql_latest.yaml  generate-stackbrew-library.sh               server-pgsql

3. Запустим демон Docker.

    # systemctl start docker

4. Соберем и запустим контейнеры с Zabbix.

    # docker-compose -f docker-compose_v3_centos_pgsql_latest.yaml up -d

5. После запуска компонентов Zabbix, перейдем в web-интерфейс.

Web-интерфейс Zabbix.

Web-интерфейс Zabbix.

Установка Zabbix из готовых образов

Самый быстрый тип установки — из готовых образов. Разворачивание займет не более 5 минут. Рассмотрим установку Zabbix-сервера из образа в формате Open virtualization format (OVF). 

Готовые образы Zabbix.

Для разворачивания OVF-образа на локальной машине предварительно нужно установить VirtualBox. Последний поддерживает множество актуальных платформ и доступен для скачивания на сайте Oracle. После установки ПО и загрузки образа, приступим к установке. 

1. В интерфейсе VirtualBox нажмем кнопку Импортировать.

Стартовая страница Oracle VM VirtualBox.

2. Выберем образ zabbix_appliance-5.0.0.ovf (рядом с ним должен находиться zabbix_appliance-5.0.0-disk001.vmdk). Нажмем Продолжить, а на следующем экране все параметры оставим по умолчанию и нажмем Импорт.

Выбор конфигурации.

3. Теперь мы можем открыть виртуальную машину соответствующей кнопкой Запустить. Обратите внимание, что для корректного подключения к интерфейсу Zabbix или виртуальной машине по SSH в сетевых настройках должен быть указан тип подключения Сетевой мост.

Виртуальная машина в Oracle VM VirtualBox.

4. Дожидаемся успешного запуска виртуальной машины, входим под учетными данными root / zabbix в консоли VirtualBox и выполняем команду # ip a. В результате увидим настройки сети на виртуальной машине с установленным Zabbix.

Настройки сети на виртуальной машине.

5. Теперь подключимся к Zabbix-серверу через браузер. Учетные данные стандартные — Admin / zabbix. Данные о производительности начнут собираться сразу. Установка завершена! 

Экран авторизации Zabbix.

Страница авторизации.
Страница сбора данных о производительности в Zabbix.

Сбор данных о производительности.

Ручная установка

Основные отличия установки

Рассмотрим установку системы на CentOS, Ubuntu, Debian и Windows. При этом важно отметить, что установка на дистрибутивы Ubuntu и Debian практически не отличается, поэтому подробнее остановимся на CentOS и Windows. 

Подобрать команды под конкретную версию Zabbix и версию ОС можно на официальном сайте. Для этого нужно только выбрать конфигурацию вашего сервера, а утилита автоматически подберет список команд со ссылками на документацию. Например, установка Zabbix-прокси пятой версии на сервер с Ubuntu 24.04 и БД PostgreSQL будет выглядеть так:

Скриншот официального сайта Zabbix. Утилита для подбора команд.

Установка Zabbix-сервера на CentOS

В первую очередь установим сервер. 

1. В панели управления перейдем во вкладку Облачная платформа → Проекты и нажмем на кнопку Создать проект. В следующем окне заполняем имя проекта и нажимаем Создать.

Создание проекта в панели управления Selectel.

Создание проекта в панели управления Selectel.

2. После создания проекта вернемся во вкладку Облачная платформа → Серверы и нажмем Создать сервер

Создание сервера в панели управления Selectel.

3. В окне конфигурирования нового сервера выбираем источник — CentOS 8 64-bit, vCPU — 4, RAM — 8. 

Конфигурация зависит от метрик мониторинга, которые вы будете использовать, а также от времени их хранения. Подробнее о требованиях к аппаратному и программному обеспечению — в официальной документации Zabbix.

В подразделе Сеть выбираем Новый публичный IP-адрес, чтобы позже мы могли подключиться к серверу через SSH и к web-консоли Zabbix через браузер. Остальные параметры можно оставить по умолчанию или настроить исходя из ваших требований.

Конфигурация нового сервера в панели управления Selectel.

4. В подразделе Доступ копируем пароль root. Нажимаем на кнопку Создать сервер. Как только сервер будет создан, во вкладке Облачная платформа →Серверы около него появится статус Active. Теперь мы можем подключиться к внешнему плавающему IP-адресу по протоколу SSH.

Cозданный сервер во вкладке «Серверы».

Перейдем к установке репозиториев ПО. Это нужно для получения актуального набора пакетов с компонентами Zabbix и PostgreSQL. 

1. Выполним команды для установки компонентов.

    # yum install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# yum clean all

Репозитории с актуальными версиями устанавливаемых компонентов для различных платформ можно найти на сайтах производителей Zabbix и PostgreSQL.

2. Установим Zabbix-сервер и Zabbix-агент.

    # yum install zabbix-server-pgsql zabbix-agent

3. Внесем изменения в конфигурацию репозитория Zabbix. Для этого включим Zabbix frontend в файле /etc/yum.repos.d/zabbix.repo, изменив значение ключа enabled со значения 0 на 1.

    [zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

4. Установим Red Hat Software Collections для упрощения дальнейшей настройки, а также PostgreSQL и другие пакеты.

    # yum install centos-release-scl
# yum install postgresql12-server zabbix-web-pgsql-scl zabbix-nginx-conf-scl

Обратите внимание, что в инструкции мы работаем с локальным хранилищем на базе PostgreSQL. Если вы используете MySQL, то имя пакета для Zabbix-сервера будет отличаться.

5. Инициализируем и настроим автозапуск, запустим БД PostgreSQL.

    # /usr/pgsql-12/bin/postgresql-12-setup initdb
# systemctl enable postgresql-12
# systemctl start postgresql-12

6. После успешного запуска создадим базу данных для Zabbix и пользователя в ней. Первая команда запросит пароль.

    # sudo -i -u postgres createuser --pwprompt zabbix
# sudo -i -u postgres createdb -O zabbix zabbix

7. Внесем изменения в конфигурационный файл /var/lib/pgsql/12/data/pg_hba.conf для корректного подключения к БД PostgreSQL с паролем. Метод для обоих подключений должен быть md5.

    # TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

8. После создания пользователя организуем для него схему по умолчанию.

    # sudo -i -u postgres psql -U zabbix
# zabbix=&gt; create schema zabbix;
# zabbix=&gt; ALTER ROLE zabbix SET search_path = zabbix;
# zabbix=&gt; \q

9. Установим в БД схемы данных.

    # zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

10. Впишем созданный для БД пароль в конфигурационный файл Zabbix /etc/zabbix/zabbix_server.conf. На этом шаге нам нужны параметры DBHost, DBName, DBSchema, DBUser и DBPassword.

Далее — настроим Nginx для корректной работы в Zabbix. 
1. Перейдем в конфигурационный файл /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf. Раскомментируем две строки и укажем IP-адрес или имя сервера.

    listen 80;
server_name ;

2. Перейдем к файлу  /etc/opt/rh/rh-php72/php-fpm.d/zabbix.con и внесем изменения в двух местах.

    listen.acl_users = apache,nginx
php_value[date.timezone] = Europe/Moscow

3. Запустим сервисы Zabbix и добавим их в автозапуск.

    # systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

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

Начальное окно настройки Zabbix 5.0.

1. Переходим на экран Configure DB connection и указываем реквизиты подключения к БД.

Экран Configure DB connection.

2. В окне Zabbix server details вводим имя хоста, на котором установлен Zabbix. Порт оставляем по умолчанию.

Страница Zabbix server details.

3. Переходим на последний экран и нажимаем Finish. Настройка завершена.

Завершающая страница настройки.

4. Стандартная учетная запись для входа — Admin с паролем zabbix. Установка завершена и система готова к работе, можно приступать к ее настройке. 

Страница авторизации.

В некоторых ситуациях для корректной работы системы Zabbix важно отключить SElinux.

Установка Zabbix-сервера с MySQL в Ubuntu и Debian

Установка Zabbix на Ubuntu и Debian практически идентична из-за схожести дистрибутивов. Отличается только первый этап. Рассмотрим пошаговый процесс установки Zabbix с использованием базы данных MySQL, а также web-серверов Apache и Nginx. 

1. Скачаем репозиторий Zabbix, установим его и обновим репозитории. В примере используем Ubuntu 20.04 и Debian 10, но вы можете заменить название дистрибутива исходя из версии.

Для Ubuntu:

    wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_5.0+ubuntu20.04_all.deb
dpkg -i zabbix-release_latest_5.0+ubuntu20.04_all.deb
apt update

Для Debian:

    # wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_5.0+debian10_all.deb
# dpkg -i zabbix-release_latest_5.0+debian10_all.deb
# apt update

2. Установим MySQL, web-интерфейс, Zabbix-сервер, а также Zabbix-агент, если не сделали этого ранее.

Для работы с Apache:

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

Для работы с Nginx:

    apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

3. Создадим базу данных и пользователя для Zabbix, задаем пароль.

    sudo mysql -u root -p

4. В консоли MySQL создадим БД с кодировкой, пользователя и пароль для него, а также выдадим ему доступ к базе данных. Обратите внимание, что система Zabbix поддерживает только кодировку UTF-8.

    create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by пароль для нового пользователя';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

5. Импортируем начальную схему и данные на хосте Zabbix. Система запросит пароль — указываем тот, что создали на предыдущем шаге.

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

6. В конфигурационном файле Zabbix-сервера /etc/zabbix/zabbix_server.conf введем после  DBPassword= пароль для подключения к БД. Далее — сохраним изменения и закроем редактор. 
7. Для Apache — отредактируем файл /etc/zabbix/apache.conf. Раскомментируем строку и установим правильный временной пояс,  в нашем примере — московский, но вы можете выбрать любой подходящий.

    php_value date.timezone Europe/Moscow

Для Nginx — отредактируем файл /etc/zabbix/nginx.conf. Раскомментируем и настроим директивы listen и server_name.

    listen 80;
server_name example.com;

Также при работе с Nginx важно отредактировать файл /etc/zabbix/php-fpm.conf. Раскомментируем строку и укажем свой часовой пояс.

    php_value[date.timezone] = Europe/Moscow

8. Перезапустим web-сервис и настроим автозапуск при загрузке операционной системы. 

Для Apache:

    # systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2

Для Nginx:

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

Установка завершена! 

Установка агента Zabbix на Windows

Перед началом установки создадим в панели управления сервер с ОС Windows. 

1. Во вкладке Облачная платформа → Проекты и нажмем на кнопку Создать проект. В следующем окне заполняем имя проекта и нажимаем Создать.

Создание проекта в панели управления Selectel.

Создание проекта в панели управления Selectel.

2. Перейдем во вкладку Облачная платформа → Серверы и нажмем Создать сервер

Создание сервера в панели управления Selectel.

3. В окне конфигурирования нового сервера выбираем источник — Windows Server 2016 Standard, vCPU — 4, RAM — 8. Остальные настройки оставляем по умолчанию, однако вы можете конфигурировать сервер исходя из ваших требований.

Настройка нового сервера в панели управления.

Выбор источника.

4. В подразделе Сеть выбираем Новый публичный IP-адрес для подключения к серверу через RDP. 

Настройка сети для нового сервера.

5. В подразделе Доступ копируем пароль учетной записи Administrator для дальнейшего доступа к серверу по RDP. Нажимаем на кнопку Создать сервер.

Настройка доступа для нового сервера.

6. Когда сервер будет готов, во вкладке Облачная платформа → Серверы он перейдет в статус Active. Теперь можно подключаться к внешнему плавающему IP-адресу по протоколу RDP.

Новый сервер в разделе «Серверы».

Установка и настройка Zabbix-агента на Windows-сервер в ручном режиме занимает около 10 минут. Скачать дистрибутив можно на сайте Zabbix. 

1. После скачивания архив распакуем в созданную директорию (в нашем примере — C:\Zabbix).

Директория C:\Zabbix.

2. Внесем изменение в конфигурационный файл, который хранится в папке conf.

    Server=

3. Установим агент в виде сервиса и запустим его. Для этого выполним zabbix_agentd со специальными реквизитами.

    &gt; zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf -i
&gt; zabbix_agentd.exe -c C:\Zabbix\conf\zabbix_agentd.conf --start
Скриншот консоли.

4. Добавим агента в web-интерфейсе Zabbix. Перейдем во вкладку Configuration Hosts и в верхнем правом углу нажмем Create Host.

Вкладка Hosts в web-интерфейсе Zabbix.

5. Введем данные сервера — имя, группу и сетевой интерфейс, через который будет выполняться подключение к агенту.

Настройка сервера.

6. Перейдем на вкладку Templates. Так как речь идет об ОС Windows, применим к узлу соответствующий шаблон Template OS Windows by Zabbix agent. Сохраним изменения и подождем начала сбора метрик.

Вкладка Templates.

7. Собираемые по узлам метрики доступны на представлении Monitoring → Latest Data. Напротив каждой метрики (Item) есть кнопка Graph, при нажатии на которую открывается соответствующий график. Настройка мониторинга узла с ОС Windows завершена!

Вкладка Latest Data.

Вкладка Latest Data.
Отображение графика в web-интерфейсе.

Отображение графика.

Настройка и интеграция Zabbix 5

Рассмотрим добавление пользователя, настройку оповещений и изменение шаблонов мониторинга. Также опишем ключевые технологии и элементы инфраструктуры Zabbix.

Настройка web-интерфейса

В web-интерфейсе мы можем настроить отчеты и мониторить работу серверов. Важно отметить, что фронтенд Zabbix написан на PHP, поэтому для запуска нужен сервер с его поддержкой.

1. Откроем в браузере URL-адрес web-интерфейса Zabbix. Для Nginx — http://<server_ip_or_name>, для Apache — http://<server_ip_or_name>/zabbix. Так мы попадем на первую страницу установки. Переходим к следующему этапу, нажав кнопку Next step.

Стартовая страница установки.

2. Во втором окне убедимся, что на всех строках зафиксирован статус OK

Страница Check of pre-requisites.

3. Проверяем поля для подключения к БД. Автоматически заполнено все, кроме пароля. Вводим его.

Страница Configure DB connection.

4. Оставляем поля по умолчанию. Поле Name — опциональное, но при указании имени сервера оно будет отображаться в меню и заголовках страниц.

Страница Zabbix server details.

5. Проверяем настройки и переходим далее.

Страница Pre-installation summary.

6. Установка завершена. Нажимаем Finish.

Завершающая страница установки.

7. Переходим на страницу авторизации, вводим имя и пароль для входа в web-интерфейс. 

Добавление пользователя

Для каждого пользователя в Zabbix есть имя и пароль — реквизиты, с которыми можно войти в систему. Все пароли в Zabbix хранятся в зашифрованном виде, а при необходимости можно настроить авторизацию пользователей через Active Directory или LDAP. Рассмотрим работу встроенных в Zabbix пользователей.

Важный нюанс: в системе Zabbix каждый пользователь должен входить в группу. На их основе присваиваются соответствующие права. Создадим пользователя и рассмотрим на примере.

1. В web-интерфейсе Zabbix перейдем в раздел Administration, далее — во вкладку Users. В верхнем правом углу нажмем Create User.

Вкладка Users.

2. Укажем имя пользователя, группу и пароль. Остальные поля можно оставить по умолчанию.

Настройка пользователя.

3. Для каждого пользователя можно указать его данные для оповещения: электронную почту, аккаунт в Telegram, имя в Slack и т. д. Для этого перейдем на страницу Media, нажмем Add. В качестве примера выберем TypeEmail и укажем адрес электронной почты. Также здесь можно задать критичность событий, по которым нужно отправлять уведомления, а также интервал оповещений.

Страница Media.

4. После внесения всей информации нажмем Add во вкладке User и сохраним созданного пользователя.

Важно: для любого пользователя мы можем сменить пароль. Для этого в Administration → Users нужно выбрать соответствующую учетную запись, нажать Change password и ввести новый пароль.

Смена пароля в web-интерфейсе.

Теперь создадим группу пользователей. 

1. Переходим во вкладку Administration → User groups. В верхнем правом углу нажимаем Create user group.

Вкладка User Groups.

2. Указываем имя группы и созданного пользователя.

Создание новой группы.

3. На странице Permissions указываем имя группы хостов, к данным по которой у создаваемой группы будет доступ. Нажимаем Add.

Страница Permissions.

4. Группа создана. Ей предоставлен требуемый уровень прав, а также привязан пользователь.

Также важно отметить, что одно из нововведений пятой версии Zabbix — поддержка SAML (Security Assertion Markup Language), — открытого стандарта обмена данными аутентификации. Он позволяет использовать одни учетные данные для авторизации и получения доступа в нескольких приложениях. 

Помимо прочего, SAML упрощает процесс интеграции с многими облачными провайдерами идентификации. Однако стандарт требует отдельного внимания, так что подробнее о его применении еще расскажем в отдельном тексте.

Низкоуровневое обнаружение (Low Level Discovery, LLD)

Низкоуровневое обнаружение позволяет автоматически ставить на мониторинг динамические экземпляры узлов. Например, файловые системы или сетевые интерфейсы, которые добавят администраторы, автоматически обнаружатся и появятся в системе мониторинга. Помимо прочего, в рамках шаблона можно настроить правила автоматического обнаружения.

В качестве примера рассмотрим Discovery Rules (правила обнаружения) для шаблона Windows. Здесь их четыре для следующих сущностей:

  • файловых систем,
  • сетевых интерфейсов,
  • физических дисков,
  • сервисов.
Страница Discovery Rules (правила обнаружения) в web-интерфейсе.

Раздел Discovery rules в web-интерфейсе.

Рассмотрим устройство правила обнаружения для файловых систем. В поле Key указан элемент данных vfs.fs.discovery, встроенный в Zabbix. Он возвращает список файловых систем, примонтированных к серверу. Другие встроенные элементы данных собраны на отдельной странице производителя.

Настройка правил обнаружения.

Настройка правил обнаружения.

Во вкладке Filters перечислены прототипы данных, которые в случае обнаружения новых элементов распознают их и запишут в БД.

Вкладка Filters.

Вкладка Filters.

Помимо прочего, Zabbix поддерживает добавление собственных элементов данных, фильтров и макросов.

Изменение шаблонов Zabbix

Шаблоны в Zabbix включают в себя следующие компоненты:

  • приложения (Applications),
  • экземпляры (Items),
  • макросы (Macros),
  • триггеры (Triggers),
  • правила обнаружения (Discovery rules),
  • другие элементы данных.

Каждый из элементов отвечает за свои уникальные возможности. Разберем формирование пороговых схем в триггерах на примере шаблона для Windows и его части — шаблона для файловых систем.

Страница Discovery Rules (правила обнаружения) в web-интерфейсе.

В примере ниже мы видим прототипы триггеров, которые соответствуют порогам по файловым системам Windows-серверов. Чтобы изменить пороговую схему, достаточно перейти в нужный шаблон и внести корректировки.

Страница Trigger prototypes.

Получить подробную информацию о создании выражений для настройки порогов можно в документации Zabbix.

Zabbix-прокси

Zabbix-прокси (Zabbix proxy) — процесс, который собирает данные мониторинга и позволяет отправлять их Zabbix-серверу. Он обеспечивает буферизацию информации, которая поступает от агентов, а также ее дальнейшую трансляцию в сторону Zabbix-сервера. Zabbix-прокси использует отдельную базу данных и поддерживает SQLite, MySQL и PostgreSQL.

Zabbix proxy можно эффективно использовать для сбора метрик с агентов в выделенных или удаленных сетях (за файерволом), участков инфраструктуры с ненадежной связью, а также для снижения нагрузки на Zabbix-сервер. Начиная с версии 5.0 прокси поддерживает предобработку данных на своей стороне.

Настройка шифрованной передачи данных

Шифрование данных между Zabbix-агентом и Zabbix-сервером — важный аспект безопасности, особенно при передаче данных через интернет без использования защищенного (зашифрованного) канала. Рассмотрим настройку с использованием предварительно согласованных ключей (Pre-Shared Keys, PSK). Это можно сделать, например, с помощью GnuTLS или OpenSSL. Рассмотрим второй вариант. 

Генерация Pre-Shared Key (PSK)

Сгенерируем 256-битный (32-байтный) PSK. На хосте с установленным Zabbix-агентом выполним следующую команду в консоли. Она создаст файл с ключом по указанному пути. 

    openssl rand -hex 32 &gt; /etc/zabbix5/zabbix_agentd.psk

Настройка агента Zabbix

Откроем конфигурационный файл агента zabbix_agentd.conf и добавим параметры.

  • TLSConnect — указывает, что агент будет использовать PSK для подключения.
  • TLSAccept — разрешает серверу подключаться с использованием PSK.
  • TLSPSKFile — путь к файлу с ключом.
  • TLSPSKIdentity — уникальный идентификатор ключа.
    TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
TLSPSKIdentity=PSK 001

После внесения изменений важно перезапустить Zabbix Agent.

    systemctl restart zabbix-agent

Настройка шифрования на Zabbix Server

Перейдем в web-интерфейс Zabbix-сервера и выполним следующие действия.

  1. Откроем свойства хоста, данные от которого передаются через агент.

2. Перейдем во вкладку Шифрование.

3. Укажем следующие настройки:

  • в полях Тип подключения и Соединение с узлом сети — PSK,
  • идентификатор PSK — PSK 001 (должен совпадать с TLSPSKIdentity в конфигурации агента),
  • сгенерированный ключ из файла /etc/zabbix/zabbix_agentd.psk.

Если шифрование настроено корректно, на странице информации о хосте в web-интерфейсе Zabbix Server будет отображена пометка о зашифрованном соединении. Настройка обеспечивает безопасную передачу данных и минимизирует риски утечки конфиденциальной информации.

Интеграция Zabbix с внешними системами

Разберем возможности интеграции Zabbix с системой визуализации Grafana, которую можно использовать для отображения статусов, графиков, значений и других типов данных. 

Об инструменте Grafana, его установке и настройке, подключении внешних источников данных и не только — в отдельном обзоре.

1. Установим и запустим Grafana в виде Docker-контейнера.

    # docker run -d -p 3000:3000 grafana/grafana

2. После установки убедимся, что контейнер с Grafana выполняется.

    # docker ps | grep grafana
1592a00802b5 grafana/grafana "/run.sh" 2 minutes ago Up 21 minutes 0.0.0.0:3000-&gt;3000/tcp optimistic_diffie

3. Используя ID контейнера, установим специализированный плагин для Zabbix и перезагрузим контейнер.

    # docker exec 1592a00802b5 grafana-cli plugins install alexanderzobnin-zabbix-app
# docker restart 1592a00802b5

4. Войдем в Grafana через браузер (учетные данные по умолчанию — admin / admin).

Стартовая страница web-интерфейса Grafana.

Web-интерфейс Grafana.

5. Активируем плагин для Zabbix. Чтобы это сделать, перейдем в Configurations → Plugins и нажмем Enable.

Страница Plugins.

6. Плагин включен, перейдем к конфигурации. Важные поля для заполнения — URL, User, Password. Остальные настройки можно оставить по умолчанию.

Конфигурирование Zabbix.

7. Настройка завершена. Можно добавлять на дашборды различные элементы данных на основе метрик из Zabbix.

Дашборд Zabbix Server.

У Grafana есть множество готовых дашбордов. Их можно найти на сайте проекта и импортировать через web-интерфейс.

Сервер с Zabbix в Selectel

Если нет времени на настройку Zabbix с нуля, в панели управления вы можете создать облачный сервер с готовым приложением Zabbix. Для каждого образа с приложением выполнена подготовка рабочего окружения, настройка необходимых параметров и сборка. Важно отметить, что в этом случае вы оплачиваете только ресурсы облачной платформы.

1. Во вкладке Облачная платформа → Серверы нажмем Создать сервер

Создание сервера в панели управления Selectel.

2. Введем имя сервера, выберем регион и пул. От сегмента пула зависит список доступных конфигураций сервера и стоимость ресурсов. 

Настройка нового сервера.

3. Откроем раздел Источник и перейдем во вкладку Приложения. Здесь доступно ПО для администрирования, разработки, проведения видеоконференций и обеспечения информационной безопасности. В списке находим Cloud Zabbix.

Страница выбора источника в панели управления.

4. В блоке Конфигурация выберем фиксированную или произвольную конфигурацию сервера, настроим загрузочный диск. Советуем при настройке исходить из количества метрик мониторинга, которые вы хотите использовать, а также от времени их хранения. Подробнее о расчете конфигурации сервера — в официальной документации Zabbix.

5. В блоке Сеть настроим приватную подсеть и подключим публичный IP-адрес. 

Настройка сети в панели управления.

6. Укажем пользовательские параметры конфигурации операционной системы. В блоке Автоматизация в поле User data вставим скрипт, который выполнится при загрузке системы. В него можно добавить дополнительные параметры.

Настройка автоматизации в панели управления Selectel.

При создании сервера с выпуском TLS-сертификата: 

    #cloud-config

write_files:
- path: "/opt/gomplate/values/user-values.yaml"
 permissions: "0644"
 content: |
   pg_password: ""
   zabbixDomain: 
   leEmail: 
   httpsMethod: redirect

При создании сервера без выпуска TLS-сертификата:

    #cloud-config

write_files:
- path: "/opt/gomplate/values/user-values.yaml"
 permissions: "0644"
 content: |
   admin_password: ""
   zabbixDomain: 

Вместо <bd_user_password> укажем пароль пользователя базы данных, который должен содержать:

  • более восьми символов,
  • не менее одной прописной буквы,
  • не менее одной строчной буквы,
  • не менее одной цифры.

<example.com> — домен для доступа к Zabbix. Для домена нужно добавить A-запись и указать в значении записи ваш публичный IP-адрес. Если домен добавлен в DNS-хостинг Selectel (actual), используйте инструкцию Добавить ресурсную запись. После создания сервера для домена автоматически выпустится TLS-сертификат от Let’s Encrypt®.

7. Проверим цену облачного сервера и нажмем Создать сервер

Создание сервера в панели управления Selectel.

Заключение

В статье мы рассмотрели различные подходы для установки Zabbix и рассмотрели дополнительные настройки. Этого достаточно для конфигурации базового мониторинга, контроля инфраструктуры и приложений. 

Для визуализации, например, статусов доступности и производительности мы рекомендуем использовать удобный инструмент Grafana. Он легко устанавливается и настраивается, о чем мы рассказали в обзоре. Кроме того, есть мобильное приложение, в котором можно просматривать «здоровье» инфраструктуры в режиме реального времени.

Читайте также:

Docker Zabbix является открытым программным обеспечением для корпоративного мониторинга с открытым исходным кодом. Наличие исходного кода позволяет усовершенствовать программу под текущие нужды бизнеса.

Zabbix агент – это популярный бесплатный софт для мониторинга. Установка и настройка Zabbix довольно просты, что делает его подходящим для работы с крупными сетевыми инфраструктурами с большим количеством хостов. Однако его можно использовать и для небольших систем. Давайте вместе рассмотрим особенности инсталляции и применения Zabbix сервера 5.0 под разные ОС, а также уточнить, как же осуществляется добавление новых хостов для мониторинга.

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

Компоненты установки:

  • файл zabbix_server;

  • БД MySQL / MariaDB / PostgreSQL;

  • веб-сервер Apache2 /Nginx с обработчиком PHP;

  • файлы интерфейса сайта (.php, .js, .css и т.д).

Загрузите репозиторий:


# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all...
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt update

Установите пакеты:


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

Подключение репозитория к последней версии Zabbix позволит установить софт на CentOS и RHEL 8.


# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

# dnf clean all

Давайте представим, что на сервере уже установлены nginx, MySQL / MariaDB, php и php-fpm. Для установки сервера Zabbix и агента воспользуйтесь менеджером пакетов dnf (yum).


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

Вместо MySQL вы можете использовать PostgreSQL для создания БД Zabbix. В этом случае необходимо использовать 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 'ZabbixP@$$w0rd';

mysql> quit;

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


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

Отредактируйте /etc/zabbix/zabbix_server.conf, укажите пароль.


DBPassword=Zabbix_User_Password

Для работы веб-сервера с использованием nginx необходимо произвести редактирование файла nginx.conf. В этом файле требуется провести изменения в следующих строках:


# listen 80;

# server_name example.com;

Удалите # и замените example.com именем хоста сервера Zabbix. Для Apache необходимо редактировать так: /etc/httpd/conf.d/zabbix.conf. Не забудьте правильно указать свой часовой пояс в PHP в /etc/zabbix/php-fpm.conf:


php_value[date.timezone] = Canada/Pacific

Zabbix настройка также может включать эти параметры 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

Для настройки Zabbix Agent требуется использовать URL сервера Zabbix. Проверьте, чтобы все требования установщика были отмечены, как ОК. Затем введите необходимую для подключения информацию, а также сведения о созданном пользователе.

Задайте серверу Zabbix имя. По умолчанию используется порт TCP 10051. Обычно, если не менять настройки, используется 2 порта 10050/10051:

  1. Используемый сервером Zabbix для связи с агентами.

  2. Для работы с активными агентами.

Не забудьте открыть эти порты на брандмауэре на сервере Zabbix при использовании CentOS. Вы можете использовать команду firewall-cmd для открытия портов в firewalld.


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

Открыть порт 10050 в агенте можно так:


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

После этого перезапустите firewalld. Выполните установку, нажав кнопку Next Step, а затем Finish. После завершения установки, вам будет предложено войти. Пароль по умолчанию – zabbix, а логин – Admin. Если возникнут дополнительные вопросы, вы можете обратиться к документации Zabbix, где подробно описан процесс установки.

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

По ссылке
https://www.zabbix.com/download_agents находится актуальная версия агента для OS Windows. По ней можно загрузить и определенную версию агента. В этом примере мы выбираем msi (amd64) без OpenSSL. Если планируется установка софта через групповую политику или SCCM, возможен вариант загрузки ZIP архива с бинарниками и файлами config.

Запустите launcher, выполните настройку подключения к серверу Zabbix. В поле “Server or proxy for active checks” напишите IP-адрес в виде IP:PORT, например 192.168.20.30:10051, поскольку используется порт по умолчанию.

Нажмите Далее пару раз, затем нажмите Установить.

Необходимо разрешить входящие соединения с IP-адресом вашего Zabbix:


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

Для Windows Zabbix инструкция по установке довольно кроткая.

Как добавить новый хост

Добавьте узел testnode2 на свой Zabbix-сервер и проведите несколько тестов. Это необходимо, чтобы убедиться, что все работает стабильно.

Важно. В Zabbix существует 2 типа проверок:

  1. Passive — происходит запрос определенных сведений у агента.

  2. Active — агент отправляет данные на сервер.

Во время настройки применяется IP-адрес сервера и определенный порт для выполнения активных проверок. Управление узлами мониторинга осуществляется через веб-интерфейс. В разделе Configuration -> Hosts нажмите кнопку Create host и введите необходимые данные. Убедитесь, что имя узла точно соответствует имени устройства или параметру Hostname. На вкладке Templates добавьте предустановленные шаблоны для Windows.

Перезапустите Zabbix на targetnode2 и посмотрите лог агента, чтобы не ждать синхронизации. Хотя, процесс занимает несколько минут, поэтому можно и подождать.

Затем посмотрите на данные, полученные сервером Zabbix, от агента через Мониторинг -> Последние данные, выбрав хост из поля Hosts. Запись started [active check #1] указывает на выполнение активных проверок. Предустановленные шаблоны имеют пометку активный.

Встроенные шаблоны, которые мы применили к хостингу, привели к появлению уведомления в панели мониторинга Zabbix о незапущенной службе BITS. Одним из этих шаблонов является проверка BITS, и, если служба не работает, то запускается триггер.

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

В данном примере используется Ubuntu Server 18.04. Установка будет происходить с помощью менеджера пакетов. Загрузите и запустите репозиторий Zabbix, а затем установите сам агент:


# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_rele... -sc)_all.deb

# sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb

# sudo apt update

# sudo apt -y install zabbix-agent

Чтобы добавить репозиторий и установить Zabbix Agent на CentOS, используйте эти команды:


# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

# dnf clean all

# dnf install zabbix-agent

Перед первым стартом агента задайте правильные настройки. Укажите IP-адрес Zabbix-сервера, чтобы выполнять активные проверки.


Server=IP

ServerActive=192.168.20.30:10051

Hostname=testagent

Затем запустите агент: # service zabbix-agent start

Команда # cat /var/log/zabbix/zabbix_agentd.log позволит убедиться, что он работает.

Если вы видите сообщение «Не удается проанализировать список активных проверок», то они не осуществляются.

Для добавления Linux-хоста в Zabbix необходимо правильно указать имя хоста Zabbix, как в ситуации с Windows. Перезапустите Zabbix. Подробную информацию о том, как пользоваться Zabbix, можно прочитать в мануале.

Успешное внедрение Zabbix — это не только технический вопрос, но и возможность повысить эффективность вашего бизнеса. Внимательно следите за обновлениями и оставайтесь на шаг впереди, обеспечивая стабильность и производительность вашей IT-инфраструктуры.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Best free ssh client windows
  • Archlinux grub не видит windows
  • Driver booster free for windows 10
  • Пакет обновлений windows server 2016
  • Сколько длится завершение установки windows