Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым. Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle Database, веб-интерфейс написан на PHP.
Задача: Установить полноценный сервер мониторинга Zabbix с веб-интерфейсом, базой данных. Для ее решения я буду использовать вариант установки с СУБД PostgreSQL и веб-сервером NGINX.
Вся дальнейшая настройка, как сервера, сервера-прокси так и агентов описана для Debian 12.
Перед установкой советую проверить наличие следующих пакетов: sudo, wget. Если их нет, установите:
apt update
apt -y install sudo wget
Так же важным условием является установка правильного часового пояса в самой ОС Debian 12
Для проверки настроек используем команду:
sudo timedatectl
Установите свой часовой пояс, например:
sudo timedatectl set-timezone Europe/Samara
sudo wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
sudo dpkg -i zabbix-release_7.0-1+debian12_all.deb
sudo apt update
Установим сам Zabbix-сервер, веб-интерфейс, агент и другие нужные для его работы компоненты:
sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Следующим шагом нужно установить и запустить СУБД PostgreSQL:
sudo apt install postgresql
sudo systemctl status postgresql
В Debian 12 СУБД PostgreSQL обычно самостоятельно активируется и ставится в автозагрузку.
Самостоятельно создавать роль и базу данных не нужно. Заббикс сделает все сам: создаст роль, базу данных и импортирует ее схему.
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
Если все прошло успешно испортируем начальную схему БД и данные.
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Полсе окончания импорта добавим в файл /etc/zabbix/zabbix_server.conf пароль от БД, который создали ранее.
nano /etc/zabbix/zabbix_server.conf
...
DBPassword=password
...
Отредактируйте файл /etc/zabbix/nginx.conf раскомментируйте и настройте директивы „listen“ и „server_name“
# listen 8080;
# server_name example.com;
sudo systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm
Готово! Теперь сервис доступен по адресу http://ip-address-host:8080
Заходим на сервис и заполняем оставшиеся настройки, учитывая Вашу конфигурацию:
Пролистываем чек-лист, что все с компонентами хорошо.
Дополняем настройки, которых не хватает. По умолчанию localhost я меняю на 127.0.0.1 и отключаю TLS шифрование базы данных.
Теперь укажем имя Вашего сервера, которое будет отображаться на главное странцие сервиса. Не забываем и тут указать актуальный часовой пояс.
Теперь все готово к окончательной установке сервиса. После нажатия кнопки далее будет создан конфигурационный файл сервера.
Ну вот и все! Сервис готов к работе.
Нажимаем Финиш и используем логин-пароль для входа: Admin zabbix
Добавим репозиторий:
sudp wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
sudo apt update
Установим агента:
apt install zabbix-agent
Поставим его в автозапуск:
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
По своему опыту могу сказать, что временами версия и набор пакетов в Debian может отличаться от собственного репозитория Zabbix. Поэтому, если хотите установить последнюю актуальную версию агента и всех нужных плагинов, советую воспользоваться собственным репозиторием Zabbix:
sudo wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
sudo dpkg -i zabbix-release_latest+debian12_all.deb
sudo apt update
sudo apt upgrade
Далее установим сам Агент2 и все его плагины:
sudo apt install zabbix-agent2 zabbix-agent2-plugin-*
Запустим сервис:
sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
Прокси сервер Zabbix устанавливается на отдельный сервер. Поэтому придется выполнить почти те же шаги, что и раньше, но не все. Мы добавим репозиторий, установим СУБД Postgresql и создадим в ней базу и роль.
sudo wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb
sudo dpkg -i zabbix-release_latest+debian12_all.deb
sudo apt update
sudo apt install zabbix-proxy-pgsql zabbix-sql-scripts
Базу и роль Заббикс создаст сам. Главное - работающий Postgresql на сервере.
Если он не установлен:
sudo apt install -y postgresql
Теперь создадим роль и приудмаем пароль для нее. Он будет нужен далее.
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix_proxy
Теперь импортируем начальную схему базы данных для zabbix-proxy.
cat /usr/share/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u zabbix psql zabbix_proxy
Далее укажем пароль базы для сервиса.
nano /etc/zabbix/zabbix_proxy.conf
...
DBPassword=password
...
sudo systemctl restart zabbix-proxy
sudo systemctl enable zabbix-proxy
В Zabbix есть хорошая возможность рисовать карты сетей или служб. Их можно сделать живыми - там будут отображатсья триггеры и состояние служб. Так уж повелось - что я плохо вижу. Я долго искал способ увеличть размер шрифтов как в самом Zabbix, так и в его картах. Так вот для версии 7.0 LTS можно увеличить размер шрифтов на картах. Для этого нужно открыть файл /usr/share/zabbix/include/maps.inc.php (сделайте копию!!!)
nano /usr/share/zabbix/include/maps.inc.php
В строке 2076 найти значение:
imagetext($im, 8, 0, $x_label, $y_rec + $increasey, $color, $str)
Тот же файл строка 1819 вместо 8 подставляем размер, который хотим, получаем нужную высоту шрифта в подписях к связям.
imagetext($im, 8, 0, $labelx, $labely + $dims['height'], $colors['Black'], $str);
Тот же файл строка 1922 вместо 8 - подставляем удобный размер между строками в подписи (высота одной строки)
$allLabelsSize = imageTextSize(8, 0, str_replace("\r", '', str_replace("\n", '', $allStrings)));
Так как поплыли обрисовки подписей (прямоугольники по умолчанию белого цвета, в которых отрисовывается каждая строчка подписи узла сети), то можно сделать их другим цветом, например как в дуде зелёным, для этого в том же файле на 2074 строке меняем вместо white ставим green
$colors['White']
Видно, что они больше, чем нужно и в некоторых местах карты перекрывают связи, поэтому меняем значение $dims[„width“] по Х под наш размер шрифта (опять вместо 8 подставляем) в строке 2058:
$dims = imageTextSize(8, 0, $str);
Однако - делаете все на свой страх и риск. В версии Zabbix 7.2 такого файла уже нет. Даный рецепт взял на форуме Zabbix.