Мониторинг организаций через Zabbix сервер

Posted by

Задача: разобрать как развернуть и использовать Zabbix прокси сервер с целью минимизации обработки данных с подконтрольных систем.

Ниже пример пошаговой заметки по разворачиванию zabbix прокси на моей любимой системе Ubuntu 12.04.5 Server amd64. По заметке ниже представлен скриншот который наглядно отображает для чего нужно использовать zabbix-proxy, т. е. Это управляющий агент на удаленных системах который собирается информацию с устройств за которыми он ведет контроль, а уже после с указанным интервалом пересылает полученные данные на сам Zabbix сервер. Такой метод я использую когда мониторю организации которые мне вверили в обслуживание.

На какой стандии работает Zabbix-proxy

Итого:

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

И ниже следующие шаги по разворачиванию сервиса Zabbix-proxy на удаленной системе, в качестве оси на которой я буду проворачивать все ниже указанное как всегда выступит: Ubuntu 12.04.5 Server amd64 (CPU =1,HDD=30Gb,RAM=2GB)

srv-mon ↔ firewall ↔ srv-agent

  • srv-mon → 192.168.1.176
  • srv-agent → 192.168.1.175
  • W7X86 → 192.168.1.174

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

Первым делом на системе добавляю репозитарий ответственный за будущую установку компоненты самой последней версии:

ekzorchik@srv-agent:~$ sudo nano /etc/apt/sources.list

deb http://repo.zabbix.com/zabbix/2.2/ubuntu precise main contrib non-free

ekzorchik@srv-agent:~$ sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 79EA5ED4

ekzorchik@srv-agent:~$ sudo bash -c "gpg --export --armor D13D58E479EA5ED4 | apt-key add - "

OK

После обновляю информацию по добавленному репозитарию:

ekzorchik@srv-agent:~$ sudo apt-get update

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

ekzorchik@srv-agent:~$ apt-cache show zabbix-proxy-mysql | grep Version

Version: 1:2.2.14-1+precise

Version: 1:1.8.11-1

ekzorchik@srv-agent:~$ sudo apt-get install zabbix-proxy-mysql=1:2.2.14-1+precise -y

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

Configure database for zabbix-proxy-mysql with dbconfig-common? Yes

Password of the database’s administrative user: 712mbddr@

MySQL application password for zabbix-proxy-mysql: 712mbddr@

Password confirmation: 712mbddr@

Теперь нужно отредактировать конфигурационный файл Zabbix_proxy.conf:

ekzorchik@srv-agent:~$ sudo nano /etc/zabbix/zabbix_proxy.conf

#указываем IP-адрес серверной части Zabbix к которой и будет подключаться Zabbix-прокси

Server=192.168.1.176

#отражает уникальное имя данной станции, в обязательном порядке оно должно быть одинаковым при заведении на сервере Zabbix

Hostname=srv-agent

#с какой частотой отправлять собранные данные на сервер Zabbix выраженное в секундах

DataSenderFrequency=60

#Если Zabbix-сервер не доступен, то данные будут храниться на Zabbix-proxy 24 часа

ProxyOfflineBuffer=24

LogFile=/var/log/zabbix/zabbix_proxy.log

LogFileSize=1024

PidFile=/var/run/zabbix/zabbix_proxy.pid

DBHost=localhost

DBName=zabbix_proxy

DBUser=zabbix

DBPassword=712mbddr@

DBSocket=/var/run/mysqld/mysqld.sock

ExternalScripts=/usr/lib/zabbix/externalscripts

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

ekzorchik@srv-agent:~$ sudo service zabbix-proxy status

* zabbix_proxy is running

ekzorchik@srv-agent:~$ sudo service zabbix-proxy restart

* Stopping Zabbix proxy daemon zabbix_proxy [ OK ]

* Starting Zabbix proxy daemon zabbix_proxy

ekzorchik@srv-agent:~$ sudo service zabbix-proxy status

* zabbix_proxy is not running

Странно, почему-то служба Zabbix-proxy Не стартует, анализирую формируемые логи:

ekzorchik@srv-agent:~$ sudo tail -f /var/log/zabbix/zabbix_proxy.log

4234:20160815:134003.967 sending heartbeat message to server failed: error:»invalid response format: empty string received», info:»«

Проверяю, а почему же не стартует:

ekzorchik@srv-agent:~$ sudo zabbix_proxy

zabbix_proxy [4501]: ERROR: invalid «Hostname» configuration parameter: ‘=srv-agent’

, ага что-то не так с параметром Hostname в конфигурационном файле:

ekzorchik@srv-agent:~$ sudo nano /etc/zabbix/zabbix_proxy.conf

Hostname==srv-agent

вот оно, задвоен символ равно («=»), убираю, сохраняю и пробую запустить сервис Zabbix-proxy:

ekzorchik@srv-agent:~$ sudo service zabbix-proxy start

* Starting Zabbix proxy daemon zabbix_proxy [ OK ]

ekzorchik@srv-agent:~$ sudo service zabbix-proxy status

* zabbix_proxy is running

ekzorchik@srv-agent:~$ sudo netstat -tulpn | grep :10051

tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 4536/zabbix_proxy

tcp6 0 0 :::10051 :::* LISTEN 4536/zabbix_proxy

Вот теперь уже лучше, далее на самом сервере Zabbix завожу данный агент в Webпанель администрирования, шаги добавления прокси сервера на Zabbix-сервер представляют из себя следующее:

http://IP&DNS (Zabbix-сервера) — user&pass — Administration — DM — Create Proxy

  • Proxy name: srv-agent
  • Proxy mode: Active

и нажимаем Save

(в качестве имени zabbix-прокси указываем то имя системы которое указали в настройках конфигурационного файла zabbix_proxy.conf параметра Hostname)

Для того, чтобы удаленный узел завести на мониторинг через Zabbix-агент нужно сделать следующее, вот к примеру рабочая станция (W7X86), на нее я установил агент (2.2.7) с вот таким вот конфигурационным файлом:

LogFile=c:\zabbix_agentd.log

LogFileSize=10

Server=192.168.1.175

ListenPort=10050

Hostname=W7X86

UserParameter=windows.services,"%ProgramFiles%\zabbix\services.exe"

c:\Program Files\Zabbix>zabbix_agentd.exe --config zabbix_agentd.win.conf --install

zabbix_agentd.exe [3320]: service [Zabbix Agent] installed successfully

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

c:\Program Files\Zabbix>zabbix_agentd.exe --config zabbix_agentd.win.conf --start

zabbix_agentd.exe [2848]: service [Zabbix Agent] started successfully

После на самом сервере Zabbix проделываю шаги по добавлению хоста на мониторинг:

http://IP&DNS (Zabbix-сервера) — user&pass — Configuration — Hosts — Create host -

во вкладке Host

  • Host name: W7X86
  • New group: Zabbix proxy
  • Agent Interfaces: 192.168.1.174
  • Port: 10050
  • Monitored by proxy: выбираю srv-agent
  • Status: Monitored

после во вкладке Templates делаю привязку к шаблону: Template OS Windows, как только все проделано и применено, в настройках где указаны хосты поставленные на мониторинг будет отражено, что хост W7X86 должен отправлять данные на zabbix-proxy, а уже тот в свою очередь на Zabbix-сервер:

Хост W7X86 успешно поставлен на мониторинг через Zabbix Proxy

Буквально через некоторое время перейдя Monitoring — Latest data и указав:

  • Group: Zabbix proxy
  • Host: all

становится видно, какая информация посредством привязанного шаблона собирается через Zabbix-proxy с удаленного хоста:

А вот и получаемая информация с Zabbx-proxy на Zabbix Server

Итого, я достиг поставленной перед собой задачи, разобрал как же все же использовать такой элемент как Zabbix proxy в повседневности если на то потребуется. Мне уже не раз встречалась такое, как возможность организовать мониторить удаленных узлов через агента на который заводятся все узлы и вот в силу появившегося свободного время для самосовершенствования я и разобрал что да как. Как показали шаги выше в этом вообще нет ничего сложного, перед тем как что либо настраивать нужно удостовериться, что с Zabbix-сервера виден Zabbix-proxy, для этого нужно в фаерволе открыть правило на доступ по порту 10051 (через TCP соединение). Вот собственно и все по этой заметке, до новых встреч, с уважением автор блога — ekzorchik.