Zabbix 5 установка и настройка centos 8

Обновлено: 06.07.2024

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

TimescaleDB — это рас­ши­ре­ние PostgreSQL для рабо­ты с вре­мен­ны­ми ряда­ми (time series). Вре­мен­ные ряды мож­но хра­нить в PostgreSQL и про­сто так, но TimescaleDB обес­пе­чи­ва­ет боль­шую про­из­во­ди­тель­ность на том же железе.

Установка Zabbix и Nginx

Добав­ля­ем репо­зи­то­рий Zabbix

Добав­ля­ем репо­зи­то­рий Nginx

По умол­ча­нию будет исполь­зо­вать­ся ста­биль­ная вер­сия. Если нуж­на основ­ная версия(mainline), переключаемся

$ sudo dnf config-manager --set-enabled nginx-mainline

Уда­ля­ем все метаданные

$ sudo dnf clean all

Уста­нав­ли­ва­ем Zabbix для БД PostgreSQL и Nginx

$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

Установка PostgreSQL 13

Отклю­ча­ем модуль PostgreSQL в пред­уста­нов­лен­ном по умол­ча­нию репо­зи­то­рии AppStream

$ sudo dnf -qy module disable postgresql

postgresql 9 . 6 [x] client , server [d] PostgreSQL server and client module postgresql 10 [d] [x] client , server [d] PostgreSQL server and client module postgresql 12 [x] client , server [d] PostgreSQL server and client module postgresql 13 [x] client , server [d] PostgreSQL server and client module

Добав­ля­ем репо­зи­то­рий PostgreSQL

Уста­нав­ли­ва­ем PostgreSQL 13

$ sudo dnf -y install postgresql13 postgresql13-server

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database … OK

Основ­ной кон­фиг PostgreSQL рас­по­ло­жен тут:

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

$ sudo systemctl enable --now postgresql-13

$ systemctl status postgresql-13

Уста­нав­ли­ва­ем пароль для поль­зо­ва­те­ля postgres

$ psql -c "alter user postgres with password 'mysuperpassword'"

Установка TimescaleDB

Добав­ля­ем репо­зи­то­рий TimescaleDB

$ sudo nano /etc/yum . repos . d/timescale _ timescaledb . repo

$ sudo yum install pygpgme yum-utils

$ sudo yum install timescaledb-2-postgresql-13

$ sudo systemctl stop postgresql-13

Тюним PostgreSQL (от рута)

$ sudo su -c 'timescaledb-tune --pg-config=/usr/pgsql-13/bin/pg_config'

$ sudo systemctl start postgresql-13

Настройка Zabbix и Nginx

Пере­клю­ча­ем­ся на поль­зо­ва­те­ля root

Созда­ем поль­зо­ва­те­ля БД для Zabbix

Созда­дим БД для Zabbix

Импор­ти­ру­ем началь­ную схе­му и данные

Под­клю­ча­ем рас­ши­ре­ние timescaledb

Ска­чи­ва­ем исход­ни­ки Zabbix и рас­па­ко­вы­ва­ем архив

Импор­ти­ру­ем схе­му и дан­ные для рас­ши­ре­ния timescaledb в PostgreSQL

Редак­ти­ру­ем кон­фиг PostgreSQL

$ sudo nano /var/lib/pgsql/13/data/pg_hba.conf

$ sudo systemctl restart postgresql-13

Настра­и­ва­ем под­клю­че­ние Zabbix к PostgreSQL

Пере­за­пус­ка­ем сер­ви­сы и добав­ля­ем их в автозагрузку

$ sudo systemctl restart zabbix-server zabbix-agent nginx php-fpm

$ sudo systemctl enable zabbix-server zabbix-agent nginx php-fpm

Настройка Firewall и SeLinux

Откры­ва­ем пор­ты 80/443
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

$ sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

$ sudo firewall-cmd --reload

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

Так­же нуж­но предо­ста­вить веб-интер­фей­су Zabbix раз­ре­ше­ние на соеди­не­ние с базой данных

В качестве сервера базы данных выберем Percona Mysql Server. Для резервного копирования базы будем использвать XtraBackup.

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

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

Указаываем временный пароль и далее меняем пароль root,

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

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

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

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

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

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

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

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

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

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

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

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

Подготавливаем web сервер.

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

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

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

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

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

Настройка Zabbix Frontend

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

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

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

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

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

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

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

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

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

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

Настройка Zabbix Server

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

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

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

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

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

Как установить и настроить 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ждем минимум 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 завершена. Советы, замечания, исправления прошу оставлять в комментариях. Материал получился объемный и содержательный. Вполне мог где-то ошибиться.

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

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

zabbix-agent

zabbix

Совсем недавно стал доступен Zabbix 5 версии и ранее мы уже говорили о том, что нового в Zabbix 5.

Давайте рассмотрим установку Zabbix 5 на новую систему. Для установки мы воспользуемся VPS от Jino с установленной ОС CentOS8. В качестве СУБД у нас установлена Postgresql-12. Zabbix мы будем устанавливать совместно с веб-сервером Nginx.

Установка Zabbix Сервера

Шаг 1. Для начала установим следующий пакет: zabbix-release-5.0-1.el8.noarch.rpm

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

Шаг 2. Очистим Кэш пакетного менеджера DNF, чтобы затем мы могли заново собрать информацию о всех пакетах репозиториев. Выполним следующие команды:


Шаг 3. Далее установим Zabbix-Server, Zabbix-front-end, Zabbix agent и компоненты для работы с базой и веб-сервером. Для этого выполним команду:

Будет установлено большое количество необходимых компонентов.


Шаг 4. Чтобы завести базу в Postgresql, выполним следующие команды из под пользователя root, при создании пользователя необходимо задать пароль:


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

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

Будут созданы таблицы, индексы и загружены изначальные данные.


Шаг 6. Изменим конфигурацию Zabbix сервера, зададим пароль для подключения к базе данных. Для этого отредактируем файл: /etc/zabbix/zabbix_server.conf


Шаг 7. Для настройки Front-end части Zabbix сервера, отредактируем конфигурационный файл /etc/nginx/conf.d/zabbix.conf. В данном файле нам необходимо раскомментировать строку listen 80 и добавить имя сервера к строке server_name.


Шаг 8. Установим правильный часовой пояс для php, для этого отредактируем файл /etc/php-fpm.d/zabbix.conf, раскомментируем следующую строку и установим верный часовой пояс:

В моем случае часовое пояс Europe/Moscow, запись вашего часового пояса вы можете уточнить на официальном сайте PHP.


Шаг 9. Так как Nginx по умолчанию прослушивает 80 порт и отдает страницу по умолчанию, то для того чтобы мы были переадресованы на страницу Zabbix для продолжения установки закомментируем блок server в файле /etc/nginx/nginx.conf



Шаг 10. Чтобы на этапе настройки не возникли проблемы с подключением к базе Postgresql-12, нам необходимо изменить файл pg_hba.conf в моем случае он находится в каталоге /var/lib/pgsql/12/data/

Нам необходимо изменить следующую строку:

Приведем ее к виду:

После чего перезапустим сервер базы данных Postgresql-12

Шаг 11. Переустановим все запущенные сервисы, необходимые для работы Zabbix Сервера и добавим их в автозагрузку. Для этого выполним следующие команды при помощи утилиты systemctl:

После этого перейдя по адресу нашего сервера, перед нами появится страница установки Zabbix Сервера:


Нажмем Next, перед нами появится страница с проверкой нашей системы для дальнейшей установки и настройки Zabbix сервера:


Если все корректно, то напротив каждого пункта мы увидим OK. Перейдем к следующему шагу нажав Next Step.


Укажем в качестве порта, порт 5432 в качестве host укажем адрес локального или напишем localhost, также не забываем задать имя БД и пользователя. После чего нажмем Next Step.



Проверяем еще раз ранее указанную информацию. Нажмем Next Step. По окончании установки будет создан конфигурационный файл zabbix.conf.php.


Нажмем Finish и мы будем переадресованы на страницу входа в систему мониторинга.


По умолчанию для входа в систему, нам необходимо указать Логин и Пароль по умолчанию. В качестве Логина для первого входа используйте Admin, а для Пароля zabbix.


Мы попадем на страницу мониторинга сервера. На этом установка Zabbix Сервера версии 5 завершена.

Установка Zabbix 5.4, Nginx, PostgreSQL 13 + TimescaleDB в Centos 8 / Rocky Linux 1

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

TimescaleDB — это расширение PostgreSQL для работы с временными рядами (time series). Временные ряды можно хранить в PostgreSQL и просто так, но TimescaleDB обеспечивает большую производительность на том же железе.

Установка Zabbix и Nginx

Добавляем репозиторий Zabbix

Добавляем репозиторий Nginx

По умолчанию будет использоваться стабильная версия. Если нужна основная версия(mainline), переключаемся


Удаляем все метаданные

Устанавливаем Zabbix для БД PostgreSQL и Nginx

Установка PostgreSQL 13

Отключаем модуль PostgreSQL в предустановленном по умолчанию репозитории AppStream

Добавляем репозиторий PostgreSQL

Устанавливаем PostgreSQL 13

Основной конфиг PostgreSQL расположен тут:

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

Устанавливаем пароль для пользователя postgres

Установка TimescaleDB

Добавляем репозиторий TimescaleDB

Тюним PostgreSQL (от рута)

Настройка Zabbix и Nginx

Переключаемся на пользователя root

Создаем пользователя БД для Zabbix

Создадим БД для Zabbix

Импортируем начальную схему и данные

Подключаем расширение timescaledb

Скачиваем исходники Zabbix и распаковываем архив

Импортируем схему и данные для расширения timescaledb в PostgreSQL

Редактируем конфиг PostgreSQL

Настраиваем подключение Zabbix к PostgreSQL

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

Настройка Firewall и SeLinux

Открываем порты 80/443

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

Также нужно предоставить веб-интерфейсу Zabbix разрешение на соединение с базой данных

Cкачиваем готовый модуль для настройки SeLinux

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

Читайте также: