Установка и настройка Zabbix 5.0

12 мая 2020 года вышел очередной LTS релиз популярной open source системы мониторинга. Я подробно расскажу об установке и начальной настройке Zabbix 5.0 на примере систем CentOS, Debian, Ubuntu со скриншотами и пояснениями. Как обычно, нас ждет много полезных нововведений и улучшений, в том числе полностью новый агент.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Содержание

Введение

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

  1. Полнофункциональная бесплатная версия. Нет никаких ограничений. Платной версии просто не существует.
  2. Хорошая подробная документация на нескольких языках. Я очень часто её использую.
  3. Успешная финансовая модель, которая позволяет компании Zabbix стабильно развиваться и развивать продукт на протяжении многих лет.
  4. Организована система обучения и сертификации.
  5. Постоянно проводятся вебинары, конференции, выступления и т.д. То есть продукт живой и востребованный.
  6. Идет в ногу со временем. Новый функционал чаще всего удовлетворяет возникающие новые потребности.

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

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

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

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

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

Что нового в Zabbix 5.0

Подробно с новыми возможностями версии Zabbix 5.0 можно ознакомиться в официальном документе - What's New in Zabbix 5.0 LTS. Я перескажу его своими словами и дополню комментариями.

Итак, что же мы получили в новой версии 5.0.

Список основных нововведений

Использование SAML для аутентификации

SAML (security assertion markup language) - язык разметки декларации безопасности. Это открытый стандарт обмена данными аутентификации и авторизации. С его помощью проще и надежнее управлять доступом пользователей к ресурсам системы. Так же поддержка saml упрощает интеграцию с облачными провайдерами идентификации - Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0 и т.д.

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

Улучшенная безопасность и надежность

Zabbix 5.0 предлагает следующие улучшения в плане безопасности и надежности:

  • Поддержка HTTP Proxy для веб-хуков, позволяющая настраивать соединения Zabbix Server с внешними системами более безопасно и управляемо.
  • Поддержка на агенте черных и белых списков.
  • Теперь можно настраивать шифры (ciphers) на всех компонентах, выбирая наиболее надежные.
  • Поддержка зашифрованных соединений с MySQL и PostgreSQL.
  • Использования алгоритма хэширования SHA256 для пользовательских паролей.
  • Поддержка в пользовательских макросах скрытых от посторонних паролей или токенов.

Масштабируемость и производительность

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

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

Новый Zabbix Agent

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

  • Написан на Golang.
  • Может расширять функционал с помощью плагинов. Как по мне, вот это очень круто. Теперь можно ожидать хороших плагинов, расширяющих базовый функционал.
  • Умеет хранить состояние между проверками. Например, не сбрасывать подключение между проверками БД, чтобы не плодить их.
  • Поддержка трапов.
  • Встроенный планировщик.
  • Эффективное использование сети за счет объединения и массовой передачи данных.
  • Поддержка хранения собранных метрик.
  • Способность заменить существующие агенты в Linux и Windows. Старые агенты пока тоже поддерживаются.

Я еще не тестировал новый агент, но сейчас явно пришло время это сделать.

Простота и удобство

В этом плане в 5.0 реализовано следующее:

  • Улучшенное отображение почтовых уведомлений одного и того же события.
  • Дополнительные возможности обработки JSON. В частности, новая операция replace и новый оператор для JSONPath.
  • Возможность отменить acknowledge для события.
  • Поддержка шаблонов сообщений для способов оповещений с прямой отправкой. Тут я не очень понял, о чем речь. Наверное имеется в виду то, что для каждого способа отправки шаблон можно настроить отдельно. В 5-й версии эти настройки переехали из Действий в Способы оповещений.
  • Утилита с CLI для тестирования предобработки на основе JavaScript и webhooks.
  • Возможность проверить существующий или новый итем через web интерфейс. Не понял, в чем конкретно нововведение, так как этот функционал там уже есть. Но работает он не всегда удачно. Возможно, он просто немного изменился и будет работать лучше.
  • Поддержка массового обновления пользовательских макросов.
  • Настройки SNMP переместились в интерфейс хоста для более удобного управления и использования в шаблонах. Не заметил этого, либо не понял, о чем идет речь.
  • Проверки с помощью nodata() теперь учитывают состояние прокси.

Гибкость

В плане гибкости настроек в Zabbix 5.0 появилось следующее:

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

Автоматизация и обнаружение

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

  • Обнаружение счетчиков производительности Windows.
  • Обнаружение счетчиков JMX.
  • Улучшенный мониторинг ODBC с возможностью индивидуальной настройки всех параметров для каждой метрики.

Улучшение визуализации

Представление данных в удобочитаемом виде имеет большое значение. Zabbix 5.0 улучшает визуализацию, добавляя:

  • Новый web интерфейс, оптимизированный под широкоформатные экраны. Интерфейс поменялся существенно. Сразу и не узнаешь zabbix, пока не посмотришь на графики в хостах :) Увы, они все те же :(
  • Новое отображение Monitoring->Hosts для просмотра списка устройств с дополнительными параметрами фильтрации.
  • Поддержка фильтрации на основе тэгов событий для некоторых виджетов.
  • Возможность сохранения графиков с dashboard в виде картинок.
  • Поддержка модулей Web интерфейса для расширения функционала.
  • Возможность копировать виджеты во время настройки дашбордов. Вот этого мне очень не хватало во время создания больших дашбордов. Каждый раз приходилось вручную выставлять все параметры.
  • Улучшенные подписи на картах.

Встроенная интеграция с системами ITSM

ITSM (IT Service Management) - управление ИТ-услугами. Zabbix 5.0 представляет набор готовых интеграций со стандартными облачными и локальными системами ITSM:

  • Servicenow
  • Jira
  • OTRS
  • Redmine
  • Zendesk
  • Zammad

Разработано руководство, определяющее стандарты для webhooks. Они призваны упростить интеграцию Zabbix с внешними системами.

Встроенные интеграции с системами оповещений

Zabbix 5.0 представляет новый набор готовых интеграций со стандартными системами предупреждений (alerting) и оповещений (notification):

  • Telegram (наконец-то :)
  • Slack
  • Mattermost
  • Msteams
  • Victorops
  • PagerDuty
  • OpsGenie

Новые шаблоны и плагины

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

Теперь в Zabbix есть готовые шаблоны для:

  • Mysql
  • Nginx
  • Redis
  • Postgresql
  • Haproxy
  • Memcached
  • Elasticsearch
  • ClickHouse

И вообще, много существенных изменений в шаблонах. Если взять предыдущую версию 4.0, то по сравнению с ней, шаблоны просто не узнать. Надо заново в них разбираться. Это, конечно, большой плюс. Более широкий функционал доступен из коробки и не требует ручного допиливания, как было раньше. Но с другой стороны, в шаблонах стало труднее разбираться. Они реально стали сложными с кучей макросов и автообнаружений. Лично я еще нормально в них разберусь, так как давно zabbix знаю. А вот с нуля будет трудно вникать в суть.

Прочие улучшения

Ну и в завершении обзора нововведений Zabbix 5.0 список менее значительных изменений:

  • Наконец-то увеличен размер поля в базе данных для текста acknowledge. Теперь он может быть длиной 4096 символов, вместо прежних 256.
  • Добавлена поддержка libssh.
  • Latest data отображает данные, даже если в фильтре ничего не указано. Любопытно будет посмотреть, что именно отображать будет.
  • Увеличен размер ключа для item с 255 до 2048 символов.

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

Установка Zabbix 5 на Centos

Установка 5-й версии Zabbix стала еще проще, чем предыдущие. Я буду использовать web сервер nginx и базу данных Mysql. Первым делом вам необходимо установить и настроить сервер CentOS 8.

Затем нам нужно установить Mysql server. Я в этом качестве предпочитаю Percona Mysql Server, поэтому ставить буду его. Выбираю Percona в данном случае для того, чтобы потом можно было использовать их инструмент для бэкапа базы - XtraBackup.

Подключаем репозиторий Percona и ставим mysql сервер.

# dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# dnf module disable mysql
# percona-release setup ps80
# dnf install percona-server-server percona-toolkit percona-xtrabackup-80
# systemctl enable --now mysqld

Смотрим временный пароль root и с его помощью запускаем скрипт первоначальной настройки mysql.

# grep "temporary password" /var/log/mysqld.log
2020-05-13T16:42:14.161012Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: w2osim:.dgqD
# mysql_secure_installation

Задаем пароль root, соблюдая сложность пароля - не менее 8-ми символов, маленькие и заглавные буквы, цифры, спецсимволы. После того, как сделаем это, приступаем к установке непосредственно Zabbix.

Подключаем репозиторий Zabbix 5 для Centos 8.

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

Устанавливаем Zabbix Server 5, web интерфейс и agent.

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

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

# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '1qaz@WSX';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> exit

Импортируем структуру базы данных для Zabbix 5 из файла. Пароль используем 1qaz@WSX, который указали ранее.

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

Сразу хочу сделать важное замечание по поводу percona mysql server. При подключенных обоих репозиториях - заббикс и перкона, при обновлении системы через dnf update, вы получите ошибку.

 Problem: package zabbix-server-mysql-5.0.0-1.el8.x86_64 requires libmysqlclient.so.21(libmysqlclient_21.0)(64bit), but none of the providers can be installed
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.17-8.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.15-5.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.15-6.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.16-7.1.el8.x86_64
  - cannot install the best update candidate for package zabbix-server-mysql-5.0.0-1.el8.x86_64
  - cannot install the best update candidate for package percona-server-shared-8.0.17-8.1.el8.x86_64
  - package mysql-libs-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 is excluded
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Суть ее в том, что в зависимостях пакета zabbix-server-mysql стоит библиотека libmysqlclient.so.21, которая ставится с пакетом percona-server-shared. В репозитории перконы лежит более свежая версия этой библиотеки, чем хочет заббикс. В итоге он откатывает пакет на более старую версию и не дает его обновить. Проблем это не вызывает, просто нужно понимать этот нюанс и обновлять систему с ключом nobest. Он позволяет пропускать эту ошибку.

# dnf update --nobest
Last metadata expiration check: 0:00:51 ago on Thu 14 May 2020 11:59:50 AM MSK.
Dependencies resolved.

 Problem: package zabbix-server-mysql-5.0.0-1.el8.x86_64 requires libmysqlclient.so.21(libmysqlclient_21.0)(64bit), but none of the providers can be installed
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.17-8.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.15-5.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.15-6.1.el8.x86_64
  - cannot install both percona-server-shared-8.0.19-10.1.el8.x86_64 and percona-server-shared-8.0.16-7.1.el8.x86_64
  - cannot install the best update candidate for package zabbix-server-mysql-5.0.0-1.el8.x86_64
  - cannot install the best update candidate for package percona-server-shared-8.0.17-8.1.el8.x86_64
  - package mysql-libs-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 is excluded
============================================================================================================================================================
 Package                                   Architecture               Version                                Repository                                Size
============================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 percona-server-shared                     x86_64                     8.0.15-5.1.el8                         ps-80-release-x86_64                     912 k
 percona-server-shared                     x86_64                     8.0.15-6.1.el8                         ps-80-release-x86_64                     912 k
 percona-server-shared                     x86_64                     8.0.16-7.1.el8                         ps-80-release-x86_64                     1.2 M
 percona-server-shared                     x86_64                     8.0.19-10.1.el8                        ps-80-release-x86_64                     1.4 M

Transaction Summary
============================================================================================================================================================
Skip  4 Packages

Nothing to do.
Complete!

Идем далее. Открываем конфиг сервера заббикс - /etc/zabbix/zabbix_server.conf и указываем там параметры подключения к mysql. Там же рекомендую сразу изменить параметр таймаута, увеличив его до 20-ти секунд.

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1qaz@WSX
Timeout=20

Теперь можно запустить Zabbix Server 5.

# systemctl enable --now zabbix-server

Если вы не отключили SELinux в предварительной настройке Centos, то получите ошибку запуска. Текст ошибки можно посмотреть в системном логе /var/log/messages.

May 13 19:48:24 centos8 zabbix_server[4069]: zabbix_server [4069]: Cannot initialize IPC services: Cannot access path "/var/run/zabbix": [13] Permission denied.
May 13 19:48:24 centos8 setroubleshoot[4061]: SELinux is preventing /usr/sbin/zabbix_server_mysql from using the dac_override capability. For complete SELinux messages run: sealert -l feffa91e-3ba9-4dfd-a95e-0fc81d5e6bc0
May 13 19:48:24 centos8 platform-python[4061]: SELinux is preventing /usr/sbin/zabbix_server_mysql from using the dac_override capability.#012#012*****  Plugin dac_override (91.4 confidence) suggests   **********************#012#012If you want to help identify if domain needs this access or you have a file with the wrong permissions on your system#012Then turn on full auditing to get path information about the offending file and generate the error again.#012Do#012#012Turn on full auditing#012# auditctl -w /etc/shadow -p w#012Try to recreate AVC. Then execute#012# ausearch -m avc -ts recent#012If you see PATH record check ownership/permissions on file, and fix it,#012otherwise report as a bugzilla.#012#012*****  Plugin catchall (9.59 confidence) suggests   **************************#012#012If you believe that zabbix_server_mysql should have the dac_override capability by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'zabbix_server' --raw | audit2allow -M my-zabbixserver#012# semodule -X 300 -i my-zabbixserver.pp#012

Если вы не планируете использовать SELinux, то просто отключите его и пропустите следующий раздел. Если же хотите использовать, то настраиваем далее.

Настройка SELinux для zabbix server

Для того, чтобы настроить работу zabbix сервера с SELinux, скачаем один готовый модуль и один создадим свой. Начнем с готового.

# 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 с включенным selinux.

# ausearch -c 'zabbix_server' --raw | audit2allow -M my-zabbixserver
# semodule -X 300 -i my-zabbixserver.pp

Запускаем zabbix server еще раз.

# systemctl start zabbix-server

После этих действий zabbix server должен нормально работать с включенным selinux. Убедиться в этом можно проверив лог заббикс сервера - /var/log/zabbix/.

# cat /var/log/zabbix/zabbix_server.log
Установка Zabbix 5 на Centos

Теперь подготовим web сервер. Для этого открываем конфиг nginx /etc/nginx/conf.d/zabbix.conf и устанавливаем там 2 параметра:

listen 80;
server_name example.com;

Вместо example.com укажите свое имя виртуального хоста для zabbix сервера. Если вы хотите подключаться не только по доменному имени, но и по ip адресу к web интерфейсу zabbix, вам необходимо в помимо listen 80, добавить директиву default_server.

listen 80 default_server;
server_name example.com;

Одновременно с этим вы должны удалить эту же директиву в основном конфиге nginx - /etc/nginx/nginx.conf. Вместо:

listen 80 default_server;
listen [::]:80 default_server;

Сделать просто:

listen 80;
listen [::]:80;

И в завершении редактируем конфиг php-fpm - /etc/php-fpm.d/zabbix.conf, указывая свой часовой пояс.

php_value[date.timezone] = Europe/Moscow

Запускаем компоненты web сервера.

# systemctl enable --now nginx php-fpm

Теперь можно пройти в браузере по ip адресу http://10.20.1.23 и откроется первая страница установщика Zabbix Server 5.

Zabbix Installer

Если вы видите ошибку подключения к web серверу, то скорее всего у вас firewall блокирует соединения. В Centos 8 по умолчанию включен firewalld. Если он вам не нужен и вы не хотите его настраивать, то просто отключите.

# systemctl stop firewalld
# systemctl disable firewalld

Не хотите отключать - можно просто открыть необходимые для работы веб сервера порты - 80 и 443, а так же 10051 для самого zabbix server.

# firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp --add-port=10051/tcp
# firewall-cmd --reload

Если же вы, как и я, предпочитаете вместо firewalld использовать iptables, читайте мою подробную статью на эту тему - настройка iptables. В целом, по предварительной подготовке сервера все. Ниже пойдет то же самое для Ubuntu / Debian. А в следующем разделе продолжение установки zabbix server через web интерфейс.

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

Установим сервер мониторинга Zabbix 5 на Ubuntu или Debian. Процесс будет примерно одинаковый, поэтому опишу его в одном общем подразделе. Если у вас еще нет сервера, то воспользуйтесь моими статьями по установке и настройке Debian 10.

Подключаем необходимые репозитории. Debian 10:

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

Ubuntu 18:

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

Ubuntu 20:

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

Устанавливаем Zabbix Server 5 и некоторые его компоненты, а так же mariadb в качестве mysql сервера.

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

Задаем пароль root для mysql с помощью скрипта предварительной настройки.

# mysql_secure_installation

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

mysql -uroot -p
Enter password:
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by '1qaz@WSX';
> exit

Импортируем схему базы и начальные данные. Пароль вводим тот же самый, что и на предыдущем шаге - 1qaz@WSX.

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

Далее открываем конфиг сервера заббикс — /etc/zabbix/zabbix_server.conf и указываем там параметры подключения к mysql. Сразу же рекомендую изменить параметр таймаута, увеличив его до 20-ти секунд.

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1qaz@WSX
Timeout=20

Теперь можно запустить Zabbix Server 5.

# systemctl enable --now zabbix-server

Убедиться в том, что сервер нормально запустился, можно проверив лог заббикс сервера — /var/log/zabbix/.

# cat /var/log/zabbix/zabbix_server.log
Установка Zabbix 5 на Debian / Ubuntu

Теперь подготовим web сервер. Для этого открываем конфиг nginx /etc/zabbix/nginx.conf и устанавливаем там 2 параметра:

listen 80;
server_name example.com;

Вместо example.com укажите свое имя виртуального хоста для zabbix сервера. Если вы хотите подключаться не только по доменному имени, но и по ip адресу к web интерфейсу zabbix, вам необходимо в помимо listen 80, добавить директиву default_server.

listen 80 default_server;
server_name example.com;

Одновременно с этим вы должны удалить эту же директиву в основном конфиге nginx — /etc/nginx/sites-available/default. Вместо:

listen 80 default_server;
listen [::]:80 default_server;

Сделать просто:

listen 80;
listen [::]:80;

И в завершении редактируем конфиг php-fpm — /etc/zabbix/php-fpm.conf, указывая свой часовой пояс.

php_value[date.timezone] = Europe/Moscow

Запускаем компоненты web сервера.

# systemctl restart nginx php7.3-fpm
# systemctl enable nginx php7.3-fpm
Обращаю внимание на то, что версия php может отличаться в зависимости от операционной системы и версии в базовых репозиториях. В общем случае она будет либо php7.3-fpm, либо php7.2-fpm, либо php7.4-fpm.

Теперь можно пройти в браузере по ip адресу http://10.20.1.23 и откроется первая страница установщика Zabbix Server 5.

Zabbix web installer

Если вы видите ошибку подключения к web серверу, то скорее всего у вас firewall блокирует соединения. В зависимости от системы и образа, из которого вы устанавливали ее (у разных хостеров они разные) по умолчанию может быть включен либо iptables, либо ufw. Если они вам не нужны и вы не хотите их настраивать, то просто отключите.

# systemctl stop iptables
# systemctl disable iptables
# ufw disable

Не хотите отключать iptables - можно просто открыть необходимые для работы веб сервера порты — 80 и 443и 10051 для самого заббикс сервера. Как это сделать, читайте мою подробную статью на эту тему — настройка iptables.

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

Настройка Zabbix Frontend

Итак, продолжаем установку Zabbix 5. На следующей странице установщика вы увидите список требований к веб серверу. У вас должно быть все в статусе ОК, так как подходящая конфигурация установлена вместе с пакетом.

Проверка системных требований

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

Настройка подключения к базе данных mysql

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

Установка Zabbix 5 успешно завершена

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

Авторизация в zabbix

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

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

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

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 или Email HTML.

Настройка email уведомлений

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

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

Здесь же можете протестировать выбранный способ отправки.

Тестирование настроек почты

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

Адрес для отправки оповещений zabbix
Типы оповещений пользователя

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

Настройка действий на события

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

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

Так же zabbix умеет звонить через asterisk для оповещения о событиях.

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

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

Изменение шаблона оповещения в zabbix

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

Настройка шаблона сообщений в zabbix

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

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

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

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

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

Удивительно, но некоторых вещей, которые я отключал в 4-й версии, в 5-й уже не стало. Например, убрали триггер Version of zabbix_agent(d) was changed on {HOST.NAME}, который я всегда отключал. И все остальные мои изменения тоже теперь не актуальны. Вот это поработали разработчики. Теперь нужно время, чтобы изучить обновленные шаблоны, чтобы понять, нужно ли их дорабатывать, как прежде.

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

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

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

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

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

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

# dnf install zabbix-agent

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

# apt install zabbix-agent

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

Server=10.20.1.23
ServerActive=10.20.1.23
Hostname=srv10
Timeout=10

srv10 - имя вашего узла мониторинга, которое будет указано на сервере zabbix. Timeout рекомендую увеличивать для удобства. По умолчанию он всего 3 секунды и в некоторых проверках этого не хватает.

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

# systemctl enable --now zabbix-agent

Проверяем лог файл /var/log/zabbix/zabbix_agentd.log.

# cat /var/log/zabbix/zabbix_agentd.log

8918:20200514:172338.583 Got signal [signal:15(SIGTERM),sender_pid:9110,sender_uid:989,reason:0]. Exiting …
8918:20200514:172338.584 Zabbix Agent stopped. Zabbix 5.0.0 (revision 9665d62db0).
9116:20200514:172338.595 Starting Zabbix Agent [Zabbix server]. Zabbix 5.0.0 (revision 9665d62db0).
9116:20200514:172338.595 **** Enabled features ****
9116:20200514:172338.595 IPv6 support: YES
9116:20200514:172338.595 TLS support: YES
9116:20200514:172338.595
9116:20200514:172338.595 using configuration file: /etc/zabbix/zabbix_agentd.conf
9116:20200514:172338.595 agent #0 started [main process]
9117:20200514:172338.596 agent #1 started [collector]
9118:20200514:172338.596 agent #2 started [listener #1]
9121:20200514:172338.596 agent #5 started [active checks #1]
9119:20200514:172338.597 agent #3 started [listener #2]
9120:20200514:172338.598 agent #4 started [listener #3]
Установка zabbix Agent на Centos, Debian, Ubuntu

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

Просмотр метрик в zabbix

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

# systemctl stop zabbix-agent

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

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

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

Текст уведомления о событии в zabbix server

Если использовать стандартный шаблон, этой информации не будет.

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

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

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

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

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

На момент написания статьи еще не было инсталлятора для 5-го агента, но он наверняка появится в ближайшее время. Покажу на примере агента 4.4, который полностью совместим с более свежим сервером. Запускаем msi пакет и доходим до этапа, где надо указать адрес сервера и имя хоста. Делаем это.

Инсталлятор Zabbix Agent

Все остальное оставляем без изменений.

Не забываем создать разрешающее правило в Брандмауэре, если он у вас включен. Для этого идем в Панель управления\Система и безопасность\Брандмауэр Windows — Дополнительные параметры — Правило для входящих подключений — Создать правило.

  • Тип правила: Для порта;
  • Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
  • Действие: Разрешить подключение;
  • Профиль (ставим галочки): Доменный, Частный, Публичный;
  • Имя: Zabbix Agent;

Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же Hostname, что мы указали во время установки агента. Для этого идем в web панель, открываем раздел Настройка -> Узлы сети и жмем Создать узел сети.

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

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

Параметры нового хоста

Переходим на вкладку Шаблоны и выбираем там шаблон Template OS Windows by Zabbix agent.

Подключение шаблона мониторинга

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

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

Настройка шифрованного подключения

Для полноты картины расскажу об еще одном важном моменте. Если данные от zabbix агентов поступают на сервер через интернет. И при этом не используется шифрованный vpn канал, я всегда настраиваю шифрованную передачу данных. Для этого использую наиболее простой вариант шифрования с применением pre-shared ключей.

Покажу на конкретном примере, как настроить подключение zabbix agent к серверу с использованием шифрования на основе pre-shared ключей. В качестве хоста будет выступать обычный linux сервер. Идем в его консоль и формируем 256-битный pre-shared key.

# openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk

В конфигурацию zabbix_agent.conf добавляем следующие параметры.

TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
TLSPSKIdentity=PSK 001

В свойствах хоста на zabbix server в отдельной вкладке Шифрование, настраиваем PSK ключ.

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

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

Если все сделали правильно, то в информации о хосте на сервере мониторинга будет пометка о том, что соединение с агентом зашифровано.

Статус шифрования

Видео

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом установка и базовая настройка сервера мониторинга zabbix 5.0 завершена. Советы, замечания, исправления прошу оставлять в комментариях. Материал получился объемный и содержательный. Вполне мог где-то ошибиться.

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

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

Мониторинг в Zabbix:

Остальные материалы на тему мониторинга с помощью Zabbix смотрите в отдельном разделе.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

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

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

327 комментариев

  1. Здравствуй, уважаемый Владимир! Премного благодарен тебе за твои труды за создание и наполнение этого сайта! Благодаря ему далеких 6 лет назад я открыл себя такое направление в системном администрировании, как мониторинг, и познакомился с прекрасной системой Zabbix! Долгое время я подымал Zabbix исключительно по инструкциям из этого сайта, но со временем многое изменилось (снят с поддержки CentOS, версии как самого Zabbix, так и версий Debian и Ubuntu), и, увы, эти инструкции уже утратили актуальность. Нет ли у тебя в планах написать статью по актуальным версиям средств для внедрения Zabbix-сервера?

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

      • Ну что ж, с одной стороны жаль, но с другой - любви и процветания новой семье!) Спасибо за ответ!

  2. Добрый день! Уже 4 центоса переставил, весь инет облазил ничего не нашел.
    apt update не работает, пишет -bash: apt: команда не найдена
    yum install apt ничего не находит в репозитариях. Что делать?

    • Apt это пакетный менеджер дистрибутивов Debian и Ubuntu. То есть аналог yum и dnf.

      • Ну а что сделать, чтобы команда apt update заработала без ошибки: -bash: apt: команда не найдена ??

        • у тебя centos, там файловая система другая, ищи натройку для centos'a а не для debian

          ps: У centos не apt а dnf

      • Просто у вас Инструкция к Центосу же по установке Забикса, apt update это тоже самое что будет yum update?

        • Аноним

          Как удалить забикс агента с хостовой машины (винда 10) и заново установить? И при попытки зайти на сайт забикса с виртуал бокс(линукс) выходит белый экран, вместо авторизации

  3. Алексей

    Добрый день. Вопрос по интерфейсу, ответа пока не нашёл. Суть: как найти на какой карте находится устройство? Аналог "Locate host on map" в Nagios.

    • Я не видел в Zabbix такой функционал. Мне кажется, его нет.

    • Александр

      Можно, но сложно. У нас реализовано через Python + flask.
      Очень удобно.

      Возможно подготовлю статью на эту тему - как раз надо переносить данный функционал с 4-ой версии на 5-ю.

  4. скайуокер

    Здравствуйте! Как установить Zabbix агент на компьютер из другой сеть? Я сделал проброс порта, указал в агенте белый IP. А что делать на сервере?

  5. Виталий

    День добрый. Установил zabbix 6 + оповещение в телеграмм. Но что то не могу разобраться с разделом "Инвентаризация". Надо заморочиться и написать самому макросы для определения этих характеристик или как?

  6. Сергей

    Добрый день.
    Долго откладывал обновление, поэтому обновлять придется все сразу.
    Есть Cent OS 8 c Zabbix 5.2.7.
    Решил переехать на Debian 11 с обновление до 8.
    Этапы поднимаю Debian 10, ставлю Zabbix 5.0 (Или можно 5.2?) Переношу сервер. Далее обновляю уже OS и Zabbix до актуальных. Вроде правильно.
    Но возникла проблема при установке zabbix-frontend-php Zabbix 5.0, ставится Apache, а у меня NGINX.
    Пробовал послe установки zabbix-frontend-php отключать Apache, так как если не отключить, то они 80 порт начинают делить и NGINX не стартует.
    Но в итоге вроде все запущено и NGINX и Zabbix. Но первоначальное конфигурирование Zabbix не появляется. Высвечивается стартовая страница, причем от Apache, который остановлен.
    Всего скорее, что то упускаю, но не могу понять что?.

    • По переносу у меня есть отдельная статья - https://serveradmin.ru/pereezd-ili-perenos-zabbix-server/
      Там подробнее вопрос рассматривается.

      • Сергей

        Эту статью я конечно же прочитал, но во первых до самого переноса пока дело не дошло. Так как не ставиться нормально новая версия из-за Apache. А во вторых там не совсем удачный пример приведен в плане версионности.
        "Если переносите Zabbix Server 5.0, то на новый сервер устанавливаете тоже 5.0" - вот здесь.
        Не понятно достаточно мажорной версии такой же или что бы и минорная тоже совпадала.

        • Сергей

          Если я устанавливаю жестко по вашему мануалу то получаю ошибку при старте NGINX

          Jul 06 22:40:08 zabbix-test nginx[17267]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          Jul 06 22:40:08 zabbix-test nginx[17267]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
          Jul 06 22:40:08 zabbix-test nginx[17267]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          Jul 06 22:40:08 zabbix-test nginx[17267]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
          Jul 06 22:40:09 zabbix-test nginx[17267]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          Jul 06 22:40:09 zabbix-test nginx[17267]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
          Jul 06 22:40:09 zabbix-test nginx[17267]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          Jul 06 22:40:09 zabbix-test nginx[17267]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
          Jul 06 22:40:10 zabbix-test nginx[17267]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
          Jul 06 22:40:10 zabbix-test nginx[17267]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
          Jul 06 22:40:10 zabbix-test nginx[17267]: nginx: [emerg] still could not bind()

          • Нужно некоторое понимание тех вещей, которые вы делаете. В ошибке явно указано, что порт 80 уже занят каким-то другим приложением. Скорее всего apache. Выключите его и nginx запустится.

  7. Создали юзеру новую панель. Но как спрятать dashboard "global view" от него?

  8. Владимир, добрый день.
    Подскажите про совместимость версий агентов zabbix с версиями сервера. Если будет установлена 6-ая версия LTS сервера, будет ли с ним работать 5-ая версия агента которая была установлена ранее на другом сервере (с которого собираем метрики). В документации на старые версии нашёл ответ, что вроде бы совместимость обратная есть. Но это теория, а как на практике, может нюансы есть какие-нибудь? У вас лично как происходит, вы обновляете агенты на хостах после обновления версий сервера или по мере выхода новых версий агентов?

    • На практике я проблем никогда не встречал. Новые версии сервера поддерживают все старые агенты. Версия 6.0 поддерживает даже агента 2.4.

      • Понял Вас. Спасибо! Хотел ещё поинтересоваться про ваш опыт - вы обновляете планово прежние версии сервера, например 5 LTS на 6 LTS у заказчиков? Или где установлена и работает версия 5, то она (например, если нет проблем с функционалом) так и остаётся там, а все новые инсталляции идут уже новых версий на момент установки?

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

  9. Михаил

    Просто сборная солянка из других статей. Если выполнять всё команды так, как в статье - будут ошибки, которые придется траблшутить.
    Например:
    При смене часового пояса в конфиге /etc/zabbix/php-fpm.conf нужно перезагрузить php, указав версию. На момент написания этого комментария это 7.4, но о версиях php тоже не слова. Всё приходится самому дорабатывать.
    Ещё при подключении к Zabbix, параметр Zabbix server is running = No по умолчанию, но у автора он нормально работает.
    Хотя бы пробуйте повторить то, что написали.

    • Советую обратить внимание на дату релиза Zabbix 5.0 LTS и подумать, могло ли что-то за это время измениться, прежде чем тут обвинения и претензии предъявлять. Для таких тугодумов я даже видео записал, где наглядно видно, что копипаст из статьи приводит к положительному результату на момент её написания.

  10. Василий

    Большое спасибо за такую статью! Все отлично работает. Подскажите пожалуйста как настроить чтобы zabbix открывался по протоколу https? Создал специально для мониторинга поддомен, для него установлен сертификат. Домен и заббикс находятся на разных серверах. И вот по http все открывается как нужно а по https доступа нет - "ERR_CONNECTION_REFUSED".

    • А веб сервер какой используете? По сути веб интерфейс Zabbix это обычный веб сайт. Все инструкции по настройке https на сайте будут актуальны и для него. Никаких нюансов и отличий нет.

  11. Здравствуйте! Подскажите, возможно исправить? Ошибка файла конфигурации
    Тип БД не задан.

  12. Добрый день. Подскажите пожалуйста. Не могу настроить мониторинг жестких дисков. Агент стоит и на винде и на лине. В виндузовых логах пишет следующее: 2021/12/23 13:52:08.504793 check 'vfs.fs.size[“c:”,free]' is not supported: The system cannot find the path specified.
    2021/12/23 13:52:09.503413 check 'vfs.fs.size[“c:”,pfree]' is not supported: The system cannot find the path specified.
    2021/12/23 13:52:10.501721 check 'vfs.fs.size[“c:”,total]' is not supported: The system cannot find the path specified.
    2021/12/23 13:52:11.501188 check 'vfs.fs.size[“c:”,used]' is not supported: The system cannot find the path specified.
    2021/12/23 13:52:17.501008 check 'vfs.fs.size[“С:\”,free]' is not supported: The filename, directory name, or volume label syntax is incorrect.
    2021/12/23 13:52:19.500997 check 'vfs.fs.size[fs,]' is not supported: Invalid second parameter.
    2021/12/23 13:52:21.530542 check 'vfs.fs.size[“c:\”,free]' is not supported: The filename, directory name, or volume label syntax is incorrect.
    2021/12/23 13:52:22.502140 check 'vfs.fs.size[“%PATH%”,free]' is not supported: The system cannot find the path specified.
    2021/12/23 13:52:23.501491 check 'vfs.fs.size[“d:”,pfree]' is not supported: The system cannot find the path specified.
    Не пойму, толи запрос не правильно построил, то ли сервер не может принять нормально инфу от агента. На линуксе лог пустой, но инфа на сервер не приходит. Хост введен правильно, ip-сервера тоже. В ip - tables доступ по порту разрешил.

  13. Добрый день, подскажите на какой БД в данной момент лучше развернуть Zabbix? форках MySQL или PostgreSQL? Что предпочтительнее с вашей точки зрения.

  14. Добрый вечер. Вопрос касается настройки Zabbix: есть камеры Dahua облачные. Все находятся в разных местах за nat но с белыми ip. Хочу мониторить их состояние подключения. Zabbix server тоже удаленный... Единственный способ подобрал - это net.tcp.service. нашел порт камеры который отвечает на запрос, пробросил порт на роутере за которым камера находится и вроде все работает. Но вот загвоздка. За роутером с nat может находиться не одна камера и таких подключений много. Получается, что для для каждой камеры ручками приходится создавать узел сети и ручками прописывать 'элемент данных (IP и порт). Можно ли создать шаблон на базе net.tcp.service так чтоб он вытаскивал IP адрес и порт указанный в настройках узла сети. Есть ли более легкий способ мониторить подключения камер за nat (icmp не работает). За ранее спасибо!

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

      • Я сделал вот так: в элементе данных ключ net.tcp.service[tcp,{HOST.IP},456]. Host.IP он подтягивает, а вот на {HOST.PORT} ругается что элемент данных, что триггер. почему не пойму. Пробовал через макрос, но там нужно присваивать каждому порту свой макрос и все равно нужно в ключе руками менять макрос с нужным портом. Дело в том что таких узлов сети около 60. Настроить в ручную можно, но если пойдут какие либо изменения - это будет сложно отслеживать перенастраивать. Возможно я что-то не правильно реализую, поправьте меня пожалуйста

    • Можно ли УК становить zabbix на убунту? А мониторить с винды через браузер? Парк арм все с виндой

  15. Андрей

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

  16. Здравствуйте. Владимир, подскажите пожалуйста - какие параметры вы выставляете в конфиге zabbix-сервера. Интересуют самые распространённые - StartHTTPPollers, StartPingers, CacheSize, StartPollers, StartPollersUnreachable.
    Также интересует, какое значение max_connections у вас в настройках mysql. (По умолчанию оно вроде бы равно 100).
    Я понимаю, что все эти параметры сильно зависят от того, что/сколько/и где мониторится, какое железо, интервалы опросов и т.д.
    У вас много инсталляций, предполагаю, есть с чем сравнивать. Интересуют просто средние значения, которые может быть вы выкручиваете сразу после установки/настройки/тюнинга системы мониторинга.

    • А тут нет средних значений. Стартую обычно на дефолтных параметрах, потом изменяю их под текущие нужды. Zabbix Server сам себя мониторит и оповестит о том, что каких-то поллеров не хватает.

      • Спасибо за ответ! Есть ситуации, когда пропадает связь с сервером zabbix, тогда происходит так (оно и логично, в принципе, раз связи то нет), что zabbix выводит на дашборд все тригеры от сетевых устройств до которых не смог достучаться в заданный интервал. За раз, в моём случае, может быть 30-40 узлов. В это время, если потом просматривать график утилизации полеров, видно что некоторые заняты под 100%. (Можно конечно это поведение обработать через зависимости, но не всегда получается их правильно найти или указать. Обычно когда это сразу можно сделать, я делаю).
        Хотел уточнить - вот в этом, описанном выше случае, когда недоступно сразу много устройств из-за потери связи с ними, есть или нет смысл выкручивать кол-во полеров в конфиге (чтобы их всегда/на всё хватало, даже на время аварии имею ввиде) или на это можно, скажем так, не "обращать внимание", т.к. ситуации подобные возникает редко и после восстановления связи загрузка резко падает до 20-30% даже не дефолтных значениях. Как считаете?

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

          Второй вариант увеличить количество поллеров, чтобы они более синхронно работали, когда куча недоступных узлов появляется. В это время на них нагрузка значительно возрастает, так как они висят и ждут таймаутов. Если доступность узлов просто пингом проверяется, то нет проблем сделать штук 5-10 поллеров в зависимости от количества хостов. Если поллеров не хватает, то когда все узлы упадут, сработает триггер самого zabbix server о том, что поллеры загружены более чем на 75%.

  17. Владимир, здравствуйте,
    подскажите пожалуйста - как обновить версию zabbix с v. 5.0.3 до 5.0.17 (т.е. до последней версии, в рамках одной ветки LTS)? Уверен, что тоже есть нюансы.

    • Никаких нюансов нет. Подобное обновление выполняется автоматически пакетным менеджером системы при стандартном обновлении.

  18. Алексей

    Владимир.
    Предлагаю скопипастить статью и с небольшими правками сделать ее для Debian11. Т.к. по этой не настроить. Проверил на себе)))
    Отличие только в этой строке.

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

    Правда Я еще отдельно устанавливал MariaDB и обновлял до актуальной, т.к. у Корбины она 5 версия. Не знаю на сколько это повлияло на работоспособность.
    Переделывать лень)))

    • Скоро выходит 6-я версия. Обновление будет уже в новой статье. Не вижу смысла обновлять эту.

  19. Подскажите, можно ли открыть доступ в локальной сети к zabbix wmware, если нет доступа к маршрутизатору? Спасибо!

    • Не понял вопроса.

      • Из локальной сети не пингуется виртуальная машина и соответственно к заббиксу нет доступа.

        • А вопрос то в чём? Zabbix работает по протоколу tcp/ip. Должна быть сетевая связность между узлами и сервером, чтобы всё работало. Это вопрос не в плоскости работы самого Zabbix.

          • Да, извиняюсь наверно не в ту тему написал. На компе с ВМ всё работает.

            • У заббикса каких-то нюансов в работе с сетью нет. Он ведёт себя как обычное приложение, работающее по сети. Нужен просто доступ хотя бы от хостов к серверу. От сервера к хостам не обязательно.

  20. Заметки на полях: по create.sql.gz
    необходимо поставить пакет
    sudo apt -y install zabbix-sql-scripts

    тогда сработает
    sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p'zabbixDBpass' zabbix

    • Все верно, спасибо. Ниже в комментариях уже упоминали об этом. В версии 5.4 вынесли этот файл в отдельный пакет.

  21. ● mariadb.service - MariaDB 10.3.29 database server
    Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Mon 2021-10-04 11:40:06 MSK; 1min 58s ago
    Docs: man:mysqld(8)
    https://mariadb.com/kb/en/library/systemd/
    Process: 5793 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 5794 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 5796 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0
    Process: 5804 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
    Main PID: 5804 (code=exited, status=1/FAILURE)
    Status: "MariaDB server is down"

    окт 04 11:40:04 debian mysqld[5804]: 2021-10-04 11:40:04 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
    окт 04 11:40:05 debian mysqld[5804]: 2021-10-04 11:40:05 0 [Note] InnoDB: Starting shutdown...
    окт 04 11:40:06 debian mysqld[5804]: 2021-10-04 11:40:06 0 [ERROR] Plugin 'InnoDB' init function returned error.
    окт 04 11:40:06 debian mysqld[5804]: 2021-10-04 11:40:06 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    окт 04 11:40:06 debian mysqld[5804]: 2021-10-04 11:40:06 0 [Note] Plugin 'FEEDBACK' is disabled.
    окт 04 11:40:06 debian mysqld[5804]: 2021-10-04 11:40:06 0 [ERROR] Unknown/unsupported storage engine: InnoDB
    окт 04 11:40:06 debian mysqld[5804]: 2021-10-04 11:40:06 0 [ERROR] Aborting
    окт 04 11:40:06 debian systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
    окт 04 11:40:06 debian systemd[1]: mariadb.service: Failed with result 'exit-code'.
    окт 04 11:40:06 debian systemd[1]: Failed to start MariaDB 10.3.29 database server.

    Здравствуйте! Всё работало, а тут такую ошибку выдало.

    • У вас тут какие-то проблемы с базой данных. Нужно внимательно смотреть лог mariadb и разбираться, что с ней. На вид всё не очень хорошо. Автовосстановление базы не отработало. Возможно было аварийное отключение и в базе ошибки теперь. Надо разбираться.

      • Oct 4 15:18:34 debian systemd[1]: packagekit.service: Main process exited, code=killed, status=15/TERM x
        xOct 4 15:18:34 debian systemd[1]: packagekit.service: Succeeded. x
        xOct 4 15:19:02 debian systemd[1]: Starting MariaDB 10.3.29 database server... x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] /usr/sbin/mysqld (mysqld 10.3.29-MariaDB-0+deb10u1) starting as process 7591 ... x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Using Linux native AIO x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Uses event mutexes x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Number of pools: 1 x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Using SSE2 crc32 instructions x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: Completed initialization of buffer pool x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [ERROR] InnoDB: Missing MLOG_CHECKPOINT at 1694173856 between the checkpoint 1694173856 and the end 1694173816. x
        xOct 4 15:19:02 debian mysqld[7591]: 2021-10-04 15:19:02 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error x
        xOct 4 15:19:03 debian mysqld[7591]: 2021-10-04 15:19:03 0 [Note] InnoDB: Starting shutdown... x
        xOct 4 15:19:04 debian mysqld[7591]: 2021-10-04 15:19:04 0 [ERROR] Plugin 'InnoDB' init function returned error. x
        xOct 4 15:19:04 debian mysqld[7591]: 2021-10-04 15:19:04 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. x
        xOct 4 15:19:04 debian mysqld[7591]: 2021-10-04 15:19:04 0 [Note] Plugin 'FEEDBACK' is disabled. x
        xOct 4 15:19:04 debian mysqld[7591]: 2021-10-04 15:19:04 0 [ERROR] Unknown/unsupported storage engine: InnoDB x
        xOct 4 15:19:04 debian mysqld[7591]: 2021-10-04 15:19:04 0 [ERROR] Aborting x
        xOct 4 15:19:04 debian systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE x
        xOct 4 15:19:04 debian systemd[1]: mariadb.service: Failed with result 'exit-code'. x
        xOct 4 15:19:04 debian systemd[1]: Failed to start MariaDB 10.3.29 database server.

        Такое пишет в логах.

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

    • Обновляем систему
      # yum update

      nano /etc/sysconfig/selinux
      SELINUX=disabled
      # setenforce 0

      # yum install network-scripts
      nano /etc/sysconfig/network-scripts/ifcfg-enp0s3
      TYPE=Ethernet
      PROXY_METHOD=none
      BROWSER_ONLY=no
      BOOTPROTO=dhcp
      DEFROUTE=yes
      IPV4_FAILURE_FATAL=no
      IPV6INIT=yes
      IPV6_AUTOCONF=yes
      IPV6_DEFROUTE=yes
      IPV6_FAILURE_FATAL=no
      NAME=enp0s3
      UUID=ec97ed37-3705-414a-887c-b97fbe9add09
      DEVICE=enp0s3
      ONBOOT=no

      Установка Zabbix 5 на Centos
      # dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
      Установлен:
      percona-release-1.0-27.noarch
      # dnf module disable mysql
      Отключение модулей:
      mysql
      # percona-release setup ps80
      * Disabling all Percona Repositories
      On Red Hat 8 systems it is needed to disable the following DNF module(s): mysql to install Percona-Server
      Do you want to disable it? [y/N] y
      # dnf install percona-server-server percona-toolkit percona-xtrabackup-80
      установлено
      # systemctl enable --now mysqld

      # grep "temporary password" /var/log/mysqld.log
      2020-05-13T16:42:14.161012Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: N;3zuy3a%Fal

      # mysql_secure_installation
      New password:
      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
      By default, a MySQL installation has an anonymous user,
      allowing anyone to log into MySQL without having to have
      a user account created for them. This is intended only for
      testing, and to make the installation go a bit smoother.
      You should remove them before moving into a production
      environment.
      Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
      Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
      Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
      Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
      Success.

      Подключаем репозиторий Zabbix 5 для Centos 8.,
      # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
      Обновление / установка...
      1:zabbix-release-5.0-1.el8

      Устанавливаем Zabbix Server 5, web интерфейс и agent
      # dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent
      Выполнено!

      Создадим теперь пользователя и базу данных mysql для zabbix.
      # mysql -uroot -p
      Enter password: 3!5AfGJ77
      mysql> create database zabbix character set utf8 collate utf8_bin;
      Query OK, 1 row affected, 2 warnings (0,04 sec)
      mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '1qaz@WSX';
      Query OK, 0 rows affected (0,01 sec)
      mysql> grant all privileges on zabbix.* to zabbix@localhost;
      Query OK, 0 rows affected (0,01 sec)
      mysql> exit

      Импортируем структуру базы данных для Zabbix 5 из файла. Пароль используем 1qaz@WSX, который указали ранее.
      Enter password:

      # dnf update --nobest
      Последняя проверка окончания срока действия метаданных: 0:04:32 назад, Ср 01 сен 2021 13:14:45.
      Зависимости разрешены.
      Отсутствуют действия для выполнения
      Выполнено!

      Открываем конфиг сервера заббикс - nano /etc/zabbix/zabbix_server.conf (добавил в самый конец, хотя в настройках в разных местах указаны отдельные параметры)
      DBHost=localhost
      DBName=zabbix
      DBUser=zabbix
      DBPassword=1qaz@WSX
      Timeout=20

      Теперь можно запустить Zabbix Server 5.
      # systemctl enable --now zabbix-server
      Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.

      Далее я не вкл Селлинукс

      После этих действий zabbix server должен нормально работать с включенным selinux. Убедиться в этом можно проверив лог заббикс сервера - /var/log/zabbix/.
      # cat /var/log/zabbix/zabbix_server.log

      Теперь подготовим web сервер. Для этого открываем конфиг nginx /etc/nginx/conf.d/zabbix.conf и устанавливаем там 2 параметра:
      nano /etc/nginx/conf.d/zabbix.conf
      listen 80;
      server_name example.com;

      Вместо example.com укажите свое имя виртуального хоста для zabbix сервера. Если вы хотите подключаться не только по доменному имени, но и по ip адресу к web интерфейсу zabbix, вам необходимо в помимо listen 80, добавить директиву default_server.
      listen 80 default_server;
      server_name example.com;

      Одновременно с этим вы должны удалить эту же директиву в основном конфиге nginx - /etc/nginx/nginx.conf. Вместо:
      nano /etc/nginx/nginx.conf
      listen 80 default_server;
      listen [::]:80 default_server;
      Сделать просто:
      listen 80;
      listen [::]:80;

      И в завершении редактируем конфиг php-fpm - /etc/php-fpm.d/zabbix.conf, указывая свой часовой пояс.
      php_value[date.timezone] = Europe/Moscow
      Запускаем компоненты web сервера.
      # systemctl enable --now nginx php-fpm
      Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
      Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
      Job for nginx.service failed because the control process exited with error code.
      See "systemctl status nginx.service" and "journalctl -xe" for details.

      В Centos 8 по умолчанию включен firewalld. Если он вам не нужен и вы не хотите его настраивать, то просто отключите.
      # systemctl stop firewalld
      # systemctl disable firewalld
      Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
      Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

    • Есть видео, можно проверить себя. Какая ошибка в веб интерфейсе?

      • просто этого сайта не существует. сейчас снёс и устанавливаю по новой

      • странно, после пункта Запускаем компоненты web сервера и отключения фаервола, после перезагрузки сервака в ифконфиг вижу такое:

        enp0s3: flags=4163 mtu 1500
        ether 08:00-мак адрес txqueuelen 1000 (Ethernet)
        RX packets 683 bytes 52375 (51/1/ KiB)
        RX errors 0 dropped 24 overruns 0 frame 0
        TX packets 0 bytes 0 (0.0 B)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

        Не удается получить доступ к сайту
        Превышено время ожидания ответа от сайта 192.168.1.251.

  23. Добрый день всем.
    Подскажите пожалуйста, сделал все четко по инструкции, 2 раза
    Но каждый раз в вэб интерфейсе при настройке выдает ошибку: Unable to select configuration.

    В чем может быть проблема, подскажите пожалуйста

    • тоже не получается вэбморду открыть. получилось исправить? может у нас общая проблема

  24. добрый день. подскажите, не стартует apache
    apache2.service - The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2021-08-27 16:15:08 EEST; 35s ago
    Docs: https://httpd.apache.org/docs/2.4/
    Process: 5693 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

    aug 27 16:15:08 zabbix-desktop systemd[1]: Starting The Apache HTTP Server...
    aug 27 16:15:08 zabbix-desktop apachectl[5696]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
    aug 27 16:15:08 zabbix-desktop apachectl[5696]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
    aug 27 16:15:08 zabbix-desktop apachectl[5696]: no listening sockets available, shutting down
    aug 27 16:15:08 zabbix-desktop apachectl[5696]: AH00015: Unable to open logs
    aug 27 16:15:08 zabbix-desktop apachectl[5693]: Action 'start' failed.
    aug 27 16:15:08 zabbix-desktop apachectl[5693]: The Apache error log may have more information.
    aug 27 16:15:08 zabbix-desktop systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
    aug 27 16:15:08 zabbix-desktop systemd[1]: apache2.service: Failed with result 'exit-code'.
    aug 27 16:15:08 zabbix-desktop systemd[1]: Failed to start The Apache HTTP Server.

  25. Спасибо за статью, по ней установил и всё работает.
    Один вопрос по самому агенту - в сервере задаём его адрес или днс-имя для доступа, а если у агента нет постоянного или даже вообще белого адреса (через 4g-модем например), то работать не будет? сам агент не может пушить своё состояние?

    • Можно и по ip, и по dns имени. Нет разницы. Агент может сам пушить всю информацию. Этот режим работы называется Активный агент Zabbix. Можно погуглить в чём разница с пассивным. Ничего особо настраивать для него не надо. Достаточно указать в настройках хоста, что агент активный.

    • Задачница

      У меня на шаге отправки тестового сообщения на почту выдало ошибку.
      1) Такой вопрос при настрой оповещений по электронной почте, требуется наличие на сервере развёрнутого smtp отдельно как службы или локального днс?
      2) Может быть такое, что гугл блокирует попытку zabbix подключиться и по этой причине не работает, оповещения на гугл ящик приходили о попытке подключиться.?

      • 1. Для отправки сообщений нужен только smtp сервер. А для прохождения различных фильтров антиспама нужно всё остальное - dns записи.
        2. Да, может. Гугл может считать письма с сервера мониторинга спамом и не принимать их или помечать как спам. Это всё в логе отправки почтового сервера можно посмотреть.

  26. Install
    Details Cannot create the configuration file.
    Unable to overwrite the existing configuration file.

  27. День добрый! Я всё по ошибке: Alternatively, you can install it manually:
    Download the configuration file
    Save it as "/usr/share/zabbix/conf/zabbix.conf.php"
    Скачал и сохранил по указанному адресу и ничего не помогло. Как решить? Спасибо.

    • Первый раз такую ошибку вижу. Явно с правами на директорию проблема. Думаю, где-то ошиблись. Попробуйте еще раз все по статье сделать. На видео весь процесс наглядно показан. Если повторить, все будет работать.

      • Извиняюсь, это я папку conf пропустил. Закинул в неё и заработало) Вуф... замучился, каждый шаг- ошибка)

  28. Александр

    Возможно ли добавить изображения в поле "описание" узла сети? К примеру, что б при недоступности камеры zabbix отправлял сообщение на почту с изображением (куда направлена камера).

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

      • Александр

        Не совсем правильно написал, изображения предварительно сняты. Хотелось бы в описание добавить что вроде [img]http://zabbix/zabbix.php?action=image.edit&imageid=10[/img], что бы в письме по триггеру была не только текстовая информация, но и изображение.

  29. Прохожий

    Тоже застрял на шаге, где создаем базу данных, а именно:
    # zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p

    Файла create.sql.gz в указанном каталоге нет.

  30. Доброго времени суток, выдает ошибку 404 в браузере, в чем может быть проблема?

    • Либо не по тому урлу заходите, либо веб сервер неправильно настроили.

      • Все так как вы изложили в статье

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

  31. Добрый день, как то в 5 версии zabbix произошли изменения регулярок в части служб windows, задолбала вот службы BITS скачет туда сюда постоянно, спамит а выключить как раньше добавив исключение в регулярку не получается, кто уже разобрался с тем как теперь отключать?

  32. Алексей

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

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

      • Алексей

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

  33. Даниил

    Добрый день! Быть может глупый вопрос, но я хочу разобраться. Пытаюсь поставить zabbix на виртуальную машину Ubuntu 20.04. Дошёл до пункта конфигурирования nginx /etc/zabbix/nginx.conf. В разделе server_name example.com (виртуальный хост). Как узнать/настроить имя виртуального хоста для zabbix? И я правильно понимаю, что после настройки виртуального хоста не нужно переходить по ip адресу http://10.20.1.23, а по имени виртуального хоста?

    • Так вот, вместо example.com и пишите свое имя домена. Выбрать его можете самостоятельно, какое больше нравится. Главное dns записи потом для него настроить.

      • Даниил

        Благодарю. Для того, чтобы добавить хост необходимо добавить строчку в файле /etc/hosts/:
        127.0.1.1
        И не забыть перезапустить nginx. Удачи всем! :)

  34. Буду полезен ВСЕМ кто сталкнулся с такой проблемой !!!!!!!!!!!!!!!!

    zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix
    gzip: /usr/share/doc/zabbix-server-pgsql/create.sql.gz: No such file or directory

    Переодически возвращался к проблеме и если вдруг кому понадобиться решение есть !

    на cenos 8 не отрабатывала команда rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm

    вот правильный вывод ее
    # rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm
    Retrieving https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm
    warning: /var/tmp/rpm-tmp.J66Yfw: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
    Verifying... ################################# [100%]
    Preparing... ################################# [100%]
    Updating / installing...
    1:zabbix-release-5.2-1.el8 ################################# [100%]

    У меня почему то при выполнении не было этого !!!
    1:zabbix-release-5.2-1.el8 ################################# [100%]

    Я просто добавил репу сам
    mcedit /etc/yum.repos.d/zabbix.repo

    Вставляем это

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

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

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

    При переходе к zabbix установщику в пункте Check of pre-requisites, выдает ошибку:
    Time zone for PHP is not set (configuration parameter "date.timezone")

    PHP option "date.timezone" unknown Fail

    Подскажите пожалуйста в чем может быть проблема.

  36. Добрый день.

    Статья замечательная, но не увидел (не понял) одного нюанса, в случае если зависнет сам agent установленный на виртуальном сервере, то уведомление никакое не придет?

    Пробовал активировать шаблоны "Template Module Windows services by Zabbix agent" и "Template Module Windows services by Zabbix agent active" и останавливать работу агента на сервере (Windows Server), в веб-панели видно, что агент не доступен но уведомление на email не приходит.

    Может есть какой-то вариант решения? Пробовал искать в сети, но почему-то ничего подходящего не нахожу.

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

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

  38. сергей

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

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

      • А почему такая категоричность к докеру? Какие возникают проблемы при докеризации?

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

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

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

            Про дополнительный расходы не соглашусь - он может накладывает всего лишь ограничение на процесс, плюс изолирует его от остальных. А это бывает очень удобно. Например, можно обкатывать параллельно новую версию приложения или ограничить по ресурсам прожорливое, что очень полезно, когда на хосте используется несколько сервисов. Еще не маловажный фактор - можно относительно легко мигрировать на другую ос для хостовой машины. История с CentOS 8 к этому подталкивает!
            В последнее время я все больше стал запускать сервисов по этой причине под docker. Вот жду, когда podman допилят для использования в продакшене, чтобы отказаться от демона docker, как потенциальной единой точки отказа.

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

            p.s. Меня просто зацепило высказывание про ограничение докеризации для баз данных, которое я периодически встречаю. Но никто не может толком сказать почему. Но в тоже время, я эксплуатирую докеризированный postgresql, elasticsearch с десятками миллионов записей без проблем.

            • Использование дополнительных сущностей должно быть оправдано, иначе зачем их использовать? Вы часто мигрируете базы данных между хостами? Обычно база данных это вообще отдельно стоящий сервер или кластер. Зачем там докер? Другое дело, если у вас куча мелких баз и вы их постоянно запускаете. Тогда с докером ими удобнее управлять.

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

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

  39. Добрался до момента, когда требуется изменить значения триггеров, определенные в макросах, но хоть убей, не могу понять где эти макросы описываются?
    Например, нужно значение для триггера High memory utilization.

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

    по дефолту $MEMORY.UTIL.MAX имеет значение 0,9 (90%), а это для многих производственных сред (в частности MS SQL Server, который резервирует себе память и не освобождает) слишком низкое значение, я бы его поднял до 98%

    Аналогичные проблемы с утилизацией места на дисках. Если диск большого объема, то ворнинги на 80% и критическое значение в 90% явно занижены для боевой среды.
    в данном случае, вроде, макросы $VFS.FS.PUSED.MAX.CRIT и $VFS.FS.PUSED.MAX.WARN.

  40. Андрей

    Добрый день! Подскажите, чем отличаются графики в Zabbix в разделе Мониторинг - Последние данные (там можно посмотреть график, например, использования ОЗУ) от графиков, настроенных через Элементы данных в настройках узла сети.
    Т.е. понятно, что во втором случае их нужно заводить через Настройки узла, а в первом случае они появляются сами, но что еще?

    Спасибо.

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

  41. Добрый день. Подскажите плиз, какую Вы порекомендуете ОС для установки и поддержки Zabbix, всвязи с новостями о том, что Centos 8 поддерживается до 31.12.2021г.? (до этого в основном работал с этой системой, немного debian) Заранее, спасибо

  42. Евгений

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

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

      • Евгений

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

  43. Добрался до установки агента на Линукс серверы, и сразу засада:
    Первым делом решил поставить агент на nginx сервер, через который опубликован zabbix https://serveradmin.ru/nginx-proxy_pass/#Peredaca_https_cerez_nginx_s_pomosu_proxy_pass
    с сертификатами Lets Encrypt.

    Проблема в том, что агент стартует, по данной статье настроена активная и пассивная проверка, но узел в списке мониторинга не появляется.
    статус агента:
    [root@nginx zabbix]# systemctl status zabbix-agent
    ● zabbix-agent.service - Zabbix Agent
    Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
    Active: active (running) since Sat 2021-02-20 03:08:50 MSK; 40min ago
    Process: 2104 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
    Process: 2108 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
    Main PID: 2110 (zabbix_agentd)
    Tasks: 6 (limit: 12421)
    Memory: 4.0M
    CGroup: /system.slice/zabbix-agent.service
    ├─2110 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
    ├─2113 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
    ├─2114 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
    ├─2115 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
    ├─2116 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
    └─2117 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

    Feb 20 03:08:50 nginx.mydomain.ru systemd[1]: Starting Zabbix Agent...
    Feb 20 03:08:50 nginx.mydomain.ru systemd[1]: Started Zabbix Agent.

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

    Ломаю голову.

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

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

    Даже не знаю, как еще поточнее описать проблему(

    • Смотрите логи агента. Там будет видно, подключился он к серверу или нет. Если нет, то попробуйте добавить по ip адресу, а не dns имени.

      • Владимир, в том-то и дело, что лог агента ничего не проясняет, я его неоднократно смотрел

        2110:20210220:131512.450 Got signal [signal:15(SIGTERM),sender_pid:2991,sender_uid:990,reason:0]. Exiting ...
        2110:20210220:131512.451 Zabbix Agent stopped. Zabbix 5.0.8 (revision d3c78f993a).
        2996:20210220:131512.467 Starting Zabbix Agent [nginx.mydomain.ru]. Zabbix 5.0.8 (revision d3c78f993a).
        2996:20210220:131512.468 **** Enabled features ****
        2996:20210220:131512.468 IPv6 support: YES
        2996:20210220:131512.468 TLS support: YES
        2996:20210220:131512.468 **************************
        2996:20210220:131512.468 using configuration file: /etc/zabbix/zabbix_agentd.conf
        2996:20210220:131512.471 agent #0 started [main process]
        3002:20210220:131512.472 agent #1 started [collector]
        3004:20210220:131512.472 agent #3 started [listener #2]
        3003:20210220:131512.473 agent #2 started [listener #1]
        3006:20210220:131512.475 agent #5 started [active checks #1]
        3005:20210220:131512.477 agent #4 started [listener #3]
        3006:20210220:131512.500 no active checks on server [10.3.3.222:10051]: host [nginx.mydomain.ru] not found
        3006:20210220:131712.541 no active checks on server [10.3.3.222:10051]: host [nginx.mydomain.ru] not found
        3006:20210220:131912.583 no active checks on server [10.3.3.222:10051]: host [nginx.mydomain.ru] not found

        последние 3 строки о чем говорят не понятно, то ли nginx.mydomain.ru не резолвится и по тому не находится, толи он в заббиксе не описан в хостах?
        возможно надо в конфиге IPV6 отключить? он на сервере отключен.

        при этом

        в /etc/hosts он прописан
        127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
        10.3.3.2 nginx.mydomain.ru

        и по имени отвечает

        [root@nginx zabbix]# ping nginx.mydomain.ru
        PING nginx.mydomain.ru (10.3.3.2) 56(84) bytes of data.
        64 bytes from nginx.mydomain.ru (10.3.3.2): icmp_seq=1 ttl=64 time=0.067 ms
        64 bytes from nginx.mydomain.ru (10.3.3.2): icmp_seq=2 ttl=64 time=0.061 ms
        64 bytes from nginx.mydomain.ru (10.3.3.2): icmp_seq=3 ttl=64 time=0.103 ms

        сервер zabbix 10.3.3.222
        сервер с агентом 10.3.3.2

        • Собственно, тут четко написано, в чем проблема:

          no active checks on server [10.3.3.222:10051]: host [nginx.mydomain.ru] not found

          Вы в конфиге zabbix-agent обозвали хост этим именем. А на самом сервере zabbix хоста с таким именем нет.

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

          • Да, по статье не понял этот момент "Агент имеет свое имя. Он обращается к серверу по этому имени и забирает всю информацию для себя. На сервере должен быть добавлен этот хост под таким же именем, что и агент."
            т.е. для windows хоста написано, что надо добавить хост в настройках заббикса, а для линукс хоста этого не было описано в статье. Проблема в том, что я в прошлый раз создал на заббиксе хост, но, похоже при создении не назначил ни одного шаблоноа, а только группу Linux Server, вот и не было видно, что связь агент-сервер состоялась, соотвсетсвующая иконка напротив хоста была в сером статусе.

            Спасибо, за разъяснения!

      • Отвечу сам себе на последний пост:

        В общем, после повторного добавление хоста в "настройка/узлы сети" агент увиделся, но я так понимаю в данном случае идет активный мониторинг? пока не понял, какие выбрать шаблоны из готовых для мониторинга линукс сервера с nginx
        пока выбрал:
        Template App Nginx by Zabbix agent
        Template Module Linux CPU by Zabbix agent
        Template Module Linux filesystems by Zabbix agent
        Template Module Linux memory by Zabbix agent
        Template Module Linux network interfaces by Zabbix agent

        единственное, отключил триггер
        Nginx: Failed to fetch stub status page (or no data for 30m), модуль ngx_http_stub_status_module не подключен на nginx, а с учетом того, что я NGINX первый раз вчера поставил, смутно пока понимаю, как его безопасно добавить

  44. Привет. Послу учтьновки PSK у меня такой проблем.

    Get value from agent failed: TCP successful, cannot establish TLS to server

  45. Можно глупый вопрос, вот у меня на хосте рисует, что у него есть 45 графиков. Когда я перехожу на вкладку графиков, то отображаются от силы штук 20, нет ни кнопки далее ни ссылки на вторую стрницу. Не подскажете, как их увидеть все?

  46. Василий

    После выполнения команды
    # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
    После ввода пароля
    Не чего далее не происходит просто курсор мигает и все

    • Сколько времени ждали? Посмотрите, были ли созданы таблицы в базе данных zabbix. Эта команда выполняет sql команды из файла create.sql.gz. Проверьте так же, по данному пути /usr/share/doc/zabbix-server-mysql*/create.sql.gz есть этот файл или нет. * тут является маской.

      • Сергей

        При команде zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix выводит gzip: /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz: No such file or directory Enter password:
        Существует путь /usr/share/doc/zabbix-server-mysql/. Но дальше create.sql.gz там нет, возможно из-за подключения репозиториев Percona. Из-за этого дальнейшее развёртывание не возможно.
        На вэб-интерфейсе при первом входе при попытке залогиниться в базу от zabbix выдаёт Unable to determine current Zabbix database version: the table "dbversion" was not found.
        По данному пути нет таких файлов - всё по инструкции.

        • Где-то должен быть файл create.sql.gz. Найдите его поиском. Без него просто не будут созданы таблицы в базе данных и установка не может быть продолжена. Он 100% должен где-то лежать.

          • Сергей

            Стоя в корне
            find: ‘create.sql.gz’: Нет такого файла или каталога

            • А вот тут его нет?
              /usr/share/zabbix-server-mysql/
              Он еще может называться schema.sql.gz
              Если совсем не найдете, то просто откройте любой установочный пакет с zabbix-server-mysql для любой системы и возьмите этот файл оттуда. Это простой набор sql команд для создания таблиц в базе данных.

            • Tony DevOpsina

              Zabbix 5.2 + pgsql + apache

              ~$ sudo find / -name create.sql.gz
              /usr/share/doc/zabbix-server-pgsql/create.sql.gz

              • В версии 5.4 этот файл вынесли в отдельный пакет, который надо ставить - zabbix-sql-scripts.

  47. Для этого открываем конфиг nginx /etc/zabbix/nginx.conf и устанавливаем там 2 параметра:

    А конфиг нжинкс точно там находится ?

    • Я сейчас точно не помню, но по-моему тут нет ошибки. Конфиг для nginx лежит в директории zabbix, если он устанавливался из пакетов для nginx.

  48. Добрый вечер После установки zabbix 5.2 на ubuntu 20.04 не стартует сервер:
    #sudo systemctl start zabbix-server.service
    Job for zabbix-server.service failed because the control process exited with error code. See "systemctl status zabbix-server.service" and "journalctl -xe" for details.
    Лог при этом тоже не создается...
    База mariadb создана, права есть.
    В Front end пустил.
    Selinux выключен
    IPtables выключен
    Размер кэша в конфиге увеличен.
    Что еще можно проверить?

    • Системный лог надо посмотреть. Скорее всего там будет ошибка.

      • нашел это
        invalid entry "Full pathname of file containing the private key for authenticating to database." (not following "parameter=value" notation) in config file "/etc/>
        Feb 4 17:25:50 ruspemfizab01 systemd[1]: zabbix-server.service: Control process exited, code=exited, status=1/FAILURE

      • Аноним

        Проблема решилсаь:)
        Не была закомментирована строчка Full pathname of file containing the private key for authenticating to database.
        Невнимательность...
        огромное Вам спасибо за помощь!

  49. А у меня вот такая ошибка.

    [root@localhost ~]# percona-release setup ps-80
    Specified repository does not exist: http://repo.percona.com/ps-80/

  50. Спасибо за статью!

    Может кто-то знает как создать триггер, windows server, чтобы проверять место на дисках C и D в гигабайтах. Условно, чтобы триггер работал если на С < 15Гб, а на D < 20Гб?

    • Вот набросал быстренько пример. По аналогии делается для второго диска. Выражение триггера:
      {xm-win8:vfs.fs.size[C:,total].last(0)}-{xm-win8:vfs.fs.size[C:,used].last(0)}<16106127360
      А вот как он выглядит:

      16106127360 - разница полного и использованного объема диска в байтах.

      • Спасибо огромное!!

      • Zerox, а не подскажите, по какой причине активные проверки могут выборочно не работать? Мониторинг CPU (Template Module Windows CPU by Zabbix agent active), в активном режиме работает, а вот шаблоны (Template Module Windows filesystems by Zabbix agent active и Template Module Windows physical disks by Zabbix agent active) работают только в пассивном режиме, но работают корректно.

        Думаю, может из-за установки zabbix agent не под учеткой админа или диск на виртуалке как-то ограничивает.

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

  51. Добрый вечер! Возможно ли перенести бд забикса с 4.4 на 5, при условии, что сам забикс будет ставиться с 0 на новую машину?

    • Советую поставить на новую машину версию 4.4, накатить на нее дамп со старого сервера. А потом уже на новом обновлять до 5.0. Это просто логичнее. Хотя и ваш вариант скорее всего сработает.

  52. Добрый день zerox.
    Подскажите пожалуйста.
    Был изначально Centos 7.x и zabbix 4.2 (mariadb и nginx везде , у меня порядком 100 устройств с агентами 3 ярда 3 гига)
    Дальше обновил до 4.5 (кажется)
    Дальше обновил до 5, были определенные сложности но благо резервных копий было достаточно все получилось.
    Решил что сидеть на Centos 7 не стоит и пора обновится до актуальной версии, накатил Centos 8 и на него весь zabbix и перенёс конфиг, первое что бросилось в глаза все стало медленнее работать, сам вебинтерфейс стал тормозящим. Ну в целом не сильно и ладно. А вот триггеры стали иногда срабатывать сразу все. Забивается проц (все 3 на процентов 75 - 95), сжирается вся память и вся swap, что посоветуете сделать? Изначально было чуть меньше ресурсов, я их увеличил и это стало реже случаться. Боюсь если дам больше ресурсов, полны пик все равно будет достигаться просто позднее.
    Подскажите в какую сторону копать для оптимизации ситуации. Спасибо.

    • Так а что я тут могу заочно посоветовать? Смотрите на нагрузку, какие процессы больше всего выжирают cpu. Это могут быть какие-то процессы zabbix-server или же база данных. Я не видел нигде информации, что после обновлений zabbix как-то кардинально начинал поглощать больше ресурсов. Если сами айтемы для сбора данных не менялись, то плюс-минус, нагрузка та же самая остается. Обычно добавляются новые фичи, новые агенты для сбора данных. Вот они могут увеличивать нагрузку. А если все то же самое, то серьезных изменений производительности быть не должно.

      Может после переезда конфиг mariadb поменялся? Это может сильно повлиять на производительность.

  53. Здравствуйте, возникла проблема с win агентами zabbix, ошибка "Get value from agent failed: ZBX_TCP_READ() timed out" на нескольких машинах, на других такой ошибки нет и агент нормально общается с сервером. Не могу понять что могло произойти, с сервера zabbix при выполнении команды:
    telnet 10.12.3.128 10050 подключения происходит нормально без ошибок. В логе агента на проблемных машинах:

    Starting Zabbix Agent [WS-2-11]. Zabbix 5.0.4 (revision 69c0ad3686).
    960:20201217:093728.435 **** Enabled features ****
    960:20201217:093728.435 IPv6 support: YES
    960:20201217:093728.435 TLS support: YES
    960:20201217:093728.435 **************************
    960:20201217:093728.435 using configuration file: c:\zabbix\conf\zabbix_agentd.conf
    960:20201217:093729.011 Failed to initialize builtin counter: Processor Information
    960:20201217:093729.011 Failed to initialize builtin counter: % Processor Time
    960:20201217:093730.772 agent #0 started [main process]
    4088:20201217:093730.772 agent #1 started [collector]
    1940:20201217:093730.772 agent #2 started [listener #1]
    3432:20201217:093730.772 agent #3 started [listener #2]
    1820:20201217:093730.787 agent #5 started [active checks #1]
    1460:20201217:093730.787 agent #4 started [listener #3]

    все машины в fron-end zabbixa добавлены не активные шаблоны и выставлен порт 10050.

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

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

      • Да на одном свиче, ну так и что с этим делать? Другого свича у нас нет, да и всё работает вроде нормально. Даже те проблемные машины раньше всё с агентом у них было нормально, а потом в один прекрасный момент такая ерунда.

        • Что делать, не знаю. Я не дебажил подробно эту тему. Просто свитч заменил. Самому интересно, в чем конкретно проблема.

  54. Михаил

    Свежеустановленный Zabbix 5 на nginx как-то разграничивает доступ к веб-интерфейсу из LAN - тут он работает ок, и из других сетей под тем же пользователем - другие VLAN или из WAN через рутер. Ограничения - нет пунктов меню Configuration, Administration, нет собственно данных в виджетах, нет хостов в списке... База на MySQL на другом хосте в LAN - использовал NAS Synology.
    Кто это режет, nginx, MySQL или сам Zabbix? Похоже на Zabbix, пункты меню пропали не зря.

    • Аноним

      Разобрался.
      Создал своего пользователя, включил его в группу Zabbix administrators, и локально все было ОК.
      По умолчанию в Zabbix 5 почему-то группа пользователей (user group) Zabbix administrators не имеет прав -- host groups:none.
      Исправить (под дефолтным Admin):
      Administration -> User Groups -> выбрать Zabbix Administrators (точнее, группу пользователя, которому нужен доступ) -> Permissions (видим All groups : none)-> выбрать все группы -> выбрать read или read-write -> кнопка Update

      Странные администраторы по умолчанию, ну что есть. В 4 версии такого трабла вроде бы не было.

      • С пользователями и ролями в zabbix есть вои заморочки. Там все немного не очевидно. Сам часто путаюсь.

  55. Александр

    Здравствуйте, поступила задача настроить логирование на WINDOWS Server 2019. Я посмотрел что должен быть установлен шаблон active. В добавок необходимо создать новые элементы с log для считывания.

    Я создал заббикс с версии 5 по вашей статье установил zabbix клиента zabbix_agent-5.0.4-windows-amd64-openssl. Поставил сначала шаблон обычный, он заработал, потом поменял на active и мне пишет ошибку Zabbix agent is not available (or nodata for 30m). Я не понимаю почему так происходит. Объясните пожалуйста что мне нужно сделать ?

  56. Предпочитаю не отключать SELinux. Защиту всё-таки не просто так придумывали, а отключать её и не пытаться разобраться, как с ней работать - не профессионально. Я это к тому, что настройка SELinux не помогает и сервер всё равно не запускается, хоть админка и работает.

    • Что значит настройка selinux не помогает? Если правильно настроить, поможет. Есть простой универсальный способ настройки selinux. Анализируем лог ограничений и на его основе создаем модуль, который разрешает то, что запрещено в логе. Попробуйте несколько итераций продлеать:

      # ausearch -c 'zabbix_server' --raw | audit2allow -M my-zabbixserver
      # semodule -X 300 -i my-zabbixserver.pp

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

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

        На счёт audit2allow читал такое, поэтому пока ищу другие способы поиска проблемы.
        "Основная ошибка при настройке SELinux - пытаться использовать
        утилиту "audit2allow". Audit2allow анализирует логи аудит-демона
        (логи находятся по пути /var/log/audit/audit.log) и на основе протокола
        ошибок доступа к тем или иным объектам строит модуль для SELinux с
        разрешающими правилами.

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

        • Все верно. Эта утилита бьет из пушки и может открыть много лишнего (но не обязательно!), потому что работает автоматически. Но тогда вам нужно учиться самим писать модули, а это не такая простая задача, которую можно решить в рамках настройки zabbix сервера. Особенно если опыт с линуксом небольшой.

          • Почистил audit.log, перезапустил заббикс-сервер и вот что записалось в лог:

            type=AVC msg=audit(1607328067.189:516): avc: denied { name_connect } for pid=960 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328067.189:517): avc: denied { name_connect } for pid=960 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=SERVICE_STOP msg=audit(1607328077.343:518): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=zabbix-server comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
            type=SERVICE_START msg=audit(1607328077.390:519): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=zabbix-server comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
            type=AVC msg=audit(1607328078.230:520): avc: denied { name_connect } for pid=1606 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328078.231:521): avc: denied { name_connect } for pid=1606 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328085.079:522): avc: denied { name_connect } for pid=958 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328085.079:523): avc: denied { name_connect } for pid=958 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328088.713:524): avc: denied { name_connect } for pid=1608 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0
            type=AVC msg=audit(1607328088.713:525): avc: denied { name_connect } for pid=1608 comm="php-fpm" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket permissive=0

            Как я понял, проблема с доступами у php. В инете предложили ввести следующую команду:
            setsebool -P httpd_can_network_connect 1
            Перезапустил сервак, обновил страницу заббикса - сервер запущен.

            Ещё, в самом заббиксе показало ошибку запуска агента. Сделал старт вручную - ошибок нет.

  57. В дополнение к предыдущему комментарию. Сложилось впечатление, что Яндекс smtsp блокирует попытки отправки нескольких подряд подключений, возможно нужно как-то настроить таймаут между подключениями при отправке уведомлений или выполнять отправку всех писем за 1 сессию

  58. Доброго времени суток.
    Настроил заббикс по данной статье (это мой первый опыт работы с заббиксом).
    Настроены оповещения по e-mail html (да и в текстовом формате проблема такая же)
    при наступлении события одному пользователю оповещение уходит нормально, а при оповещении второго пользователя все время ошибка "Failure when receiving data from the peer".
    пробовал поменять в администрировние\пользователь\уведомления e-mail адрес на другой, 1 раз из 10-ти помогло и уведомление было отправлено. После возвращения значения e-mail на первый вариант, ошибка стабильно повторяется. При тестирование уведомлений через администрирование\способы оповещения\тест (напротив e-mail) тест на первый адрес проблемного пользователя проходит успешно.

    Не могу понять закономерности, т.к. проблема в 9 из 10 случаев и с вторым адресом проблеммного пользователя осталась, только 1 раз из 10 был безпробленный.
    отправка идет через smtp.yandex.ru, отправитель blablabla@yandex.ru, т.е. в spf и dkim записях проблемы быть не может, т.к. яндекс для своих отправителей сам следит за их содержимым

    • Попробуйте просто другой почтовый сервер. Так хоть будет понятно, это проблема вашего zabbix или особенность почтового сервера яндекс. Проблема достаточно известная и гуглится неплохо, но причины ошибок везде разные. Вот пример - https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/410889-error-failure-when-receiving-data-from-the-peer

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

  59. Евгений

    Добрый день.
    Настраиваю мониторинг на Dlink через SNMP, есть 2-х юнитовый объединенный Dlink,
    на первом юните мониторю стандартным OID: .1.3.6.1.2.1.2.2.1.10.16
    А как мониторить второй юнит?

  60. Доброго времени суток.Не подскажете...Я подключил несколько активных агентов присвоил им шаблон,но забикс выдает ошибку
    Get value from agent failed: cannot connect to [[IP adress]:10051]: [4] Interrupted system call
    Но несмотря на это последние !!данные приходят исправно!!И с графиками все ок
    ЧЯДНТ не подскажете? Из-за этого я так полагаю он еще и выдает ошибку Zabbix unreachable poller processes more than 75% busy
    https://prnt.sc/vhvqbc
    Zabbix 5.2

    • Смотрите, что выходит. Вы пишите, что сделали несколько активных агентов. Напомню, активный это значит, что данные сам отправляет на сервер мониторинга. И данные у вас поступают, значит в этом плане все ок. А ошибка говорит о том, что сервер мониторинга не может подключиться к агенту. Он он и не должен подключаться, если агент активный. Агент сам подключается, передает данные и забирает указания, что мониторить. Может ошиблись и добавили оба агента - и активный, и пассивный?

      • Спасибо за ответ,не так выразился узлов несколько подключил по такой схеме.Уточняю все последовательность.Агенты виндовые машины,сервера.скачанный zabix agent2 с сайта который. Подправлен конфиг агента:
        Server=IP заббикс сервера
        ServerActive=IP заббикс сервера
        Добавляю узел
        имя-Имя компа на агенте
        добавляю в свою группу узлов
        интерфейс: "Агент"-"Ip-адресс агента" через IP-порт "10051"
        Присоединил шаблон Windows active agent
        Вот в такой конфигурации данные приходят но выскакивает та самая ошибка
        С пассивными агентами проблем нет, пробрасываю порт на роутере и добавляю в виндовом фаерволе правило все ок.
        Может с активными тоже нужны какие правила разрешать? С другой стороны мне бы просто данные не приходили а они доходят до сервера...

        • Данные доходят, потому что активные агенты их сами шлют. Тут никакие порты не надо пробрасывать, если доступ к серверу мониторинга прямой. Ошибка возникает, когда сервер пытается достучаться до агента и у него это не получается. Тут я затрудняюсь подсказать более конкретно. Вам надо самим разбираться по месту. Я активные агенты редко использую, предпочитаю больше централизацию и самим сервером все забирать.

  61. Виталий

    Там где: Создадим теперь пользователя и базу данных mysql для zabbix.
    Не хватает пробела: между -u и root: mysql -uroot -p

    • Это не ошибка. Без пробела так же работает, проверьте. Я обычно без пробела пишу. И пароль можно тут же без пробела указывать.

  62. Андрей

    Доброго времени суток, пытаюсь сделать это "Открываем конфиг сервера заббикс" пишет что, нет таких файлов в директ

  63. Дмитрий

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