Zabbix 5 установка и настройка centos 8
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 сервере)
Если вы видите ошибку подключения к web серверу, то скорее всего у вас firewall блокирует соединения. В Centos 8 по умолчанию включен firewalld. Если он вам не нужен и вы не хотите его настраивать, то просто отключите.
Настройка Zabbix Frontend
Итак, продолжаем установку Zabbix 5. На следующей странице установщика вы увидите список требований к веб серверу. У вас должно быть все в статусе ОК, так как подходящая конфигурация установлена вместе с пакетом.
Далее указываем параметры подключения к базе Mysql. Пользователя и базу мы создали ранее, теперь просто их указываем.
После нажатия на Finish увидите окно авторизации Zabbix сервера.
Стандартная учетная запись для входа в web интерфейс zabbix следующая:
После логина увидите стандартный dashboard.
На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.
Настройка Zabbix Server
Создание учетной записи и смена пароля
Теперь можно зайти под новым пользователем, а Admin удалить. Но система не даст его удалить, так как он является владельцем некоторых объектов:
- карты сети — Local Network
- комплексного экрана Zabbix server
- панелей Global view и Zabbix server health
Они создаются автоматически при установке заббикса. Вам нужно сменить у них владельца на нового пользователя. После этого стандартного админа можно будет удалить.
Настройка email оповещений
Покажу на примере настроек ящика
Здесь же можете протестировать выбранный способ отправки.
Это мы настроили адрес отправки. Теперь нужно пользователю добавить адрес для получения оповещений. Для этого идем в Администрирование -> Пользователи, выбираем своего пользователя. Идем во вкладку Оповещения и жмем Добавить. Добавляйте свой ящик и нажимайте Обновить.
Дальше нужно активировать отправку уведомлений по событиям. Для этого идем в Настройка -> Действия и жмем на Деактивировано, чтобы стало Активировано.
Все, отправку уведомлений мы настроили, осталось подождать срабатывания триггера, чтобы проверить. Сделаем это позже, когда подключим хотя бы один хост к мониторингу.
Изменение шаблона стандартных оповещений
Я обычно изменяю стандартный шаблон уведомлений заббикса. Настраивался он раньше в свойствах действий, а теперь этот функционал переехал в настройки способов оповещений, где мы настраивали отправку по email. Возвращаемся туда же и правим шаблон.
Я вношу следующие изменения. Меняю шаблон темы письма при проблеме и восстановлении. В стандартном шаблоне в теме письма нет информации об имени хоста. Некоторые шаблоны в триггерах указывают имя хоста в названии триггера, но есть и такие, где нет этой информации. Из-за этого в оповещении сразу не видно, о каком хосте идет речь. В моем же шаблоне сразу в теме будет указано имя хоста, далее статус, а потом имя триггера.
Мне мой вид кажется более наглядным. Шаблон меняет на следующий:
Он одинаковый и для проблемы, и для восстановления.
Изменение стандартных шаблонов мониторинга
На своих серверах мониторинга я изменяю некоторые параметры стандартных шаблонов, чтобы было меньше бесполезных и неинформативных срабатываний. В этот раз в Zabbix 5 я хотел поступить так же, но не пришлось этого делать.
Удивительно, но некоторых вещей, которые я отключал в 4-й версии, в 5-й уже не стало. Например, убрали триггер Version of zabbix_agent(d) was changed on , который я всегда отключал. И все остальные мои изменения тоже теперь не актуальны. Вот это поработали разработчики. Теперь нужно время, чтобы изучить обновленные шаблоны, чтобы понять, нужно ли их дорабатывать, как прежде.
Общие настройки
В общих настройках zabbix server, которые располагаются в разделе Администрирование -> Общие я меняю следующие параметры:
- В Веб интерфейсе меняю Макс. количество элементов отображаемое в ячейке таблицы с 50 на 100.
- Выставляю актуальные рабочие часы в разделе Рабочее время.
- В разделе Опции отображения триггеров меняю значения Отображать триггеры в состоянии ОК в течении и Мигание триггеров при изменении состояния на 1 минуту. Это просто мои предпочтения. Мне не нравится, когда триггеры долго мигают, либо висят уже закрытые.
- Потом иду в раздел Прочее и меняю Обновление неподдерживаемых элементов данных на 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 минуты после запуска агента.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
Ждем минимум 3 минуты. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. Раньше, кстати, было 5 минут. После этого проверяем главную панель, виджет Проблемы.
Проверяйте email ящик. Туда должно прийти уведомление от заббикс сервера. Обращаем внимание на тему письма, шаблон которого мы отредактировали. В самом начале темы указано имя хоста, на котором сработал триггер.
Если использовать стандартный шаблон, этой информации не будет.
Установка zabbix агент на Windows
В последних версиях Zabbix установка Windows агента значительно упростилась, так как появился готовый установщик. Во время его работы можно сразу указать адрес сервера мониторинга и имя хоста, на который устанавливается агент. В итоге, все делается автоматически, не надо ничего настраивать вручную .
Для установки Zabbix agent на Windows, идем на страницу загрузок официального сайта. Выбираем там Zabbix Agent и качаем подходящую версию.
На момент написания статьи еще не было инсталлятора для 5-го агента, но он наверняка появится в ближайшее время. Покажу на примере агента 5.4, который полностью совместим с более свежим сервером. Запускаем msi пакет и доходим до этапа, где надо указать адрес сервера и имя хоста. Делаем это.
Все остальное оставляем без изменений.
Не забываем создать разрешающее правило в Брандмауэре, если он у вас включен. Для этого идем в Панель управления\Система и безопасность\Брандмауэр Windows — Дополнительные параметры — Правило для входящих подключений — Создать правило.
- Тип правила: Для порта;
- Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
- Действие: Разрешить подключение;
- Профиль (ставим галочки): Доменный, Частный, Публичный;
- Имя: Zabbix Agent;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же Hostname, что мы указали во время установки агента. Для этого идем в web панель, открываем раздел Настройка -> Узлы сети и жмем Создать узел сети.
Переходим на вкладку Шаблоны и выбираем там шаблон Template OS Windows by Zabbix agent.
Добавляем новый хост на сервер мониторинга. Осталось подождать несколько минут поступления свежих данных. Проверить их можно там, где и раньше, в Последних данных, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных, и серверных систем.
Заключение
На этом установка и базовая настройка сервера мониторинга zabbix 5.0 завершена. Советы, замечания, исправления прошу оставлять в комментариях. Материал получился объемный и содержательный. Вполне мог где-то ошибиться.
Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии проходит в основном безболезненно. Нет необходимости срочно перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться. Бывают, конечно, исключения, но редко.
Материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов. Вот пример мониторинга различных служб и сервисов, приведенных на моем сайте. Возможно, что-то из этого вам будет интересно и полезно.
Совсем недавно стал доступен 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 — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования.
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.
Читайте также: