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

0 24

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

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

Содержание

Введение

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

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

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

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

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

Настройка Zabbix Frontend

Настройка Zabbix Server

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

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

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

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

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

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

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

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

Заключение

Видео

Введение

Содержание статьи:

С системой мониторинга 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.0

Теперь подготовим 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 5.0

Если вы видите ошибку подключения к 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 и некоторые его компоненты.

# apt install 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.0

Теперь подготовим 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 5.0

Если вы видите ошибку подключения к 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. На следующей странице установщика вы увидите список требований к веб серверу. У вас должно быть все в статусе ОК, так как подходящая конфигурация установлена вместе с пакетом.

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

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

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

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

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

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

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

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

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

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

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

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

Настройка Zabbix Server

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{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 5.0

Установка 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 5.0

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

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

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

# systemctl stop zabbix-agent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом установка и настройка мониторинга 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 5.0

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

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

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

Заключение


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

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

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

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

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

  • Web сайтов.
  • Принтеров по snmp.
  • Роутеров Mikrotik.
  • SSH подключений.
  • Времени делегирования доменов.
  • Создания бэкапов.
  • Времени отклика сайта.
  • Сервера телефонии asterisk.
  • SMART жестких дисков.
  • Срок действия сертификатов SSL.
  • Почтового сервера postfix.
  • Звонок-оповещение Zabbix через Asterisk на мобильный телефон.
  • Лог файлов.
  • Установка и настройка zabbix прокси.
  • Размеров бэкапов.
  • Файлового сервера Synology.
  • Программного рейда MDADM.
  • Служб в Linux.
  • MySQL репликации.
  • Web сервера nginx и php-fpm.
  • Температуры процессора.

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

Онлайн курс по мониторингу и логированию

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы мониторинга и логирования, рекомендую познакомиться с онлайн-курсом «Мониторинг и логирование: Zabbix, Prometheus, ELK» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 4 месяца, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Что даст вам этот курс:

  • Понимаине задач логирования, мониторинга и оповещений.
  • Изучение популярных систем мониторинга Zabbix и Prometheus.
  • Умение создавать информативные визуализации с помощью Grafana и Kibana.
  • Изучение систем логирования ELK, EFK, Graylog2.

Проверьте себя на вступительном тесте и смотрите подробнее программу по . В курсовом проекте вам предстоит развернуть заранее созданную инфраструктуру при помощи Vagrant и Ansible. И настроить полный цикл мониторинга и логирования. Инфраструктура включает в себя: ОС Ubuntu 18.04, Postgresql 11 (petroni cluster), consul (cluster, template, agent), nginx, pgbouncer, wordpress site.

Видео

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

Watch this video on YouTube
Источник

Оставьте ответ

Ваш электронный адрес не будет опубликован.

1 × один =