Как установить и настроить Zabbix 5.0 на Centos 8

Zabbix

Пошаговая инструкция по установке и настройке Zabbix 5.0 на Centos 8

Установим MySQL

В качестве сервера базы данных выберем Percona Mysql Server. Для резервного копирования базы будем использвать 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

2021-09-28T12:35:20.863436Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: eHgdrwpC,2<1
# 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 'FeS*aisg.jY,L$0TB&BG';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> exit

Импортируем структуру базы данных для Zabbix 5 из файла. Пароль используем FeS*aisg.jY,L$0TB&BG, который указали ранее.

# 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=FeS*aisg.jY,L$0TB&BG
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

Подготавливаем 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

Теперь можно пройти в браузере по доменному адресу и откроется первая страница установщика Zabbix Server 5. (Не забудьте прописать необходимую запись на DNS сервере)

Как установить и настроить Zabbix 5.0 на Centos 8

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

Настройка Zabbix Frontend

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

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

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Настройка Zabbix Server

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

Заполняем все необходимые поля. Можно выбрать русский язык. Обычно я стараюсь работать в английском, но в случае с заббиксом можно сделать исключение. Он очень качественно локализован и проблем не возникает. Не забудьте зайти во вкладку 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 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

{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 на Centos 8

Установка 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 Server и ждем поступления первых данных. Они должны пойти через 2-3 минуты после запуска агента.

Как установить и настроить Zabbix 5.0 на Centos 8

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

# systemctl stop zabbix-agent

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

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

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

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

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

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

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

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

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

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

Как установить и настроить Zabbix 5.0 на Centos 8

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

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

Заключение

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

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

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

Оцените статью
Добавить комментарий