Процесс установки забикса для мониторинга, дополняю свой блог. Есть и другие сревры мониторинга, но забикс самый популярный, я им и пользуюсь.
Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 20.04 LTS (также протестировано на 22.04 / 24.04 и на Debian 12), версия устанавливаемого Zabbix — 6 (также протестирован Zabbix 7).
Перед установкой Zabbix выполняем подготовительные процедуры.
Для получения актуальной информации необходимо, чтобы на сервере было правильное время.
Для этого сначала задаем правильную временную зону:
timedatectl set-timezone Europe/Moscow
Затем устанавливаем и запускаем сервис синхронизации времени:
apt install chrony
systemctl enable chrony
systemctl start chrony
Для работы сервера, открываем следующие порты:
iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT
iptables -I INPUT -p tcp --match multiport --dports 10050,10051 -j ACCEPT
iptables -I INPUT -p udp --match multiport --dports 10050,10051 -j ACCEPT
Для сохранения правил используем:
apt install iptables-persistent
netfilter-persistent save
apt update
Если наша система чистая и на ней не работают критически важные сервисы, стоит обновить установленные пакеты:
apt upgrade
Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.
В данной инструкции мы будем использовать сервер баз данных MariaDB. Zabbix версии 6 требует MariaDB версии 10.05.00 и выше.
Создаем файл репозитория:
vi /etc/apt/sources.list.d/mariadb.list
Содержимое файла:
# MariaDB 10.8 repository list - created UTC
# https://mariadb.org/download/
deb [arch=amd64,arm64,ppc64el,s390x] https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main
deb-src https://mirror.docker.ru/mariadb/repo/10.8/ubuntu focal main
Импортируем ключ репозитория:
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
Обновляем кэш пакетов:
apt update
Устанавливаем СУБД:
apt install mariadb-server
systemctl enable mariadb
systemctl start mariadb
Задаем пароль для суперпользователя СУБД:
mysqladmin -u root password
Устанавливаем и запускаем NGINX:
apt install nginx
systemctl enable nginx
systemctl start nginx
Устанавливаем нужную версию PHP (в примере — 8.3):
export PHP_VER=8.3
Устанавливаем компоненты PHP:
apt install php${PHP_VER}-fpm php${PHP_VER}-mysql php${PHP_VER}-pear php${PHP_VER}-cgi php${PHP_VER}-common php${PHP_VER}-ldap php${PHP_VER}-mbstring php${PHP_VER}-snmp php${PHP_VER}-gd php${PHP_VER}-xml php${PHP_VER}-bcmath --no-install-recommends
Редактируем /etc/php/${PHP_VER}/fpm/php.ini
:
date.timezone = "Europe/Moscow"
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000
Запускаем PHP-FPM:
systemctl enable php${PHP_VER}-fpm
systemctl restart php${PHP_VER}-fpm
Редактируем /etc/nginx/sites-enabled/default
:
index index.php index.html;
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
Проверяем и перезапускаем NGINX:
nginx -t && nginx -s reload
Создаем тестовый файл:
vi /var/www/html/index.php
Содержимое:
Добавляем репозиторий Zabbix:
curl -sLO https://repo.zabbix.com/zabbix/6.1/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.1-1%2Bubuntu20.04_all.deb
dpkg -i zabbix-release_*.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-get zabbix-sql-scripts
Создаем базу и пользователя:
mysql -uroot -p
Внутри MySQL:
CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbixpassword';
quit
Импортируем схему:
cd /usr/share/zabbix-sql-scripts/mysql
gunzip server.sql.gz
mysql -u root -p zabbix < server.sql
Редактируем /etc/zabbix/zabbix_server.conf
:
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpassword
Создаем каталог (если отсутствует):
mkdir /etc/zabbix/zabbix_server.conf.d
systemctl enable zabbix-server
systemctl start zabbix-server
Меняем корневой каталог в /etc/nginx/sites-enabled/default
:
root /usr/share/zabbix;
location ~ \.php$ {
set $root_path /usr/share/zabbix;
...
}
Перезапускаем NGINX:
systemctl restart nginx
Открываем в браузере http://
, проходим мастер установки, указываем:
zabbixpassword
После завершения вход в веб-интерфейс:
Admin
zabbix
apt install zabbix-agent2
Редактируем /etc/zabbix/zabbix_agent2.conf
:
Server=127.0.0.1
Запускаем агент:
systemctl enable zabbix-agent2
systemctl restart zabbix-agent2
В том же конфиге добавляем:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK 001
TLSPSKFile=/etc/zabbix/agent_key.psk
Генерируем ключ:
openssl rand -hex 32 > /etc/zabbix/agent_key.psk
cat /etc/zabbix/agent_key.psk
Перезапускаем агент:
systemctl restart zabbix-agent2
В веб-интерфейсе Zabbix: Настройка → Узлы сети → ваш сервер → вкладка «Шифрование» → указываем PSK-идентификатор и ключ → Обновить.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!