Zabbix agent 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.

Опубликовано:

Используемые термины: Zabbix, Windows.

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

Загрузка агента с официального сайта
Установка агента
    Из пакета MSI
    Из архива
Настройка брандмауэра
Проверка подключения к агенту
Другие статьи про Zabbix

Загрузка агента

Переходим на страницу загрузки агента Zabbix и выбираем платформу операционной системы (x32 или x64) и версию агента, например:

Выбираем версию агента zabbix и платформу Windows

* помимо этого, мы можем выбрать вариант дистрибутива: с использованием шифрования или нет, а также файл установки — msi пакет или архив. В данном примере мы выбрали версию 5.

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

Скачиваем агента Zabbix по ссылке Download

Ждем окончания загрузки и переходим к установке.

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

В зависимости от загрузки типа пакета (MSI или архив) будут разные методы установки. Рассмотрим оба.

Установка из MSI-пакета

Это удобный вариант, который позволит установить агента с помощью мастера. Чтобы начать, кликаем дважды по скачанному пакету и в окне приветствия нажимаем Next:

Принимаем лицензионное соглашение, установив галочку I accept the terms in the License Agreement и нажимаем Next:

В следующем окне оставляем имя компьютера, на который устанавливается агент и вводим имя или IP-адрес сервера zabbix, после кликаем по Next:

Указываем имя компьютера и сервера Zabbix

* в данном примере имя нашего компьютера Windows PC, а сервера — zabbix-server.dmosk.local.

Выбираем компоненты, которые хотим установить — можно просто оставить все по умолчанию и нажимаем Next:

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

Подтверждаем установку, кликая по Install:

Ждем завершения процесса — агент установлен.

Установка из архива

Данный метод требует дополнительных манипуляций, но с его помощью можно автоматизировать процесс. Мы рассмотрим только установку.

Распаковываем содержимое скачанного архива в каталог, где будут находиться файлы программы, например в C:\Program Files\Zabbix Agent. В итоге, у нас получится:

Открываем WordPad от администратора и в нем открываем конфигурационный файл conf/zabbix_agentd.conf и правим опцию для сервера zabbix — находим строку:

Server=127.0.0.1

… и меняем ее на:

Server=zabbix-server.dmosk.local

* где zabbix-server.dmosk.local — имя сервера Zabbix.

Теперь открываем командную строку от администратора и выполняем команду для установки агента:

«C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe» —config «C:\Program Files\Zabbix Agent\conf\zabbix_agentd.conf» —install

* где C:\Program Files\Zabbix Agent — папка, куда мы распаковали архив.

Мы должны увидеть что-то на подобие:

zabbix_agentd.exe [468]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [468]: event source [Zabbix Agent] installed successfully

Теперь открываем службы Windows и находим «Zabbix Agent» — кликаем по ней правой кнопкой мыши и выбираем Запустить:

Запуск агента Zabbix в службах Windows

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

Настройка брандмауэра

Если в нашей системе работает брандмауэр Windows, необходимо разрешить порт 10050 или приложение zabbix agent.

Для этого переходим в Панель управленияСистема и безопасность — Брандмауэр Windows (или вводим команду control /name Microsoft.WindowsFirewall). Кликаем по ссылке Разрешение взаимодействия с приложением или компонентов в брандмауэре Windows — добавляем наше приложение zabbix_agentd в исключение.

Это же действие можно выполнить в powershell — запускаем ее от администратора и вводим команду:

New-NetFirewallRule -DisplayName «Разрешить приложение Zabbix Agent» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Program «C:\Program Files\Zabbix Agent\bin\zabbix_agentd.exe»

Или мы можем добавить в исключение порт. Это можно сделать также из командной строки poweshell:

New-NetFirewallRule -DisplayName «Разрешить порт 10050 для Zabbix» -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 10050

Проверка работы

Чтобы убедиться в работоспособности агента, мы можем зайти на сервер zabbix и выполнить подключение по telnet, например, командой:

telnet 192.168.1.15 10050

* где 192.168.1.15 — IP-адрес компьютера с установленным Zabbix.

Мы должны увидеть 

Connected to nr-fs-06.
Escape character is ‘^]’.

.. и через небольшой интервал времени:

Connection closed by foreign host.

Но если агент не запущен или не работает, мы увидим ошибку:

telnet: connect to address …: Connection refused

В панели сервера в узлах сети при корректной установке и настройке, мы также должны увидеть доступность компьютера по агенту:

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

Другие инструкции по Zabbix:

1. Установка и настройка Zabbix-агента на CentOS

2. Установка и начальная настройка сервера мониторинга Zabbix на Ubuntu Server

3. Настройка сервера Zabbix 5 на CentOS 8


Содержание

  • Введение
  • 1. Установка Zabbix Agent из MSI-пакета
  • 2. Проверка установки Zabbix Agent
  • 3. Добавление Windows-хоста в сеть мониторинга
  • Использованные ресурсы

Введение

Программное обеспечение Zabbix Agent позволяет осуществлять мониторинг устройств, на которые оно установлено. Для сбора и отображения данных мониторинга используется ПО Zabbix Server. См. статью «Zabbix Server, Zabbix Agent, Zabbix Frontend и MySQL. Инструкции по установке».

В настоящей статье представлены инструкции по установке и настройке Zabbix Agent в операционной системе MS Windows.

1. Установка Zabbix Agent из MSI-пакета

1.1. Скачайте MSI-пакет Zabbix Agent по ссылке https://www.zabbix.com/download_agents

Скачивание MSI-пакета Zabbix Agent

Скачивание MSI-пакета Zabbix Agent

1.2. Запустите установку MSI-пакета.

1.3. В процессе установки выберите папку для установки Zabbix Agent.

1.4. Настройте конфигурацию службы Zabbix Agent:

  • Host name — имя хоста;
  • Zabbix server IP/DNS — IP-адрес Zabbix Server (в запросах с неизвестных адресов будет отказано);
  • Agent listen port — номер сетевого порта Zabbix Agent (10050 по-умолчанию);
  • Server or Proxy for active checks — IP-адрес сервера для активных проверок агента Zabbix;
  • Enable PSK — установите этот флажок, чтобы впоследствии настроить зашифрованный канал связи между Zabbix Agent и Zabbix Server;
  • Add agent location to the PATH — установите этот флажок, чтобы добавить путь к агенту в переменную среды PATH.

Настройка конфигурации службы Zabbix Agent

Настройка конфигурации службы Zabbix Agent

2. Проверка установки Zabbix Agent

2.1. Откройте Брандмауэр Защитника Windows в режиме администратора.
2.2. Перейдите на вкладку «Правила для входящих подключений».
2.3. Удостоверьтесь, что установщик Zabbix Agent создал правило, разрешающее входящие запросы по сетевому порту 10050.
2.4. Если правила нет, создайте его и перезагрузите компьютер.

Проверка наличия правила для входящих подключений Zabbix Agent

Проверка наличия правила для входящих подключений Zabbix Agent

2.5. Откройте приложение «Службы».
2.6. Удостоверьтесь, что служба Zabbix Agent находится в состоянии «Выполняется».
2.7. Если состояние службы Zabbix Agent отличается от «Выполняется», установите состояние «Выполняется» и перезагрузите компьютер.

Проверка состояния Zabbix Agent в диспетчере служб

3. Добавление Windows-хоста в сеть мониторинга

3.1. Откройте Zabbix Frontend (см. статью «Zabbix Server, Zabbix Agent, Zabbix Frontend и MySQL. Инструкции по установке».). Для э того в адресной строке браузера наберите: http://zabbix-server-ip-address:8080
3.2. Откройте раздел «Monitoring» > «Hosts» и нажмите кнопку «Create host».

Создание хоста

Создание хоста

3.3. Задайте имя хоста в поле «Host name».
3.4. Выберите шаблон «Template OS Linux by Zabbix agent».
3.5. Создайте группу мониторинга для хоста или добавьте его в существующую группу.
3.6. Под полем «Interfaces» нажмите кнопку «Add» и в раскрывающемся меню выберите пункт «Agent».

Настройка свойств хоста Zabbix Agent

Настройка свойств хоста Zabbix Agent

3.7. В поле «Agent» задайте IP-адрес или доменное имя компьютера, на котором установлен Zabbix Agent.

3.8. Если при установке Zabbix Agent был указан сетевой порт, отличный от 10050, укажите используемый порт

3.9. Нажмите кнопку «Add».

Настройка IP-адреса хоста Zabbix Agent

Настройка IP-адреса хоста Zabbix Agent

3.10. Перейдите в раздел «Monitoring» > «Hosts».

3.11. В списке хостов должна появиться новая запись.

3.12. Подождите приблизительно 2 минуты, пока индикатор статуса доступности ZBX не станет зелёным.

Статус хоста Zabbix Agent

Статус хоста Zabbix Agent

3.13. Если индикатор красный, удостоверьтесь, что:

  • сетевой экран на машине, где развернут Zabbix Server, разрешает обмен данными через порт 10051;
  • сетевой экран и (или) Брандмауэр Защитника Windows на машине, где развернут Zabbix Agent, разрешает обмен данными через порт 10050;
  • значения Server и ServerActive в файле конфигурации Zabbix Agent /etc/zabbix/zabbix_agentd.conf соответствуют IP-адресу Zabbix Server:
Server=192.168.0.1 # ip-адрес приведён как пример
ServerActive=192.168.0.1 # ip-адрес приведён как пример

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

Использованные ресурсы

Официальная инструкция по установке Zabbix Agent в Windows из MSI-пакета (на английском языке)

#Zabbix

#мониторинг

#DevOps

#установка

#*.nix

#Linux

#PostgreSQL

Что такое мониторинг

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

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

Обычно от мониторинга ждут следующего:

  • Оповещение о критических событиях в системе на основе собираемых данных
  • Отражение текущего актуального состояния компонентов системы
  • Удобная визуализация данных, в т.ч. и за большие периоды
  • Построение отчетов

При этом на самом старте его разворачивания и настройки чаще всего нет четкого понимания какие инструменты использовать, какие метрики собирать, когда нужно рассылать оповещения и так далее. Вместо того, чтобы надолго уходить в изучение этой темы и месяц выбирать всем отделом систему мониторинга и набор метрик — проще всего воспользоваться готовыми рецептами, которые уже после начала использования адаптировать под себя. Главное, чтобы мониторинг был востребованным, а данные им собираемые могли использоваться на практике.

Таким первым шагом может быть установка системы мониторинга Zabbix. Это не единственное решение, но весьма себя зарекомендовавшее. Другими решениями можно назвать:

  • Graphite
  • Prometheus
  • Graphana — интерфейс для визуализации
  • StatsD
  • И многие другие.

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

Совсем немного о Zabbix

Он может все! Мониторинг сетей, серверов, облачных ресурсов, сервисов и бизнес показателей. Это мощнейшая система мониторинга распределенной архитектуры, да к тому же и OpenSource. Все самое актуальное и необходимое всегда можно узнать в официальной документации. А пока кратко пробежимся по возможностям.

Сбор данных Zabbix может выполнять на основе:

  • Логов
  • Интерфейсов
  • API
  • SNMP
  • ping
  • Запросов к ресурсам
  • Открытых портов
  • Анализу запущеных процессов
  • Счетчиков производительности ОС
  • Информации о СУБД (резервные копии, показатели производительности и др.)

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

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

Подготовка к установке

На момент создания публикации выпущена версия Zabbix 5.0, в которой есть различные новые фишки, одна из которых это TimescaleDB, через которую выполнена реализация партиционирования данных при организации хранилища логов на базе PostgreSQL. Но мы не будем ее использовать. Мы пойдем по пути использования предыдущих стабильных версий:

  • Zabbix 4
  • CentOS 7
  • PostgreSQL 11
  • Apache

Будем считать, что CentOS уже установлена, а также сконфигурирован firewall, сетевые настройки, SELinux и прочее. Мы лишь остановимся на настройках, непосредственно связанных с Zabbix. Единственное, рекомендую обязательно обновить пакеты, компоненты системы до свежих версий командой:

Итак, поехали!

Подготавливаем базу данных

Прежде чем устанавливать сам Zabbix, установим и настроим PostgreSQL 11, который будет хранилищем данных системы мониторинга. Конечно, можно было бы представить просто список команд в терминале и остановиться на этом, но это было бы некорректно.

Вместо этого рекомендую сначала перейти на официальную страницу загрузки / установки PostgreSQL, а уже на ней выбрать операционную систему, версию СУБД, платформу и архитектуру. После этого будет выдана актуальная инструкция по установке СУБД для выбранных параметров. Это может пригодиться, если Вам нужна другая версия СУБД или при использовании другой операционной системы.

Мы же продолжим пример для CentOS 7 и PostgreSQL 11. Устанавливать СУБД будем на тот же сервер, где будет находиться и сам Zabbix. В рабочем окружении это не всегда правильно и для масштабирования хранилища может потребоваться вынести PostgreSQL на отдельный сервер (или даже нескольких серверов). Но в нашем простом примере все будет на одной машине.

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

sudo yum install -y postgresql11-server

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

sudo systemctl enable postgresql-11

sudo systemctl start postgresql-11

Проверим успешно ли прошла установка. Запустим утилиту psql и выполним запрос на получение версии СУБД.

sudo -u postgres -i psql

postgres=

SELECT VERSION();

Ошибок нет — значит все прошло отлично. Можно также провести тюнинг настроек PostgreSQL, но это уже другая история. Можете использовать сервис PGTune, чтобы подобрать настройки под себя. Подробнее об этом останавливаться сейчас не будем. На этапе установки Zabbix мы еще вернемся к некоторым настройкам СУБД, но это будет позже.

Установка и конфигурирование Zabbix

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

Теперь начнем установку Zabbix.

Установка пакетов

Первым делом устанавливаем репозитории, пакеты Zabbix-сервера, веб-интерфейс и агент сбора данных.

sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

sudo yum clean all

Теперь все готово для установки пакетов сервера, веб-интерфейса и агента.

sudo yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-agent

Грандиозный успех!

Настраиваем базу данных

Ранее мы установили СУБД, теперь время создать пользователя баз данных для системы мониторинга.

sudo -u postgres createuser --pwprompt zabbix

sudo -u postgres createdb -O zabbix zabbix

Когда база создана, необходимо импортировать схему данных базы.

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

Теперь в файле ‘/etc/zabbix/zabbix_server.conf’ изменим параметр пароля базы данных zabbix:

sudo mcedit /etc/zabbix/zabbix_server.conf

Немного настроек для фронта

Осталась еще одна настройка — это настроить часовой пояс для PHP в файле ‘/etc/httpd/conf.d/zabbix.conf’:

sudo mcedit /etc/httpd/conf.d/zabbix.conf

Готово!

Стартуем процессы

Теперь все готово для запуска процессов Zabbix.

sudo systemctl restart zabbix-server zabbix-agent httpd

sudo systemctl enable zabbix-server zabbix-agent http

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

Ох уж эта безопасность

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

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp

sudo firewall-cmd --reload

Но и это еще не все. Нужно настроить возможность подключаться к базе zabbix по логину и паролю, и только локально. Для этого нужно в файле конфигурации ‘/var/lib/pgsql/11/data/pg_hba.conf’ применить вот такие изменения:

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only

local all all peer

# IPv4 local connections:

# Разрешаем подключение к базе zabbix пользователю zabbix

# по логину и паролю и только локально (для IPv4)

host zabbix zabbix 127.0.0.1/32 password

host all all 127.0.0.1/32 ident

# IPv6 local connections:

# Разрешаем подключение к базе zabbix пользователю zabbix

# по логину и паролю и только локально (для IPv6)

host zabbix zabbix ::1/128 password

host all all ::1/128 ident

# Allow replication connections from localhost, by a user with the

# replication privilege.

local replication all peer

host replication all 127.0.0.1/32 ident

host replication all ::1/128 ident

Проверяем подключение к базе zabbix с помощью psql:

psql -h 127.0.0.1 -W -U zabbix

Если после ввода пароля запустилась сессия работы с PostgreSQL, то все в порядке. В противном случае проверьте настройки файла pg_hba.conf и корректность пароля.

Теперь, если зайти по URL “http://<АдресСервера>/zabbix», то мы попадем на страницу начальной настройки Zabbix.

Мастер настройки Zabbix

Мы находимся на начальной странице настройки Zabbix.

Жмем “Next step” и попадаем на страницу с проверкой всех требований к работе системы мониторинга. Везде должно быть ОК. Если нет, то смотрите документацию по ситуации. Обычно необходимо установить совместимую версию PHP с текущей версией Zabbix.

Идем далее и попадаем на страницу настройки подключения к базе данных. Даже если сейчас введем пароль для пользователя zabbix, то ничего не выйдет. Мы получим ошибку “Error connecting to database.” и не будет понятно почему так произошло.

Но мы ведь настроили firewall и возможность подключаться к zabbix по логину и паролю выше. И все работало! В чем же дело? Ответ не лежит на поверхности и кроется под страшным названием SElinux — это система принудительного контроля доступа. Если посмотреть связанные с ней логи в файле ‘/var/log/audit/audit.log’ сразу после возникновения ошибки подключения на фронте Zabbix:

sudo tail -n 25 /var/log/audit/audit.log

то можем увидеть такое сообщение:

type=AVC msg=audit(1599285909.278:1682): avc: denied { name_connect }

for pid=9610 comm="httpd" dest=5432 scontext=system_u:system_r:httpd_t:s0

tcontext=system_u:object_r:postgresql_port_t:s0 tclass=tcp_socket permissive=0

Именно SELinux блокирует подключение Apache (https) к PostgreSQL. Интуитивно это понять никак не получится, нужно просто знать :) (а возможно и гуглить). Исправить это можно добавив правило, разрешающее такое подключение:

setsebool -P httpd_can_network_connect_db 1

getsebool httpd_can_network_connect_db

Теперь подключение успешно пройдет и ошибки подключения к базе данных не будет. Переходим к настройке сервера:

Здесь нам нужно ввести имя сервера (или IP-адрес), а также имя установки (не обязательно). В нашем простом случае оставлю это без изменений, т.к. ни на что в данном примере не влияет. Перейдя на следующий шаг мы увидим итоговые параметры.

Проверяем их и идем на финальный шаг.

Ура! Все эти настройки можно будет изменить в конфигурационном файле ‘/etc/zabbix/web/zabbix.conf.php’ по необходимости.

Первый поход на фронт

Снова идем по адресу ‘http://<АдресСервера>/zabbix’ и попадаем на форму аутентификации.

Для входа используем учетную запись по умолчанию: Admin с паролем zabbix. Не зубудьте потом поменять эти настройки. Далее мы попадаем на главную страницу веб-интерфейса, откуда можем перейти куда угодно.

А также уже есть собранные данные для анализа. Это информация о самом сервере Zabbix.

Все готово для использования.

И снова проблема

Мы рано радовались. Снова появилась проблема — сервер Zabbix не запускается, хотя на этапе настройки веб-интерфейса все могло быть хорошо. В логах ‘/var/log/zabbix/zabbix_server.log’ можно увидеть такую информацию:

29435:20200905:094034.449 cannot start preprocessing service: Cannot bind socket to "/var/run/zabbix/zabbix_server_preprocessing.sock": [98] Address already in use.

29400:20200905:094034.450 One child process died (PID:29435,exitcode/signal:1). Exiting ...

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

sudo setsebool -P httpd_can_connect_zabbix on

sudo service httpd restart

Но пока и этого недостаточно. Нужно настроить политики SELinux, чтобы разблокировать заблокированные операции Zabbix’а. Для быстрой настройки установим пакет ‘policycoreutils-python’:

sudo yum install policycoreutils-python

Теперь мы можем создать правила SELinux на основании событий в логах:

grep AVC /var/log/audit/audit.log* | audit2allow -M systemd-allow; semodule -i systemd-allow.pp

Перезапускаем Zabbix и теперь все готово:

sudo systemctl restart zabbix-server

sudo systemctl status zabbix-server

Конечно, можно было бы просто взять и отключить SELinux и это бы решило проблемы. Но отключать систему безопасности для работы одного приложения считаю неправильным. Хотя бывают ситуации, когда использование SELinux не имеет смысла, но это не наш случай. В любом случае ошибок нет, можно идти дальше.

И снова проблема

Настраиваем агента Linux

Теперь рассмотрим процесс подключения новой машины к мониторингу. Установим агента Zabbix на сервер под управлением CentOS 7.

На самом деле мы это уже в какой-то мере уже сделали, т.к. на сервер Zabbix мы уже устанавливали пакет “zabbix-agent”. А в веб-интерфейсе мы уже видели собираемые данные о сервере.

Установку и конфигурирование начнем с самого главного — перейдем на страницу с выбором необходимой версии агента:

  • Linux
  • Версия 3.0
  • Платформа AMD64
  • Для версии Zabbix 4.0

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

Как и с установкой сервера, сначала рекомендую обновить компоненты системы, пакеты:

Далее как и с сервером нужно добавить репозиторий.

sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Установим и сам пакет агента Zabbix, а после запустим его.

sudo yum install zabbix-agent

sudo systemctl start zabbix-agent

sudo systemctl status zabbix-agent

Запустили мы, конечно, рано, нужно еще сконфигурировать работу агента. Идем в файл ‘/etc/zabbix/zabbix_agentd.conf’ и изменяем три параметра:

  • Hostname=<Имя хоста=»» для=»» Zabbix=»»>
  • Server=<Имя или=»» адрес=»» Zabbix-сервера=»»>
  • ServerActive=<Имя или=»» адрес=»» Zabbix-сервера=»»>

После этого перезапускаем агента:

sudo systemctl restart zabbix-agent

sudo systemctl status zabbix-agent

И проверяем логи работы агента. Возьмем последине 30 строк для анализа:

sudo tail -n 30 /var/log/zabbix/zabbix_agentd.log

Мы получим все что происходило при запуске агента. В нашем примере вывод был таким:

42693:20200905:172314.572 Starting Zabbix Agent [Zabbix server]. Zabbix 4.0.24 (revision 95be642769).

42693:20200905:172314.572 **** Enabled features ****

42693:20200905:172314.572 IPv6 support: YES

42693:20200905:172314.572 TLS support: YES

42693:20200905:172314.572 **************************

42693:20200905:172314.572 using configuration file: /etc/zabbix/zabbix_agentd.conf

42693:20200905:172314.572 agent #0 started [main process]

42695:20200905:172314.573 agent #2 started [listener #1]

42694:20200905:172314.574 agent #1 started [collector]

42696:20200905:172314.574 agent #3 started [listener #2]

42697:20200905:172314.575 agent #4 started [listener #3]

42698:20200905:172314.576 agent #5 started [active checks #1]

42698:20200905:172314.578 active check configuration update from [192.168.11.144:10051] started to fail (cannot connect to [[192.168.11.144]:10051]: [113] No route to host)

Мы сразу видим, что при запуске активных проверок появилась ошибка подключения (для моего окружения 192.168.11.144 — это адрес сервера Zabbix). Эта тема выходит за рамки этого материала, но Вы можете прочитать о пассивных и активных проверках самостоятельно.

Ошибка снова связана с настройками безопасности. Нужно открыть порт 10051 сервера Zabbix.

sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent

sudo firewall-cmd --reload

iptables-save | grep 10051

Перезапускаем агента и проверяем лог.

sudo systemctl restart zabbix-agent

sudo systemctl status zabbix-agent

sudo tail -n 30 /var/log/zabbix/zabbix_agentd.log

В этот раз все отлично.

52725:20200905:175604.827 Starting Zabbix Agent [EDU-SRV-ZBX-02-VM]. Zabbix 4.0.24 (revision 95be642769).

52725:20200905:175604.828 **** Enabled features ****

52725:20200905:175604.828 IPv6 support: YES

52725:20200905:175604.828 TLS support: YES

52725:20200905:175604.828 **************************

52725:20200905:175604.828 using configuration file: /etc/zabbix/zabbix_agentd.conf

52725:20200905:175604.828 agent #0 started [main process]

52727:20200905:175604.829 agent #2 started [listener #1]

52726:20200905:175604.829 agent #1 started [collector]

52728:20200905:175604.829 agent #3 started [listener #2]

52729:20200905:175604.830 agent #4 started [listener #3]

52730:20200905:175604.830 agent #5 started [active checks #1]

Дальше идем в веб-интерфейс и вручную добавим хост в список наблюдаемых. На продакшене обычно работает автообнаружение или добавление хостов скриптами, но у нас все по простому. Перейдем в “Configuration ➡️ Hosts ➡️ Create host”. На открытой форме заполняем:

  • Host name — имя хоста. Должно совпадать с одноименным параметром на стороне агента (мы заполняли этот параметр выше)
  • Groups — группы, к которым этот хост относится. Сейчас просто добавил его в “Linux servers”.
  • IP address (или DNS имя) — название говорит само за себя. Это адрес или имя машины, на которой установлен агент, которую нужно мониторить.

Также на вкладке “Templates” (Шаблоны) выбираем шаблоны показателей, которые будем собирать. Сейчас просто выбрал шаблон стандартных метрик для Linux OS.

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

Ситуация, думаю, понятная. На клиентской машине нужно открыть порт 10050 для взаимодействия с сервером мониторинга. Делается это аналогичными командами как и для порта 10051 сервера выше.

sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent

sudo firewall-cmd --reload

sudo iptables-save | grep 10050

Ждем немного времени и видим, что с соединением теперь все отлично.

Данные от агента поступают и все работает как надо. Дело сделано, мониторинг этой машины работает. Далее рассмотрим кратко установку агента на хост с операционной системой Windows.

Настраиваем агента Windows

Установка агента для Windows принципиально не отличается от той же установки для *.nix, которую мы рассмотрели выше:

  • Тот же файл конфигурации агента
  • Необходимо открывать те же порты на сервере и на машине с агентом
  • Так же все описано в документации

Единственным отличием может быть синтаксис команд по настройке службы и правил брэндмауэра на стороне Windows. Их мы и опишем.

Сначала идем на страницу установки и выбора параметров. В нашем случае мы будем ставить агента на Windows Server 2012 для Zabbix 4.0. Вот эта конфигурация. Внизу страницы скачиваем предлагаемый клиент. Там же есть ссылка на документацию.

Скачиваем архив с приложением, распаковываем. Создаем каталог для приложения. Например: «C:\Program Files\ZabbixAgent». В этот каталог из скачанного архива переносим два файла:

  • zabbix_agentd.exe — приложение агента.
  • zabbix_agentd.conf — файл конфигурации агента.

В файле конфигурации делаем те же настройки, что и в примере для Linux. А дальше устанавливаем агент как службу и запускаем следующими командами, и не забываем открыть порт 10050 на стороне агента:

netsh advfirewall firewall add rule name="Open Zabbix agentd port 10050 inbound" dir=in action=allow protocol=TCP localport=10050

netsh advfirewall firewall add rule name="Open Zabbix agentd port 10050 outbound" dir=out action=allow protocol=TCP localport=10050

```powershell

zabbix_agentd.exe --config zabbix_agentd.conf --install

zabbix_agentd.exe --start

Get-Service *zabbix*

Далее на всякий случай проверяем логи:

2324:20200905:185501.371 Starting Zabbix Agent [EDU-SRV-ZBX-03-VM]. Zabbix 4.0.24 (revision 95be642769).

2324:20200905:185501.371 **** Enabled features ****

2324:20200905:185501.371 IPv6 support: YES

2324:20200905:185501.372 TLS support: NO

2324:20200905:185501.372 **************************

2324:20200905:185501.372 using configuration file: C:Program FilesZabbixAgentzabbix_agentd.conf

2324:20200905:185501.386 agent #0 started [main process]

2436:20200905:185501.387 agent #1 started [collector]

2384:20200905:185501.387 agent #2 started [listener #1]

1684:20200905:185501.387 agent #4 started [listener #3]

2352:20200905:185501.387 agent #3 started [listener #2]

1644:20200905:185501.387 agent #5 started [active checks #1]

И все готово. Если перейдем в веб-интерфейс Zabbix и добавим вручную хост (как и в примере выше, но с шаблоном для Windows), то через некоторое время увидим успешный сбор данных.

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

Грандиозный успех!

Продолжение следует

В самом начале мы затронули вопрос что же такое мониторинг и какие инструменты для его реализации вообще есть. А дальше уже прошли процесс настройки сервера Zabbix с некоторыми нюансами и примерами решения частых проблем. Настроили брэндмауэр и SELinux, а после настроили и подключили агентов сбора данных на Linux и Windows хостах.

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

Надеюсь, что у Вас в компании он настроен и используется. Ведь иначе следить за состоянием работы инфраструктуры, информационных ситсем и других составных частей ИТ-ландшафта просто нереально. Обманывать себя проще, чем собирать объективные метрики.

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

Удачи в делах и вдохновения!

Zabbix monitoring system consists of components that communicate with each other. Here is a summary of the TCP ports and some configuration characteristics of various connections.

Active agent: The Zabbix agent periodically asks the Zabbix proxy (or Zabbix server, if configured to use the server directly) for the list of items that should be collected, and then the agent will keep collecting the item values using the configured intervals and sending the values to the proxy. The proxy does not need to poll all the clients for the values, so this is more efficient way of working.

Passive agent: The Zabbix agent passively waits for connections. When the Zabbix proxy requires the item values from a client, it connects to the client and gets the item values. This requires the proxy to schedule and initiate the connections to all agents, so it requires more work from the proxy.

Depending on the agent and item configurations, the same agent can be in active mode for some items and in passive mode for other items, if both ways are configured properly. Usually it is simpliest to just use one mode in items, preferably active (especially in large deployments).

Note that the active/passive mode used in proxy is not related to the active/passive mode of the agent. The proxy active/passive mode is only related to the communication between the Zabbix server and the Zabbix proxy: Active = proxy will connect to server, passive = server will connect to proxy. If a proxy is in passive mode, meaning that Zabbix server will poll Zabbix proxy for available data, an agent associated with that proxy can still be in active mode.

When a server or proxy is connecting to a passive agent, the default TCP destination port is 10050 (the IANA-assigned port for zabbix-agent).

For other Zabbix component connections (= connections to server or proxy) the default TCP destination port is 10051 (the IANA-assigned port for zabbix-trapper).

If you are running Zabbix server and Zabbix proxy on the same server (design used in some scenarios), you need to change the default port (10051) in either of the components (and change also other configurations accordingly) as they obviously cannot run on the same server otherwise.

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Время жизни сессии windows
  • Icarus verilog for windows
  • Удалить компоненты windows 10 powershell
  • Easy context menu для windows 11
  • Почему герои 6 не запускаются на windows 10