Сравнение систем мониторинга Zabbix vs Nagios. Установка системы мониторинга - zabbix

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

Введение

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

  • сервер мониторинга, который периодически получает и обрабатывает данные, анализирует их и производит в зависимости от ситуации определенные действия, в основном оповещение администратора;
  • база данных - в качестве таковой могут использоваться SQLite, MySQL, PostgreSQL и Oracle;
  • веб-интерфейс на PHP, который отвечает за управление мониторингом и действиями, а также за визуализацию;
  • агент Zabbix, запускается на той машине/устройстве, с которой необходимо снимать данные. Его наличие хоть и желательно, но, если установить его на устройство невозможно, можно обойтись SNMP;
  • Zabbix proxy - используется в основном в тех случаях, когда необходимо мониторить сотни и тысячи устройств для снижения нагрузки на собственно сервер мониторинга.

Логическая единица мониторинга - узел. Каждому узлу присваивается описание и адрес - в качестве адреса можно использовать как доменное имя, так и IP. Узлы могут объединяться в группы, к примеру группа роутеров, для удобства наблюдения. Каждому серверу соответствует несколько элементов данных, то есть отслеживаемых параметров. Поскольку для каждого сервера настраивать параметры, за которыми нужно следить, неудобно (особенно это верно для больших сетей), можно создавать узлы-шаблоны и каждому серверу или группе серверов будет соответствовать несколько шаблонов.

В статье будут рассмотрены интересные сценарии использования Zabbix, но сначала опишем установку этого решения на RHEL-подобные системы с MySQL в качестве БД.

Установка и первичная настройка

Перво-наперво надо подключить репозиторий EPEL:

# yum install http://ftp.yandex.ru/epel/6/i386/epel-release-6-8.noarch.rpm

Затем поставить нужные пакеты:

# yum install zabbix20-server zabbix20-agent zabbix20-web-mysql nmap httpd policycoreutils-python net-snmp net-snmp-utils # yum groupinstall "MySQL Database Client" "MySQL Database Server"

Для чего нужен httpd и утилиты SNMP, полагаю, понятно. А вот Nmap нужен для некоторых проверок, чтобы заполнить элементы данных. Теперь необходимо настроить автозапуск служб и их запустить.

# chkconfig httpd on # chkconfig mysqld on # chkconfig zabbix-server on # chkconfig zabbix-agent on # service mysqld start

И конечно же, надо произвести начальную настройку MySQL.

# mysql_secure_installation

Затем заходим в консоль MySQL и создаем БД и пользователя:

Mysql> CREATE DATABASE zabbix CHARACTER SET utf8; mysql> GRANT ALL PRIVILEGES ON zabbix.* TO "zabbix"@"localhost" IDENTIFIED BY "zabbixpassword";

Теперь импортируем базы данных:

# mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/schema.sql # mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/images.sql # mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/data.sql

Редактируем файл конфигурации сервера Zabbix (/etc/zabbix_server.conf):

# <...> DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix

Слегка подкрутим конфигурацию PHP (/etc/php.ini):

# <...> max_execution_time = 300 max_input_time = 300 post_max_size = 16M date.timezone = Asia/Omsk

Настраиваем SELinux:

# semanage port -a -t http_port_t -p tcp 10051 # setsebool -P httpd_can_network_connect on

Наконец, запускаем оставшиеся службы:

# service httpd start # service zabbix-server start # service zabbix-agent start

В браузере подключаемся к http://server_name/zabbix и производим начальную конфигурацию фронтенда Zabbix (то есть имя БД, имя пользователя и пароль). После этого начальную настройку можно считать завершенной.



Мониторинг nginx и memcache

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

# yum install lm_sensors smartmontools

Затем используй следующие команды:

# wget https://bitbucket.org/rvs/ztc/downloads/ztc-12.02.1-1.el6.noarch.rpm # rpm -ivh --nodeps ztc-12.02.1-1.el6.noarch.rpm

Опция —nodeps нужна по причине того, что пакет требует версию Zabbix 1.8, но ничто не мешает попробовать ZTC и на последних его версиях.

Теперь добавим еще один конфиг nginx (/etc/nginx/conf.d/nginx_status.conf):

Server { listen localhost; server_name nginx_status.localhost; location /server-status { stub_status on; access_log off; allow 127.0.0.1; deny all; } }

И поправим конфиг nginx в ZTC (/etc/ztc/nginx.conf):

# <...> proto=http host=localhost port=80 resource=/server-status

Проверим работу скрипта ZTC:

# /opt/ztc/bin/nginx.py ping # /opt/ztc/bin/nginx.py ping

Если все нормально, настраиваем Zabbix-agent на нужной машине (/etc/zabbix-agentd.conf):

# <...> UserParameter=nginx[*],/opt/ztc/bin/nginx.py $1

Теперь нужно настроить веб-интерфейс. Для этого необходимо импортировать шаблон Template_app_nginx.xml , что лежит в /opt/ztc/templates/ . Замечу, что лежит он именно на том компьютере, где установлен ZTC, так что если у тебя на сервере нет GUI, то файл придется копировать на машину, на которой установлен браузер и с которой собственно и ведется мониторинг.

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

А вот для memcache среди этих скриптов нет ничего, так что придется нам его написать самим. Проверим его работо- и дееспособность:

# echo -e "stats\nquit" | nc -q2 127.0.0.1 11211

В ответ должны посыпаться статистические данные. Теперь пишем скрипт-однострочник /etc/zabbix/scripts/memcache.sh (при этом не забываем сделать его исполняемым):

#!/bin/bash echo -e "stats\nquit" | nc 127.0.0.1 11211 | grep "STAT $1 " | awk "{print $3}"

Как и в случае с nginx, правим конфиг Zabbix-agent (/etc/zabbix-agentd.conf) и не забываем его рестартовать:

# <...> UserParameter=memcache[*],/etc/zabbix/scripts/memcache.sh $1

Берем шаблон отсюда и импортируем его в веб-интерфейс.


INFO

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

Мониторинг различных устройств с помощью Zabbix

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

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

  • включить поддержку SNMP на устройствах. Не забывай о безопасности - по возможности используй третью версию протокола, устанавливай авторизацию и изменяй имена community;
  • добавить нужные элементы в Zabbix. Одному параметру SNMP соответствует один элемент; также нужно указать OID (идентификатор параметра) версию SNMP и, в зависимости от нее, параметры авторизации;
  • добавить триггеры на нежелательное изменение параметров.

У каждой железки могут быть десятки отслеживаемых параметров, и вручную их добавлять замучаешься. Но в Сети можно найти множество шаблонов, которые уже содержат в себе все необходимые элементы, триггеры и графики, - остается только их импортировать и подключить нужные хосты. Также существуют стандартные OID, которые описаны в RFC. К таковым относится, например, uptime с OID .1.3.6.1.2.1.1.3.0 или - для коммутаторов - статус порта с OID .1.3.6.1.2.1.2.2.1.8.X, где X - номер порта.

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

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

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

SNMP Traps в Zabbix

Протокол SNMP, помимо пассивного получения данных устройства, поддерживает также и активную их рассылку со стороны устройства. В англоязычной документации это именуется SNMP Trap, в русскоязычной же используется термин SNMP-трап. Трапы удобны, когда нужно срочно уведомить систему мониторинга об изменении какого-либо параметра. Для отлова трапов в Zabbix имеется три способа (во всех трех случаях нужен еще и демон snmptrapd):

  • с помощью SNMPTT (SNMP Trap Translator);
  • используя скрипт на Perl;
  • используя скрипт на bash.

Далее описан первый вариант. Прежде всего, не забываем разрешить 161-й порт UDP и по необходимости временно отключить SELinux. Затем ставим нужные пакеты (предполагается, что репозиторий EPEL у тебя подключен):

# yum install net-snmp net-snmp-utils net-snmp-perl snmptt

Настраиваем snmptrapd (/etc/snmp/snmptrapd.conf):

DisableAuthorization yes traphandle default snmptthandler

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

Затем настраиваем snmptt (/etc/snmp/snmptt.ini):

# <...> net_snmp_perl_enable = 1 mibs_environment = ALL date_time_format = %H:%M:%S %Y/%m/%d

Теперь нужно настроить шаблоны для маппинга трапов на Zabbix SNMP. Ниже будет приведен пример такого шаблона для двух видов трапов - coldStart и всех остальных (/etc/snmp/snmptt.conf).

# <...> EVENT general .* "General event" Normal FORMAT ZBXTRAP $aA $1 EVENT coldStart .1.3.6.1.6.3.1.1.5.1.0.33 "Status Events" Normal FORMAT ZBXTRAP $aA Device reinitialized (coldStart)

Первые две строчки описывают любые трапы, а вторая пара - конкретный трап с OID. Замечу, что для того, чтобы Zabbix ловил эти трапы, они должны быть именно в формате «ZBXTRAP адрес».

Включаем нужные службы:

# chkconfig snmptt on # chkconfig snmptrapd on # service snmptt start # service snmptrapd start

Посылаем тестовые трапы и смотрим логи:

# snmptrap -v 1 -c public 127.0.0.1 ".1.3.6.1.6.3.1.1.5.1" "0.0.0.0" 6 1 "55" .1.3.6.1.6.3.1.1.5.1 s "teststring000" # snmptrap -v 1 -c public 127.0.0.1 ".1.3.6.1.6.3.1.1.5.1" "0.0.0.0" 6 33 "55" .1.3.6.1.6.3.1.1.5.1 s "teststring000" # tail /var/log/snmptt/snmptt.log

Если все нормально, переходим к конфигурированию Zabbix. В файле /etc/zabbix_server.conf укажем местонахождение лога и включим встроенный SNMPTrapper:

# <...> SNMPTrapperFile=/var/log/snmptt/snmptt.log StartSNMPTrapper=1

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

INFO

Масштабирование в Zabbix работает достаточно хорошо - при должной настройке он выдерживает 6000 узлов.

Мониторинг VPN-туннелей на оборудовании Cisco

Возникла необходимость мониторинга загрузки кучи туннелей VPN на цисках. Все хорошо, SNMP как на циске, так и на Zabbix настроен, но есть одна загвоздка - OID для каждого соединения формируются динамически, как и их списки. Это связано с особенностями протокола IPsec, в которые я вдаваться не буду - скажу лишь, что это связано с процедурой установления соединения. Алгоритм извлечения нужных счетчиков, таким образом, настолько замудрен, что реализовать его встроенными средствами Zabbix не представляется возможным.

По счастью, имеется скрипт , который это делает сам. Его нужно скачать и закинуть в каталог ExternalScripts (в моем случае это был /var/lib/zabbixsrv/externalscripts). Проверим его работоспособность:

# /var/lib/zabbixsrv/externalscripts/query_asa_lan2lan.pl ciscocom 192.168.10.1 ASA get RX 94.251.99.1

Если проверка прошла успешно, применим комбинацию LLD с этим скриптом. Создаем шаблон с правилом обнаружения (OID 1.3.6.1.4.1.9.9.171.1.2.3.1.7) и двумя элементами данных с внешней проверкой и ключами ‘queryasa lan2lan.pl[«{$SNMPCOMMUNITY}», «{HOST.IP}», «ASA», «get, «RX», «{#SNMPVALUE}»]’ и ‘queryasa lan2lan.pl[«{$SNMP COMMUNITY}», «{HOST.IP}», «ASA», «get», «TX», «{#SNMPVALUE}»]’, назвав их соответственно «Incoming traffic in tunnel to {#SNMPVALUE}» и «Outgoing traffic in tunnel to {#SNMPVALUE}». После этого применяем шаблон к нужным узлам и ждем автообнаружения.

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

Прикручиваем MIB к Zabbix

Сам по себе Zabbix не поддерживает MIB (Management Information Base), а готовые шаблоны есть отнюдь не для всех устройств. Конечно, все OID можно добавить и вручную (с помощью snmpwalk), но это работает, только если их у тебя не очень много. Однако существует плагин для веб-интерфейса Zabbix под названием SNMP Builder, который позволяет конвертировать MIB-файлы в шаблоны и уже эти шаблоны допиливать под свои нужды. Берем его из Git-репозитория:

# git clone https://github.com/atimonin/snmpbuilder.git

Накладываем патч (в твоем случае, разумеется, имена каталогов могут быть другими, и подразумевается, что ты находишься в каталоге, где размещен фронтенд Zabbix - в случае с RHEL-based системами это /usr/share/zabbix):

# patch -p1 < /home/centos/snmpbuilder/snmpbuilder-2.0.5.patch

Копируем недостающие файлы и распаковываем картинки:

# tar xzvf /home/centos/snmpbuilder/snmpbuilder-2.0_imgs.tar.gz # cp -r /home/centos/snmpbuilder/zabbix/* .

По необходимости редактируем переменную MIBSALL PATH в файле snmp_builder.php . В отдельных случаях может также понадобиться слегка подправить его код, начиная со строки foreach(glob($path.»/*.mib»). Код в этом случае будет выглядеть примерно так:

# <...> foreach(glob($path."/*.mib") as $filename){ if (preg_match("/^".preg_quote($path,"/")."\/(.+)\.mib$/",$filename,$matches)){ $result=exec("cat ".$filename."| grep -i "DEFINITIONS.*::=.*BEGIN"|awk "{print $1}""); $cmbMibs->addItem($result,$result); } }

Теперь можно уже использовать.

Прежде всего нужно найти MIB-файлы для твоего железа. Некоторые производители их скрывают, некоторые - нет. После того как ты их нашел, эти файлы нужно поместить в папку, которую ты указал в вышеуказанной переменной. В отдельных случаях могут возникнуть зависимости - в подобной ситуации нужно найти соответствующий MIB-файл, чтобы их разрешить. Итак, выбери шаблон, MIB-файл и укажи адрес устройства. Если все нормально, ты увидишь список OID, которые нужно затем выбрать для добавления к шаблону. После выбора нужно нажать кнопку «Сохранить». Добавленные элементы появятся в указанном шаблоне.

В отдельных ситуациях нужно отредактировать новодобавленные элементы, поскольку по дефолту интервал обновления 60 секунд, что в случае, например, с именем хоста не имеет особого смысла - лучше в подобных ситуациях ставить его равным 86 400 секунд (24 часа). Для счетчиков же нужно изменить формат хранения на «Дельта в секунду». Кроме того, с некоторыми элементами нужно настроить еще и преобразование их значений в удобочитаемый вид. Для этого перейди в «Администрирование -> Общие» и в выпадающем меню выбери «Преобразование значений», а там уже добавляй его.

В общем-то, модуль мы настроили - все остальное ты уже настраивай самостоятельно.

Версии протокола SNMP

Существует несколько версий SNMP. Первая версия появилась в 1988 году и на данный момент, хоть и считается устаревшей, все еще очень популярна. Версия 2 (фактически сейчас под ней подразумевают версию 2c) появилась в апреле 1993 года. Она была несовместима с первой версией. Основные новшества второй версии протокола заключались в обмене информацией между управляющими компьютерами. Кроме того, появилась команда получения сразу нескольких переменных (GetBulk).

Во времена разработки первой версии мало кто заботился о безопасности, поэтому о какой-либо защите в SNMPv1 и говорить нечего. Аутентификации как таковой не было - не считать же за нее строку Community, передаваемую в открытом виде? Были, конечно, попытки реализовать безопасность SNMPv1, но успехом они не увенчались. Во второй версии кардинальных изменений тоже не появилось. А вот SNMPv3 уже начала поддерживать как безопасность сообщений (USM), так и контроль доступа (VACM). В USM поддерживаются MD5 и SHA-1 для обеспечения защиты от модификации данных и DES (сейчас уже AES) для шифрования. VACM же вводит как возможность авторизации, так и возможность указывать, какой управляющий компьютер какими атрибутами может манипулировать.

Несмотря на то что настраивать SNMPv3 сложнее, крайне рекомендуется использовать именно его, а остальные версии протокола отключать.

Заключение

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

Обновлено: 12.03.2017 - 11:06

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

Что такое Zabbix

Zabbix - полнофункциональное open source решение мониторинга производительности. Zabbix предлагает средства мониторинга, оповещения и сигнализации, которые сегодня отсутствуют в других системах мониторинга и даже в некоторых коммерческих системах. Ниже приведен краткий список функций, доступных в Zabbix:
  • Автоматическое обнаружение серверов и сетевых устройств.
  • Низкоуровневое обнаружение.
  • Децинтрализованный мониторинг с централизованным веб-администрированием.
  • Централизованный мониторинг лог-файлов.
  • Серверное программное обеспечение для GNU/Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X.
  • Родные высокопроизводительные агенты (клиентское программное обеспечение для GNU/Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista).
  • Безагентный мониторинг.
  • Безопасная авторизация пользователей.
  • Веб-интерфейс.
  • Уведомления о предопределенных событиях.

Почему стоит выбрать Zabbix

Лучший способ убедиться, что это выбор № 1 для вашей организации - попробовать его. Но если у вас мало времени, почитайте некоторые аргументы:
  • Открытость исходного кода обеспечивает свободу и безопасность. Это касается не только Zabbix но и необходимых компонентов (GNU/Linux, Apache, MySQL/PostgreSQL, PHP).
  • Очень простая установка и процесс настройки гарантируют недорогое обучение и, следовательно, низкую стоимость владения.
  • Высокоэффективные средства для UNIX и Windows (x32, x64, Itanium) обеспечивают более широкие возможности мониторинга с большей скоростью.
  • Централизованная система мониторинга позволяет хранить всю информацию (конфигурацию и данные) в реляционной базе данных для дальнейшего упрощения обработки и повторного использования.
  • Встроенные широкие возможности визуализации позволяют работать с данными быстрее и эффективнее.
  • Встроенные процедуры позволяют хорошо организовать хранение данных.

Системные требования

Платформа ZABBIX-сервер ZABBIX-агент
AIX Поддерживается Поддерживается
FreeBSD Поддерживается Поддерживается
HP-UX Поддерживается Поддерживается
GNU/Linux Поддерживается Поддерживается
Mac OS X Поддерживается Поддерживается
Novell Netware - Поддерживается
Open BSD Поддерживается Поддерживается
SCO Open Server Поддерживается Поддерживается
Solaris Поддерживается Поддерживается
Tru64/OSF Поддерживается Поддерживается
Windows NT 4.0, Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8 - Поддерживается

Для мониторинга внешних сетевых приложений таких, как FTP, SSH, HTTP, DNS, LDAP и т.д., установка ZABBIX-агента не требуется.

Перевод Zabbix на русский язык

Сбор данных

SNMP и IPMI агенты

Обнаружение проблем

Визуализация

Уведомления

Шаблоны, импорт и экспорт

Автоматическое обнаружение

Распределенный мониторинг

Безопасность и аутентификация

Управление системой

Zabbix API

Сбор данных

Zabbix Agent

Родной Zabbix agent разработан на СИ, работает на разных платформах, включая GNU/Linux, UNIX и Windows. Он собирает такие данные как CPU, память, диск и сетевые устройства.

Компактность и нетребовательность к ресурсам

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

Zabbix агент под управлением Microsoft Windows:

Поддержка опроса и захвата

Zabbix агент поддерживает пассивные (опросы) и активные проверки (захваты).

В пассивной проверке, Zabbix сервер (или прокси-сервер) запрашивает значение от агента Zabbix, например, загрузка процессора, агент обрабатывает запрос и возвращает значение в Zabbix сервер (или прокси-сервер).

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

Функций агента

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

Сеть Передача пакетов/байт
Ошибки/потерянные пакеты
коллизии кадров
CPU Средняя загрузка (англ. Load average)
простой/использование процессора
Память Свободная/используемая память
использование свопа/файла подкачки
Диск Свободное и занятое пространство
Чтение и запись I/O
Серверы Состояние процесса
Память процесса
Состояние службы (ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap)
Состояние службы Windows
DNS разрешения
подключения TCP
время отклика TCP
Файл Размер файла/время
Существование файла
Контрольная сумма
MD5 хеш
Поиск регулярного выражения (англ. RegExp search)
Журнал Текстовый журнал
Журнал событий Windows (англ. Windows event log)
Другое Время работы системы
Системное время
Подключенные пользователи
Счетчик производительности (Windows)
Полный список поддерживаемых проверок доступен .

Мониторинг журнала

Поддержка мониторинга текстовых журналов и Windows Event Log является родной функцией агента Zabbix, включая поддержку ротации.
Журналы постоянно анализируются агентом Zabbix и когда определенный элемент поиска найден, Zabbix сервер получает уведомление и может даже выполнить некоторое действие или отправить пользователю или группе.

Поддержка IPv6

Zabbix агент поддерживает IPv4 и IPv6.

SNMP и IPMI агенты

Поддержка SNMP

Zabbix Server может собирать данные из устройств с SNMP agent v1, v2 or v3. SNMP есть не только у сетевых устройств, но и у принтеров, NAS, UPS. В принципе, любое оборудование, которое присутствует в сети можно контролировать через агенты SNMP.
Для упрощения конфигурации Zabbix поддерживает стандарт SNMP MIB-2, а также конкретную информацию о Enterprise MIB.
Вы можете собирать данные с помощью SNMP режима опроса или получения ловушки SNMP (англ. SNMP traps) через утилиты и .

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

Агент IPMI

Чтобы получать важные данные о аппаратуре, Zabbix сервер поддерживает IPMI агенты, которые присутствуют по умолчанию на серверной архитектуре Intel, такой как HP iLO и Dell DRAC.
Элементы, доступные через агентов IPMI бывают разными, но эти наиболее распространенные:

  • Температура процессора и корпуса.
  • Скорость вращения вентилятора.
  • Напряжение системы.
  • Состояние физических дисков.
  • Состояние светодиодов.

Безагентный мониторинг

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

Безагентные функции

Сетевые сервисы

Zabbix сервер может проверить как служба прослушивает порт и каким образом она отвечает. Этот метод в настоящее время поддерживается для следующих служб: FTP, IMAP, LDAP, NNTP, POP3, SSH и Telnet.

Проверка TCP-порта

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

ICMP ping

Хоть и просто, но важно, Zabbix может проверить, отвечает сервер на ICMP Ping пакеты или нет. Таким образом, можно контролировать доступность сервера, время реакции и потери пакетов.
Проверки можно настроить установив размер и количество пакетов, тайм-аут и задержку между каждым пакетом.

SSH и Telnet

Если настроить Zabbix-агент не предоставляется возможным, но есть доступ через SSH или Telnet, Zabix может запустить любую пользовательскую команду и использовать ее вывод в качестве собранного значения. Это значение можно использовать, например, для генерации графиков и сигнализации.

Пользовательский мониторинг

Добавление пользовательских скриптов

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

Проверка TCP-порта

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

Внешняя проверка

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

Мониторинг виртуальных машин

Мониторинг VMware среды

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

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

Стандартный набор данных Zabbix предлагает несколько готовых к использованию шаблонов для мониторинга VMware VCENTER и VSPHERE. Эти шаблоны содержат предварительно настроенные правила LLD, а также ряд встроенных проверок для мониторинга виртуальных объектов.

Веб-сценарии

Встраивание в сайт

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

Для каждого шага сценария хранятся следующие величины:

  • Время ответа.
  • Код ответа.
  • Скорость загрузки.
  • Вхождение результата в строку (англ. Occurrence of a string in result).

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

Во время выполнения шагов, cookies обеспечивают эффективный мониторинг.

Дополнительные возможности

  • Пользовательские переменные.
  • Редиректы.
  • GET и POST методы.
  • HTTP и HTTPS протоколы.
  • Базовая авторизация.
  • NTLM авторизация.

Java Applications

Мониторинг приложений Java

Zabbix 2.0 вводит новый компонент под названием Zabbix Java gateway (написанный на Java), который может контролировать Java-приложения технологией .
Таким образом, сервер Zabbix запрашивает у Zabbix Java gateway специальный JMX-счетчик, который удаленно, через JMX API может предоставить информацию о приложении Java, без необходимости использования дополнительного программного обеспечения.
Популярные приложения, такие как ActiveMQ, GlassFish, JBoss, Tomcat и WebSphere легко контролируется через JMX.

JMX технология

Технология JMX присутствует в платформе Java SE начиная с версии J2SE 5.0 и предоставляет способы мониторинга любого приложения или устройства с JVM.
Для получения дополнительной информации об этой технологии смотрите документацию:

Мониторинг баз данных

Мониторинг любых запросов

С помощью специальной технологии ODBC и драйверов, Zabbix сервер может собирать любые данные в базах данных СУБД, таких как MySQL, PostgreSQL, Oracle и Microsoft SQL Server.
После выполнения запроса, его результат сохраняется что позволяет создавать графики, сигнализации и уведомления в случае сбоев в работе или недоступности.
Эта возможность делает контроль более эффективным, поскольку она собирает информацию непосредственно из базы данных, во избежание ложных срабатываний.

Расчет и накопление информации

Вычисляемые элементы

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

Накопление информации

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

Производительность Zabbix Server

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

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

Обнаружение проблем

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

Исключительная гибкость определения порога

Zabbix предоставляет своим пользователям очень гибкие и интеллектуальные варианты определения порога. Когда порог для триггера "больше X", можно использовать все логические выражения, такие как деление, умножение, не равно, логические И и ИЛИ.

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

Сдвиг во времени

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

Гистерезис

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

Зависимости

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

Различные уровни серьёзности

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

Визуализация

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

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

Графический

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

Нет необходимости в скрытых текстовых файлах.

Все настройки мониторинга можно менять в веб-интерфейсе. Не нужно знать как пользоваться консолью и текстовыми редакторами UNIX.

Контролируйте все в одном месте

Веб-интерфейс предлагает как настройку мониторинга так и просмотр собранных данных. Администратор сети может видеть и контролировать все в одном интерфейсе.

Веб-интерфейс Zabbix обеспечивает централизованную настройку всех аспектов мониторинга. Изменения конфигурации сразу становятся активными.

Zabbix полностью поддерживает Unicode/UTF-8 для настоящей локализации и многоязычности.

Аудит

Все пользовательские операции записываются.

Кросс-браузерная поддержка

Поддерживаются последние версии Google Chrome, Mozilla Firefox, Microsoft Internet Explorer и Опера. Другие браузеры (Konqueror, Apple Safari) тоже могут работать с Zabbix.

Глобальный поиск

Глобальный поиск содержит предложения, основанные на введенной строке.
Результаты поиска содержат соответствующие узлы, группы узлов и шаблоны.

Глобальные уведомления

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

Локализация

Веб-интерфейс переведен на 22 языка. Процесс перевода продолжается.

Темы оформления

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

Глобальная панель инструментов

Zabbix Dashboard представляет собой центральное место в веб-интерфейсе и обеспечивает детальную информацию о контролируемой среде. Доступна следующая информация на одном экране:
  • Состояние Zabbix Server.
  • Состояние системы.
  • Состояние хоста.
  • Последние 20 проблем.
  • Веб-мониторинг.
  • Графики.
  • Экраны.
  • Карты.
Пользователи могут настраивать приборную панель, перетаскивать виджеты, добавлять и удалять избранное.

Графики

Zabbix может легко генирировать графики из собранных данных.

Автоматические графики.

Стандартные графики для различных элементов доступны без каких-либо настроек - эти графики создаются на время выполнения. Для просмотра такого графика нажмите на "Graph next" любого элемента в "Latest data".
Управление графиком позволяет изменять отображаемый в данный момент период времени.

Перетаскивание с увеличением (зумом)

Рассматриваемый период времени изменяется путем перетаскивания или изменения размера полосы прокрутки времени.

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

Пользовательские графики

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

Гистограмма отчетов

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

Карты сетей

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

Посмотрите что происходит

Так как элементы карты могут быть связаны, карта может стать "живой", начиная отображать то что происходит в наблюдаемых узлах.
Если что-то случится, значок состояния и цвет устройства на карте автоматически измениться.

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

Состояние зависимостей

Если вы нажмете на узел то получите доступ к некоторым скриптам и ссылкам на страницы состояния триггера, который предоставит список активных триггеров узла и страницу экрана узла.

Экраны и презентация

Экраны

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

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

Строитель экрана делает создание экрана простым и интуитивно понятным. Количество элементов на экране не ограничено.

Презентация.

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

Доступ к необработанным данным

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

События и детали уведомлений

Список событий

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

Кроме этого, вы можете написать сообщение подтверждения каждого события.

События и детали уведомлений
Если вы нажмете на событие то увидите подробности событий и уведомлений. На этом экране источник событий, детали подтверждения и связанных событий тоже отображаются.

Безопасность и аутентификация

Права пользователя

Типы пользователей

Тип пользователя Описание
Пользователь Zabbix
Администратор Zabbix Права группы узлов должны быть указаны явно.
Суперадминистратор Zabbix

  • чтение и запись;
  • только чтение;
  • доступ запрещен.
Скриншот ниже дает общее представление о том, как легко можно назначить права пользователей узлу или группе узлов.

Методы аутентификации

  • внутренняя база данных;
  • базовая авторизация по HTTP;
  • LDAP аутентификация.

Приятные мелочи

Нанесение значений на карту .

Нанесение значений полезно для просмотра данных. Вы можете нанести текстовое пояснение на полученное значение. Таким образом, вместо голого значения "1", отображается что-то более понятное, например «доступно».

Рабочее время

Рабочее время отображается белым фоном, а не рабочее - серым.

Просмотр нескольких лог-файлов вместе

В просмотре истории журнала можно объединить несколько журналов данных на одном экране. А также фильтровать и выделять данные журнала в текстовом режиме. Это нужно чтобы находить и легко исследовать конкретные данные журнала.

Уведомления

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

Ниже описаны различные стадии процесса уведомления:

  • получить сообщение;
  • выполнить команду;
  • эскалация (разглашение) ответов на проблемы.

Получение сообщений

Выбор метода

Zabbix имеет несколько предопределенных способов доставки уведомлений. Администраторы могут получать уведомления несколькими способами:

  • по электронной почте;
  • по SMS;
  • на Jabber;
  • с помощью пользовательских alertsript.
Кроме этого, для уведомлений можно использовать скрипты. Содержание уведомлений полностью настраивается в зависимости от контекста. Каждый контакт может получить уведомление указанными способами с использованием указанных средств массовой информации в указанный день и время.

Включение важных деталей

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

  • дата и время;
  • имя узла;
  • предмет и описание триггера;
  • последние данные;
  • профиль узла.
Настройки в зависимости от получателя

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

Выполнение команд

На удаленной системе можно запустить команды оболочки чтобы исправить ситуацию, когда система перегружена или когда сервисы не работают должным образом. Типичным примером использования таких программ есть перезапуск сервера или сервисов.
Команды можно выполнить:
  • на Zabbix сервере;
  • на Zabbix agent;
  • используя IPMI;
  • используя Telnet и SSH.
Более подробная информация о удаленном выполнении команд в руководстве.

Эскалация (разглашение) ответов на проблемы.

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

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

Поддерживаемые параметры

  • Немедленное информирование о новых проблемах.
  • Pro-активный мониторинг: Zabbix выполняет предопределенные скрипты (удаленные команды).
  • Повторение уведомлений пока проблема не решена.
  • Отложенные уведомления и удаленные команды.
  • Эскалация проблем для других групп пользователей.
  • Различные пути эскалации для признанных и непризнанных проблем.
  • Восстановление сообщения для всех заинтересованных сторон.
  • Zabbix поддерживает неограниченное количество шагов эскалации.
Истоии эскалаций могут быть включены в уведомлениях, так что получатель видит то, что происходит и почему он получил это сообщение.

Шаблоны, импорт и экспорт

Шаблоны

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

Настройка импорта и экспорта

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

  • Обмен шаблонами или сетевыми картами между пользователями, системами или организациями.
  • Параметры конфигураций.
  • Интеграция со сторонними инструментами.
Использование XML-формата позволяет встраивать Zabbix в сторонные приложения и проводить импорт/экспорт.
Эта функция относится к трем основным категориям конфигурации: узлы и связанные с ними данные, сетевые карты и экраны.
  1. Импорт и экспорт узлов.
  • Узлы и связанные с ними шаблоны.
  • Приложения.
  • Товары.
  • Триггеры.
  • Пользовательские графики.
  • Пользовательские макросы.
  • Правила исследования.
  • Импорт и экспорт карт.
    • Настройка карты.
    • Все элементы карты, включая изображения, триггеры, узлы сети, группы узлов и карты.
    • Все разъемы с соответствующими данными, включая метки и индикаторы состояния.
  • Экран импорта/экспорта
    • Экран импорта/экспорта поддержкивает все элементы экрана.

    Автоматическое обнаружение

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

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

    Сетевое обнаружение

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

    • IP диапазон сканирования;
    • внешние сервисы для поиска (FTP, SSH, WEB, POP3, IMAP, TCP и т.д.);
    • информацию, полученную от агента Zabbix;
    • информацию, полученную от SNMP агента.
    Функции сканирования генерируют события сканирования, которые могут стать основой для соответствующих предопределенных действий, таких как:
    • отправка уведомлений пользователю;
    • добавить или удалить узел;
    • включить и отключить узел;
    • добавить или удалить узел в группу;
    • привязать или отвязать узел от шаблона;
    • выполнить удаленный сценарий.
    Дествия могут быть настроены с учетом типа устройства, IP, статуса, uptime/downtime и других параметров.

    Низкоуровневое сканирование

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

    • сканнирование файловых ситсем;
    • сканирование сетевых интерфейсов;
    • сканирование SNMP OIDs.
    Автоматическая регистрация активного агента

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

    Распределенный мониторинг

    Распределенный мониторинг через Zabbix прокси

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

    Использование Zabbix прокси является самым простым способом сбора локальной информации и отчетности на центральный сервер Zabbix.

    Безопасность и аутентификация

    Права пользователя

    Zabbix умеет эффективно управлять правами пользователя на одном сервере или распределенной среде.

    Типы пользователей

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

    Тип пользователя Описание
    Пользователь Zabbix Пользователь имеет доступ к меню мониторинга. Пользователь не имеет доступа к любым ресурсам по умолчанию. Права группы узлов должны быть указаны явно.
    Администратор Zabbix Пользователь имеет доступ к мониторингу и настройке. Пользователь не имеет доступа к любым группам узлов по умолчанию. Права группы узлов должны быть указаны явно.
    Суперадминистратор Zabbix Пользователь имеет доступ ко всему: Мониторинг, Настройка и администрирование. У него есть доступ к чтению и записи на все группы узлов. Permissions cannot be revoked by denying access to specific host groups.

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

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

    Есть три вида прав доступа к узлам или группе узлов:

    • чтение и запись;
    • только чтение;
    • доступ запрещен.
    Предоставление прав на добавление групп узлов соответствующего уровня доступа.

    Методы аутентификации
    Веб-интерфейс Zabbix поддерживает несколько методов аутентификации:

    • внутренняя база данных;
    • базовая авторизация по HTTP;
    • LDAP аутентификация.
    Если LDAP используется в качестве метода проверки подлинности и по каким то причинам он стал недоступен, группы пользователей по прежнему могут использовать внутреннюю авторизацию для доступа к веб-интерфейсу Zabbix.

    Управление системой

    Периоды обслуживания

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

    Поддерживаются два режима управления техническим обслуживанием, сообщая администратору, следует ли прекратить сбор всех данных или подавить только оповещений о сбоях.

    Инвентарь

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

    Поле "Host inventory" может быть заполнено автоматически. Специальные элементы могут собирать информацию о узлах и заполнять поле инвентаризации в определении узла.

    Пользовательские скрипты для управления узлами

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

    Эта функция полезна для первой реакции на проблему в системе. Ping и traceroute доступны по умолчанию.

    Zabbix API

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

    Простая двусторонняя интеграция

    Zabbix API позволяет легкую интеграцию с любым программным обеспечением, которое в состоянии сделать или принять внешние вызовы. Интеграцию с системой тиккетов можно рассматривать как один из наиболее частых применений Zabbix API. Интеграция с популярными системами тиккетов, такими как JIRA и Bugzilla, займет всего несколько дней.

    Программное обеспечение третьих сторон

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

    Управление конфигурацией

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

    Еще одна интересное использование Zabbix API: вы можете добавить сотни или тысячи устройств, что с помощью веб-интерфейса не возможно.

    Получение данных

    Zabbix имеет большой объем информации о среде организации хранящейся в базе данных. Эта информация заслуживает повторного использования в программах по статистике, безопасности и инвентаризации чтобы дать больше возможностей организации. И это расширяет горизонты использования Zabbix для сбора информации не только о доступности и производительности ИТ-среды, но и о бизнес-метриках, KPI, расположении товарно-материальных ценностей, различных датчиков (влажность, температура, движение, бесконтактные датчики) и многих других битов информации, которые окружают нас в повседневной деятельности.

    Мобильные приложения

    Мониторинг ИТ-среды требует постоянного внимания независимо от ответственности персонала, выходных или даже отпусков. С помощью мобильных телефонов и смартфонов можно получить доступ к визуализации, конфигурации, подтверждении событий и многим другим возможностям Zabbix. Любой человек может развивать свое собственное приложение по управлению Zabbix или пользоваться уже готовым приложением.

    Начало работы с API

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

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


    © 2013 сайт. Копирование материала разрешается только с указанием прямой и индексируемой ссылки .

    Доброго времени суток. В данную серию статей я хочу посвятить одной из замечательных систем мониторинга - zabbix. По долгу службы пришлось мне искать систему мониторинга. Я останавливался на nagios, cacti, mrtg. Но они мне не подошли. И вот я нашел zabbix. Ознакомившись с документацией, я понял, что zabbix - это то, что надо...

    И так, что же такое zabbix? Zabbix - это система распределенного мониторинга, которая позволяет мониторить многочисленные параметры сети и узлов сети. Zabbix распространяется под лицензией GPL, а это означает - она бесплатна.

    Возможности zabbix

    Как я уже говорил выше, zabbix обладает огромными возможностями, а конкретно:
    • мониторинг доступности
    • мониторинг по SNMP
    • мониторинг по IPMI
    • мониторинг по JMX
    • собственная настройка порогов срабатывание проблемы
    • настройка оповещений
    • группировка по хостам, по собираемым данным
    • использование шаблонов
    • система прав доступа
    • и многое другое

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

    Сразу хочу отметить, что установку я буду производить на Linux, а точнее на Ubuntu Server.
    Установку я буду производить из исходников. Поэтому давайте в начале скачаем исходный код Zabbix с . Разархивируем скачанный архив. Для этого переходим в директорию с архивом и вводим комманду:

    $ tar -zxvf zabbix-2.0.0.tar.gz

    Отлично. Следующим этапом необходимо подготовить нашу систему к установке zabbix. Нам понадобятся следующие пакеты:
    • snmp
    • libsnmp-dev
    • snmpd
    • libcurl4-openssl-dev
    • fping
    Этих пакетов достаточно для того, чтобы zabbix смог опрашивать узлы на доступность и собирать информацию по SNMP.
    Если данные пакеты не установлены в системе, установим их:

    sudo apt-get install snmp libsnmp-dev snmpd libcurl4-openssl-dev fping

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

    groupadd zabbix
    useradd -g zabbix zabbix

    Теперь нужно подготовить базу данных. Zabbix может работать как с MySQL, так и с PostgreSQL. (поддерживает и другие, Вы можете ознакомиться в официальной документации). Производитель рекомендует использовать в качестве сервера базы данных PostgreSQL, если Вы собираетесь мониторить более 50 узлов.
    Но я использую MySQL и на данный момент у меня на мониторинге стоит 123 узла - пока проблем не наблюдал. В дальнейшем планируется увеличение узлов, тогда и посмотрим. И так, создаем базу данных в MySQL:

    shell> mysql -u <имя пользователя> -p
    <пароль>
    mysql> create database zabbix character set utf8
    mysql> quit

    Теперь заходим в директорию с разархивированными исходниками zabbix. В ней в директории./database/mysql/ находятся три файла:

    1. schema.sql
    2. images.sql
    3. data.sql
    И запускаем их на исполнение:

    mysql -u <пользователь> -p < schema.sql

    или из самого mysql:

    mysql>use zabbix
    mysql>source schema.sql

    По аналогии запускаем и остальные файлы images.sql и data.sql
    Порядок обязателен.
    Все на этом этап подготовки к установке завершен. Теперь можно приступить к самой установке zabbix.

    Установка мониторинга zabbix

    Переходим в директорию с кодом zabbix и запускаем:

    sudo ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl

    Мы подключаем сам zabbix сервер, zabbix агент, поддержку snmp.
    Если все прошло хорошо (а об ошибках с которыми я столкнулся и как их решить я опишу ниже) запускаем установку:

    sudo make install

    На этом установка завершена. Осталось произвести небольшую конфигурацию сервера и агента zabbix.

    Первоначальная настройка zabbix

    Для работы zabbix сервера необходимо произвести первоначальные настройки. Открываем файл конфигурации /usr/local/etc/zabbix_server.conf (так в Ubuntu) и редактируем его:

    DBName=[имя базы данных, у меня zabbix]
    DBUser = [имя пользователя доступа к MySQL]
    DBPassword = [пароль доступа к базе данных]

    Вот в принципе и все. Если у Вас MySQL настроен по умолчанию, то все должно заработать.
    Теперь настроим агент zabbix. Если zabbix агент находится на той же машине, где и zabbix сервер, то ничего менять не надо. Если же zabbix агент находиться на другой машине, то открываем /usr/local/etx/zabbix_agentd.conf ищем строку Server=127.0.0.1 и заменяем на Server=[адрес zabbix сервера]
    Вот и все. Запускаем zabbix сервер и агент командами:

    zabbix_server
    zabbix_agentd

    Пришло время к установке web интерфейса для zabbix.

    Установка web интерфейса zabbix

    Создаем виртуальный хост zabbix, как это сделать я писал в своей статье про . Копируем в директорию созданного виртуального хоста файлы из директории с zabbix/frontends/php
    Заходим на наш хост. Тут нужно немного подправить наш php.ini согласно требованиям zabbix.
    • memory_limit - задает максимальную величину использования памяти скриптом
    • post_max_size - устанавливает максимальный размер данных передаваемых методом POST
    • upload_max_filesize - максимальный размер загружаемого файла
    • max_execution_time - время выполнения скрипта
    • max_input_time - максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные
    • timezone - в php.ini date.timezone, устанавливает часовой пояс
    Дальше идут расширения PHP
    • datebase support - тип базы данных
    • bcmath - вычисления с произвольной точностью
    • mbstring - работа с многобайтными строками
    • sockets - работа с сокетами
    • gd - графическая библиотека
    • и др.
    Перезапускаем сервер apache.
    После того как все требования zabbix будут удовлетворены, можно перейти к следующему шагу.

    На этом шаге нам надо выбрать тип базы данных (в моем случае это MySQL), укаазать адрес сервера (у меня localhost), название базы данных (для моего случае это zabbix), логин и пароль для доступа к базе данных:

    После ввода всех данных жмем “Test connection”, если тест прошел успешно переходим к следующему шагу, если же нет, то проверяем введенные данные. Если вся информация введена правильно - переходим к установке, нет - возвращаемся и исправляем.

    Как видите у меня все прошло успешно. Учтите, что файл zabbix.conf.php должен быть открыт на запись. Как это сделать я описывал в своей статье об Жмем “Finish”. И переходим к окну авторизации.

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

    Проблемы возникающие при установке zabbix и их решение

    Во время установки мониторинга я столкнулся с двумя ошибками:

    1. При выполнении configure у меня выскочила ошибка “MySQL library not found”. Решается данная проблема легко, путем установки libmysqlclient16-dev
    2. Вторая ошибка выскочила при выполнении make install “The programm ‘make’ is currently not installed”. Тут все просто, у меня не установлена программа make.
    Больше при установке zabbix проблем не возникло. Если же у Вас что-то пошло не так и Вы не знаете как это решить или решили - делитесь в комментариях. Думаю это будет полезно всем.
    А на этом я завершаю статью, посвященную установке мониторинга zabbix. В следующей статье мы познакомимся с основными понятиями, затем разберем интерфейс и перейдем к настройке мониторинга хостов (устройств нашей сети). Так, что следите за выходом новых статей.

    1-го октября 2018 года вышла новая версия бесплатной системы мониторинга, которую я постоянно использую. Я подробно расскажу об установке и начальной настройке Zabbix 4.0 на примере систем CentOS, Debian, Ubuntu со скриншотами и пояснениями. В этой версии много интересных и полезных нововведений, так что посмотреть на неё однозначно стоит.

    На сегодняшний день, по моему мнению, из бесплатных систем мониторинга именно Zabbix самая популярная и функциональная. Упоминания о ней я постоянно встречаю в технических статьях специалистов различного масштаба и организаций. К примеру, СберТех использует Zabbix как единую платформу мониторинга. ИТ отдел сети магазинов Магнит так же использует zabbix как основную систему мониторинга. Пару лет назад я смотрел выступление представителя ИТ отдела Магнита, где он подробно описывал структуру системы. На тот момент это была самая крупная инсталляция заббикса с тысячами прокси серверов для сбора данных из магазинов по всей стране. Упоминания о мониторинге заббикс я встречал у специалистов компаний 1С, Крок, Яндекс.Деньги и других. Перечислил только то, что запомнилось.

    Нужно понимать, что Zabbix — система мониторинга общего назначения. У нее нет специализации в микросервисы, сеть, железо и т.д. В связи с этим, всегда может найтись инструмент, который сможет выполнять ту или иную задачу удобнее и эффективнее, чем zabbix. Но это не умоляет остальных достоинств системы. Я их вижу в первую очередь в том, что в ней можно настроить мониторинг всего, что угодно. Главное научиться подавать значения в систему. А для этого есть масса инструментов — как самих агентов, так и скриптов, которые можно подключать к сбору данных.

    Система мониторинга Zabbix позволяет так или иначе завести на нее все обслуживаемые сервисы. Где-то это может быть не очень просто, но в любом случае, один универсальный инструмент удобнее, чем несколько. Мне всегда удавалось настроить желаемый мониторинг с помощью заббикса. Если не было готовых шаблонов или подходящих агентов для сбора, писал скрипты и передавал ими данные агенту. С моими (и не только) решениями по мониторингу можете познакомиться в отдельном разделе .

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

    Я буду устанавливать и настраивать работу сервера zabbix на nginx, что несколько отличается от дефолтной установки, которая включает в себя веб сервер apache. В связи с этим, нам необходимо будет подготовиться.

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

    Первым делом вам необходимо и сервер CentOS 7. Перед установкой сервера Zabbix нам также нужно подготовить Web сервер. У меня есть отдельная статья по . Там все подробно описано. Сейчас же я кратко и без лишних комментариев выполню минимум необходимых действий для работы заббикса. Так же я не буду останавливаться на . Эта отдельная тема и мне не хочется ее касаться в этой статье. Либо настройте сами по моим инструкциям, либо просто отключите firewall:

    # systemctl stop firewalld # systemctl disable firewalld

    Подключаем репозиторий nginx и устанавливаем его:

    # rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # yum install nginx

    Запускаем nginx и добавляем в автозагрузку.

    Проверяем, работает ли он. Для этого открываем в браузере ссылку http://192.168.13.117/, где 192.168.13.117 — ip адрес настраиваемого сервера.

    Если у вас не работает nginx, разберитесь с ним, прежде чем двигаться дальше. В первую очередь проверьте настройки фаервола.

    # yum install epel-release # rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

    Активируем репу remi-php71, для этого выполняем команды:

    # yum install yum-utils # yum-config-manager --enable remi-php71

    Устанавливаем php 7.1 и модули к нему.

    # yum install php71 php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-bcmath

    Запускаем php-fpm и добавляем в автозагрузку.

    # systemctl start php-fpm # systemctl enable php-fpm

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

    # netstat -tulpn | grep php-fpm tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 13261/php-fpm: mast

    Все в порядке, запустился на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:

    # mcedit /etc/php-fpm.d/www.conf ;listen = 127.0.0.1:9000

    Вместо нее добавляем несколько других:

    Listen = /var/run/php-fpm/php-fpm.sock listen.mode = 0660 listen.owner = nginx listen.group = nginx

    Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx, отредактировав соответствующие параметры.

    User = nginx group = nginx

    Перезапускаем php-fpm.

    # systemctl restart php-fpm

    Проверяем, стартовал ли указанный сокет.

    # ll /var/run/php-fpm/php-fpm.sock srw-rw----. 1 nginx nginx 0 Oct 4 15:08 /var/run/php-fpm/php-fpm.sock

    На текущий момент с настройкой php-fpm закончили. Продолжаем подготовку сервера к установке zabbix.

    Устанавливаем свежую версию MariaDB. Подключаем репозиторий. Для этого создаем файл /etc/yum.repos.d/mariadb.repo следующего содержания.

    # mcedit /etc/yum.repos.d/mariadb.repo # MariaDB 10.3 CentOS repository list - created 2018-10-04 12:10 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

    Устанавливаем последнюю версию mariadb на centos.

    # yum install MariaDB-server MariaDB-client

    Запускаем mariadb и добавляем в автозагрузку.

    # systemctl start mariadb # systemctl enable mariadb

    Внесем некоторые изменения в стандартный конфиг mariadb, чтобы потом не заниматься . Для этого открываем конфиг mysql /etc/my.cnf.d/server.cnf и приводим его к следующему виду.

    # mcedit /etc/my.cnf.d/server.cnf port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set=utf8 character_set_server=utf8 collation-server=utf8_bin init_connect="SET NAMES utf8 collate utf8_bin" port = 3306 socket = /var/lib/mysql/mysql.sock innodb_file_per_table=1 innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size innodb_flush_log_at_trx_commit = 0 innodb_log_file_size = 512M innodb_log_files_in_group = 3

    Я добавил минимум настроек, отличных от дефолта. В статье про оптимизацию mysql их приведено гораздо больше, но со временем я понял, что зря это сделал. Реально у меня нет большого опыта в тонкой настройке mysql. Никаких тестов и проверок я не делал, а данные брал на основе других статей в интернете. Не факт, что там не было ошибок. В итоге сейчас тут только заданы некоторые важные параметры по innodb, в частности указание хранить каждую таблицу в отдельном файле, задан размер и количество бинарных логов и еще пару настроек, которые явно будут к месту (innodb_buffer_pool_size, innodb_buffer_pool_instances и innodb_flush_log_at_trx_commit). При желании, вы можете сами заняться тюнингом mysql. В общем случае, достаточно будет текущих настроек.

    # systemctl restart mariadb # systemctl status mariadb.service

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

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

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

    # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.fCWryx: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY Preparing... ################################# Updating / installing... 1:zabbix-release-4.0-1.el7 #################################

    Устанавливаем сам сервер заббикса.

    # yum install zabbix-server-mysql zabbix-web-mysql

    В зависимостях пакетов будет httpd, который нам не нужен, так как у нас будет nginx и php7.1, но я не разбирался, как поставить без него. После установки пакетов, создадим базу данных, пользователя zabbix и заполним базу.

    # mysql -uroot -p Enter password: > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@localhost identified by "zabpassword"; exit # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

    Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout , так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется для получения метрики. Поставьте секунд 10.

    Проверяем лог файл на наличие ошибок.

    # cat /var/log/zabbix/zabbix_server.log

    Настройка SELinux с zabbix

    Если у вас включен SELinux, получите ошибку.

    Cannot start preprocessing service: Cannot bind socket to "/var/run/zabbix/zabbix_server_preprocessing.sock": Permission denied.

    Это нормально, сейчас настроим SELinux для нормальной работы Zabbix. Для этого устанавливаем пакет policycoreutils-python, скачиваем готовый модуль для SELinux и применяем его.

    # yum install policycoreutils-python # cd ~ # curl https://support.zabbix.com/secure/attachment/53320/zabbix_server_add.te > zabbix_server_add.te # checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te # semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp # semodule -i zabbix_server_add.pp

    Теперь нам надо перезапустить zabbix-server.

    # systemctl restart zabbix-server

    Если у вас это не получится сделать через systemctl, значит служба зависла. Завершаем ее принудительно и запускаем снова.

    # kill -9 `pidof zabbix_server` # systemctl start zabbix-server

    Снова проверяйте log файл. Теперь ошибок быть не должно. Как я уже сказал, если у вас отключен SELinux, то делать описанные выше манипуляции с модулем не надо.

    С серверной частью закончили. Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/conf.d/default.conf

    # mcedit /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; root /usr/share/zabbix; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PHP_VALUE " max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 date.timezone = Europe/Moscow always_populate_raw_post_data = -1 "; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }

    Маленький, но важный нюанс. Нам надо изменить права доступа на некоторые папки. Назначить владельца nginx.

    # chown -R nginx:nginx /var/lib/php/session # chown -R nginx:nginx /etc/zabbix/web

    Этот шаг нужно будет проделывать после каждого обновления php или zabbix. Связано с тем, что по-умолчанию zabbix идет в комплекте с apache и рассчитан на работу с ним. Поэтому после установки или обновления, он делает его владельцем директории /etc/zabbix/web .

    Даем разрешения SELinux для работы заббикса с web сервером и базой данных.

    # setsebool -P httpd_can_connect_zabbix on # setsebool -P httpd_can_network_connect_db on

    Я не знаю, насколько последняя настройка актуальна, если подключение к БД локальное. У разработчиков в инструкции сказано, что в случае с postgresql даже если подключаетесь через 127.0.0.1, разрешение выдавать нужно. Насчет mysql нет комментариев.

    С серверной частью закончили. Для продолжения установки zabbix сервера переходим к .

    Установка сервера Zabbix 4.0 в Ubuntu, Debian

    С установкой Zabbix на сервер с Ubuntu или Debian попроще, так как в стандартных репозиториях посвежее версии софта, можно использовать их. Подключаем репозитории zabbix 4.0.

    # wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb # dpkg -i zabbix-release_4.0-2+bionic_all.deb

    # wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb # dpkg -i zabbix-release_4.0-2+stretch_all.deb

    Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории - https://repo.zabbix.com/zabbix/4.0/ Дальнейшая установка не будет отличаться от текущей.

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

    # apt update && apt upgrade

    Устанавливаем zabbix сервер:

    # apt install zabbix-server-mysql zabbix-frontend-php

    Он по-умолчанию ставится с apache, который сразу же запускается. Остановим его и отключим:

    # systemctl stop apache2 # systemctl disable apache2

    Ставим отдельно nginx и php-fpm:

    # apt install nginx php-fpm

    Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.

    # /usr/bin/mysql_secure_installation

    Отредактируем некоторые параметры Mariadb в конфиге /etc/mysql/mariadb.conf.d/50-server.cnf . Добавляем туда в секцию :

    # mcedit /etc/mysql/mariadb.conf.d/50-server.cnf innodb_file_per_table=1 innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size innodb_flush_log_at_trx_commit = 0 innodb_log_file_size = 512M innodb_log_files_in_group = 3

    Перезапустите mariadb и убедитесь, что она запустилась.

    # systemctl restart mariadb # netstat -tulnp | grep mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 16753/mysqld

    Cоздадим базу данных, пользователя zabbix, и заполним базу.

    # mysql -uroot -p Enter password: > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@localhost identified by "zabpassword"; exit # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

    Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.

    # mcedit /etc/zabbix/zabbix_server.conf

    Изменяем указанные строки, остальные не трогаем:

    DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabpassword ListenIP=0.0.0.0 Timeout=10

    Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.

    Запускаем zabbix и добавляем в автозагрузку.

    # systemctl start zabbix-server # systemctl enable zabbix-server

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

    # netstat -tulnp | grep zabbix_server tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16847/zabbix_server

    Все в порядке. Запускаем nginx, который у нас будет выступать в качестве web сервера.

    # systemctl start nginx # systemctl enable nginx

    Убедимся, что в качестве web сервера работает nginx.

    # netstat -tulnp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17075/nginx: master tcp6 0 0:::80:::* LISTEN 17075/nginx: master

    Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный - /etc/nginx/sites-available/default . Приводим его к следующему виду:

    # mcedit /etc/nginx/sites-available/default server { listen 80; server_name localhost; root /usr/share/zabbix; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock ; # проверьте этот путь, для разных версий php он будет разный fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PHP_VALUE " max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 date.timezone = Europe/Moscow always_populate_raw_post_data = -1 "; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; fastcgi_intercept_errors on; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }

    Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.

    # nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # nginx -s reload

    С серверной частью закончили. Для продолжения установки zabbix сервера переходим к настройке Zabbix Frontend.

    Настройка Zabbix Frontend

    Идем в браузер и открываем адрес http://192.168.13.117. Вы должны увидеть установщик Zabbix 4.0.

    Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.

    На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.

    После нажатия на Finish увидите окно авторизации Zabbix сервера.

    Стандартная учетная запись для входа в web интерфейс zabbix следующая:

    • Пользователь Admin
    • Пароль zabbix

    После логина увидите стандартный dashboard.

    На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.

    Настройка Zabbix Server

    Создание учетной записи и смена пароля

    Первое, что нужно сделать — сменить стандартные учетные данные для входа. Можно просто поменять пароль пользователя admin, но лучше создать новую учетную запись с правами суперпользователя, а админа удалить. Для этого идем в раздел Administration -> Users и нажимаем Create User .

    Заполняем все необходимые поля. Можно выбрать русский язык. Обычно я стараюсь работать в английском, но в случае с заббиксом можно сделать исключение. Он очень качественно локализован и проблем не возникает. Не забудьте зайти во вкладку Permissions и выбрать User type — Zabbix Super Admin.

    Теперь можно зайти под новым пользователем, а Admin удалить. Но система не даст его удалить, так как он является владельцем некоторых объектов:

    • карты сети — Local Network
    • комплексного экрана Zabbix server
    • панелей Global view и Zabbix server health

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

    Настройка email оповещений

    Дальше нужно настроить очень важную часть системы мониторинга — уведомления на email. Без нее система мониторинга не выглядит целостной и полноценной. Zabbix сервер поддерживает отправку почты через сторонние smtp серверы. Настроим один из них. Для этого идем в раздел Администрирование -> Способы оповещений и нажимаем на Email .

    Покажу на примере настроек ящика в Яндексе.

    Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем в Администрирование -> Пользователи , выбираем своего пользователя. Идем во вкладку Оповещения и жмем Добавить . Добавляйте свой ящик и нажимайте Обновить .

    Зайдите еще раз в учетную запись и убедитесь, что ящик добавили.

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

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

    Мне мой вид кажется более наглядным. Шаблон меняет на следующий:

    {HOST.NAME} - {TRIGGER.STATUS}: {TRIGGER.NAME}

    Он одинаковый и для проблемы, и для восстановления.

    Изменение стандартных шаблонов мониторинга

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

    1. В шаблоне Template App Zabbix Agent отключаю триггер Version of zabbix_agent(d) was changed on {HOST.NAME} . Если его оставить, то после каждого обновления zabbix агента вы будете получать уведомление. Лично мне эта информация не нужна.
    2. В шаблоне Template OS Linux меняю в триггере Disk I/O is overloaded on {HOST.NAME} значение со стандартных 20% до 50%. Я считаю, что начинать беспокоиться и смотреть на машину надо при этом значении. Но вы можете подобрать под свои нужды.
    3. В этом же шаблоне в правиле обнаружения Mounted filesystem discovery добавляю еще один прототип триггера, скопировав Free disk space is less than 20% on volume {#FSNAME} . Новый шаблон полностью идентичен скопированному, только вместо 20% указываю 5% и ставлю важность с «Предупреждение» на «Высокая». Я добавляю еще одно оповещение, если свободного места на дисках остается меньше 5%. Стандартные 20% очень высокий порог, особенно если большой диск. Оперативное решение проблемы не требуется. Из-за этого часто откладываешь чистку диска на потом и забываешь о ней. Теперь будет еще один страховочный триггер, после которого точно надо идти и прямо сейчас разбираться с местом. В триггере на 20% свободного места ставлю разрешение на закрытие триггера вручную.
    4. В этом же шаблоне в триггере Lack of free swap space on {HOST.NAME} меняю порог срабатывания с 50% до 20%, либо вообще отключаю его. Сейчас много серверов работают без swap. Хотя лично я всегда его создаю и подключаю.
    5. В шаблоне Template OS Windows отключаю Правило обнаружения Windows service discovery . В дефолтном варианте оно генерирует очень много ненужных итемов и оповещений. Если нужен мониторинг какой-то службы windows, я делаю для этого отдельный шаблон.

    Общие настройки

    В общих настройках zabbix server, которые располагаются в разделе Администрирование -> Общие я меняю следующие параметры:

    1. В разделе Рабочее время выставляю актуальные рабочие часы.
    2. В разделе Опции отображения триггеров меняю значения Отображать триггеры в состоянии ОК в течении и Мигание триггеров при изменении состояния на 1 минуту. Это просто мои предпочтения. Мне не нравится, когда триггеры долго мигают, либо висят уже закрытые.
    3. В разделе Прочее меняю Обновление неподдерживаемых элементов данных на 1 минуту. Это актуально во время отладки новых шаблонов.

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

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

    Установка zabbix agent в Centos:

    # yum install zabbix-agent

    Тоже самое в Ubuntu/Debian:

    # apt install zabbix-agent

    Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на другую машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:

    # mcedit /etc/zabbix/zabbix_agentd.conf Server=192.168.13.117 ServerActive=192.168.13.117 Hostname=srv10 # имя вашего узла мониторинга, которое будет указано на сервере zabbix, Zabbix server если это сам сервер заббикса

    Запускаем агент и добавляем в автозагрузку:

    # systemctl start zabbix-agent # systemctl enable zabbix-agent

    Проверяем лог файл.

    # cat /var/log/zabbix/zabbix_agentd.log 14154:20181004:201307.800 Starting Zabbix Agent . Zabbix 4.0.0 (revision 85308). 14154:20181004:201307.800 **** Enabled features **** 14154:20181004:201307.800 IPv6 support: YES 14154:20181004:201307.800 TLS support: YES 14154:20181004:201307.800 ************************** 14154:20181004:201307.800 using configuration file: /etc/zabbix/zabbix_agentd.conf 14154:20181004:201307.800 agent #0 started 14157:20181004:201307.801 agent #3 started 14159:20181004:201307.802 agent #5 started 14155:20181004:201307.804 agent #1 started 14158:20181004:201307.806 agent #4 started 14156:20181004:201307.810 agent #2 started

    Все в порядке. Идем в веб интерфейс и проверяем поступление данных. Для этого идем в раздел Мониторинг -> Последние данные . Указываем в разделе Узлы сети Zabbix Server и ждем поступления первых данных. Они должны пойти через 2-3 минуты после запуска агента.

    Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:

    # systemctl stop zabbix-agent

    Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем главную панель, виджет Проблемы .

    И сетевого оборудования , написанная Алексеем Владышевым.

    Для хранения данных используется MySQL , PostgreSQL , SQLite или Oracle . Веб-интерфейс написан на PHP . ZABBIX поддерживает несколько видов мониторинга:

    • Simple checks - может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP, без установки какого-либо программного обеспечения на наблюдаемом хосте.
    • ZABBIX agent - может быть установлен на UNIX-подобных или Windows -хостах для получения данных о нагрузке процессора , использования сети, дисковом пространстве и т. д.
    • External check - выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP .

    Энциклопедичный YouTube

    • 1 / 5

      Zabbix начался в 1998 году как проект внутреннего программного обеспечения. Спустя 3 года, в 2001 году, он был выпущен публично под лицензией GPL . Прошло более трёх лет до выхода первой стабильной версии - 1.0, которая была выпущена в 2004.

      График релизов
      Дата Релиз
      Zabbix 1.0
      1998 ПО Zabbix началось как внутренний проект в банке Алексеем Владышевым
      7 Апреля 2001 Zabbix 1.0alpha1 был выпущен с лицензией GPL
      23 Марта 2004 Выпущен Zabbix 1.0
      Zabbix 1.1
      6 Февраля 2006 Выпущен Zabbix 1.1
      Zabbix 1.4
      29 Мая 2007 Выпущен Zabbix 1.4
      Zabbix 1.6
      11 Сентября 2008 Выпущен Zabbix 1.6
      Zabbix 1.8
      7 Декабря 2009 Выпущен Zabbix 1.8
      Zabbix 2.0
      21 Мая 2012 Выпущен Zabbix 2.0
      Zabbix 2.2.1
      21 Декабря 2013 Выпущен Zabbix 2.2.1
      Zabbix 2.4.0
      11 Сентября 2014 Выпущен Zabbix 2.4.0
      Zabbix 3.0
      16 Февраля 2016 Выпущен Zabbix 3.0

      Архитектура

      • Zabbix-сервер - это ядро программного обеспечения Zabbix. Сервер может удаленно проверять сетевые сервисы, является хранилищем, в котором хранятся все конфигурационные, статистические и оперативные данные, и он является тем субъектом в программном обеспечении Zabbix, который оповестит администраторов в случае возникновения проблем с любым контролируемым оборудованием.
      • Zabbix-прокси - собирает данные о производительности и доступности от имени Zabbix-сервера. Все собранные данные заносятся в буфер на локальном уровне и передаются Zabbix-серверу, к которому принадлежит прокси-сервер. Zabbix-прокси является идеальным решением для централизованного удаленного мониторинга мест, филиалов, сетей, не имеющих локальных администраторов. Он может быть также использован для распределения нагрузки одного Zabbix-сервера. В этом случае, прокси только собирает данные, тем самым на сервер ложится меньшая нагрузка на ЦПУ и на ввод-вывод диска.
      • Zabbix-агент - контроль локальных ресурсов и приложений (таких как жесткие диски, память, статистика процессора и т. д.) на сетевых системах, эти системы должны работать с запущенным Zabbix-агентом. Zabbix-агенты являются чрезвычайно эффективными из-за использования родных системных вызовов для сбора информации о статистике.
      • Веб-интерфейс - интерфейс является частью Zabbix-сервера, и, как правило (но не обязательно), запущен на том же физическом сервере, что и Zabbix-сервер. Работает на PHP , требует веб сервер (например, Apache).

      Обзор возможностей

      • Распределённый мониторинг вплоть до 1000 узлов. Конфигурация младших узлов полностью контролируется старшими узлами, находящимися на более высоком уровне иерархии.
      • Сценарии на основе мониторинга
      • Автоматическое обнаружение
      • Централизованный мониторинг лог-файлов
      • Веб-интерфейс для администрирования и настройки
      • Отчетность и тенденции
      • SLA мониторинг
      • Поддержка высокопроизводительных агентов (zabbix-agent) практически для всех платформ
      • Комплексная реакция на события
      • Поддержка SNMP v1, 2, 3
      • Поддержка SNMP ловушек
      • Поддержка IPMI
      • Поддержка мониторинга JMX приложений из коробки
      • Поддержка выполнения запросов в различные базы данных без необходимости использования скриптовой обвязки
      • Расширение за счет выполнения внешних скриптов
      • Гибкая система шаблонов и групп
      • Возможность создавать карты сетей

      Автоматическое обнаружение

      • Автоматическое обнаружение по диапазону IP-адресов, доступным сервисам и SNMP проверка
      • Автоматический мониторинг обнаруженных устройств
      • Автоматическое удаление отсутствующих хостов
      • Распределение по группам и шаблонам в зависимости от возвращаемого результата

      Низкоуровневое обнаружение

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

      • обнаружение файловых систем
      • обнаружение сетевых интерфейсов
      • обнаружение нескольких SNMP OID’ов

      Системные требования для установки ZABBIX-сервера

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

      Платформа ZABBIX-сервер ZABBIX-агент
      AIX Поддерживается Поддерживается
      FreeBSD Поддерживается Поддерживается
      HP-UX Поддерживается Поддерживается
      Linux Поддерживается Поддерживается
      Mac OS X Поддерживается Поддерживается
      Novell Netware - Поддерживается
      OpenBSD Поддерживается Поддерживается
      SCO Open Server Поддерживается Поддерживается
      Solaris Поддерживается Поддерживается
      Tru64/OSF Поддерживается Поддерживается
      Windows NT 4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista - Поддерживается


    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: