Краткая инструкция по быстрому запуску системы мониторинга Zabbix в связке со стеком nginx, PHP и PostgreSQL (PostgresPro Standard) на ОС Debian GNU/Linux 11.3.
В первую очередь необходимо скачать и установить пакет zabbix-release_6.1-2+debian11_all.deb
# wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1%2Bdebian11_all.deb # apt install ./zabbix-release_6.2-1+debian11_all.deb
Далее обновляем репозитории
# apt update
и устанавливаем необходимые пакеты
# apt install gnupg2 zabbix-server-pgsql zabbix-frontend-php php-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Вместе с ними у нас подтянется Apache. Выключаем его и уберём с автозагрузки
# systemctl stop apache2 # systemctl disable apache2
Теперь пакет zabbix-release_6.2-1+debian11_all.deb нам не нужен и мы его можем удалить
# rm zabbix-release_6.2-1+debian11_all.deb
Если мы собираемся использовать PostgreSQL, то устанавливаем его
# apt install postgresql
и на всякий случай проверим статус службы
# systemctl status postgresql
если служба запущена, значит всё окей.
Затем зададим пароль пользователю postgres
# passwd postgres
После этого откроем файл конфигурации postgresql.conf в директории /etc/postgresql/13/main/
# nano /etc/postgresql/13/main/postgresql.conf
и в нём раскомментируем и исправим параметр listen_addresses:
listen_addresses = "*"
Затем откроем конфигурационный файл pg_hba.conf в той же директории
# nano /etc/postgresql/13/main/pg_hba.conf
и добавим в него такую строчку:
host zabbix zabbix 127.0.0.1/32 trust
Теперь можно перезапустить службу postgresql
# pg_ctlcluster 13 main restart
или командой
# systemctl restart postgresql
Если мы планируем использовать PostgresPro Standard, тогда переходим в директорию /opt/
# cd /opt/
в неё выкачиваем скрипт, который добавит свой репозиторий
# wget https://repo.postgrespro.ru/pgpro-13/keys/pgpro-repo-add.sh
запускаем этот скрипт
# sh pgpro-repo-add.sh
и устанавливаем пакет postgrespro-std-13
# apt install postgrespro-std-13
Далее проверим статус запуска служьы postgrespro-std-13
# systemctl status postgrespro-std-13
Если служба активна, значит всё нормально.
Затем зададим пароль пользователю postgres
# passwd postgres
После этого откроем файл конфигурации postgresql.conf в директории /var/lib/pgpro/std-13/data/
# nano /var/lib/pgpro/std-13/data/postgresql.conf
и в нём раскомментируем и исправим параметр listen_addresses:
listen_addresses = "*"
Также откроем конфигурационный файл pg_hba.conf в той же директории
# nano /var/lib/pgpro/std-13/data/pg_hba.conf
и добавим в него такую строчку:
host zabbix zabbix 127.0.0.1/32 trust
Теперь можно перезапустить службу postgrespro-std-13
# systemctl restart postgrespro-std-13
На самом деле не важно, какую из данных СУБД необходимо будет использовать, все дальнейшие настройки будут одинаковыми и для одной, и для другой.
Переходим на пользователя postgres и создадим пользователя zabbix и базу данных zabbix
# su postgres # createuser --pwprompt zabbix # createdb -O zabbix zabbix
и выходим из пользователя postgres
# exit
Далее с помощью консоли psql подключаемся к базе данных zabbix пользователем zabbix
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -W
выводим список баз данных
\l+
и нём видим базу данных zabbix размером 7901 kB и её владелец — пользователь zabbix
Выходим из консоли psql
\q
Затем нам необходимо выполнить запрос, который вставить в БД необходимые таблицы, которые будет использовать Zabbix. Для этого переходим в директорию /usr/share/doc/zabbix-sql-scripts/postgresql/
# cd /usr/share/doc/zabbix-sql-scripts/postgresql/
в ней распакуем архив server.sql.gz
# gzip -d server.sql.gz
и из файла server.sql выполним запрос при помощи psql
# psql -U zabbix -d zabbix -h 127.0.0.1 -p 5432 -f server.sql -W
После выполнения этого запроса размер БД zabbix стал немного больше (примерно 45 МБ).
Теперь приступим к настройке самого сервера Zabbix. Открываем файл конфигурации zabbix-server.conf
# nano /etc/zabbix/zabbix-server.conf
и в нём видим следующее:
DBName и DBUser — по умолчанию zabbix, как и было создано
а также допишем DBPassword=your_password, DBHost=127.0.0.1 и DBPort=5432
Далее откроем файл конфигурации nginx для Zabbix
# nano /etc/zabbix/nginx.conf
и впишем в него строчки:
listen 80; server_name dvm.homenet.local;
Из директории /var/www/html/ удаляем файлы index.nginx-debian.html и index.html
# rm /var/www/html/{index.nginx-debian.html,index.html}
и перезапускаем все необходимые службы для работы Zabbix
# systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
а также включим их в автозагрузку
# systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Готово!
На другой машине в сети в строке браузера вводим http://dvm.homenet.local/setup.php и начнём процесс установки:
система проверит наличие необходимых компонентов
подключаемся к БД
выбираем общие настройки
проверяем все настройки перед установкой
и наконец получаем сообщение об успешной установке
в форме вводим логин: Admin и пароль: zabbix
и попадаем на дашборд Заббикса
Все остальные настройки можно будет сделать через дашборд.
опечатка, перед Bdebian11 во wget нужно поставить 2
При установке Zabbix 6.4 данный путь не корректен:
# cd /usr/share/doc/zabbix-sql-scripts/postgresql/
Архив server.sql.gz там лежит в:
# cd /usr/share/zabbix-sql-scripts/postgresql/