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

Posted by

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

Ниже пример пошаговой заметки по разворачиванию zabbix прокси на моей любимой системе .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.