Решил добавить в блог процесс установки забикса для мониторинга. Есть и другие сервисы мониторинга, но забикс самый популярный, я им и пользуюсь.
Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 20.04 LTS (также протестировано на 22.04 / 24.04 и на Debian 12), версия устанавливаемого Zabbix — 6 (также протестирован Zabbix 7).
Подготовка сервера
Перед установкой Zabbix выполняем подготовительные процедуры.
1. Правильное время
Для получения актуальной информации необходимо, чтобы на сервере было правильное время.
Для этого сначала задаем правильную временную зону:
timedatectl set-timezone Europe/Moscow
Затем устанавливаем и запускаем сервис синхронизации времени:
apt install chrony
systemctl enable chrony
systemctl start chrony
2. Настройка брандмауэра
Для работы сервера, открываем следующие порты:
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
3. Обновляем список пакетов в репозитории:
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 и PHP-FPM
Устанавливаем нужную версию 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
NGINX + PHP
Редактируем /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
Установка
Добавляем репозиторий 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
Настройка zabbix
Редактируем /etc/zabbix/zabbix_server.conf:
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpassword
Создаем каталог (если отсутствует):
mkdir /etc/zabbix/zabbix_server.conf.d
Запуск zabbix-server
systemctl enable zabbix-server
systemctl start zabbix-server
Настройка nginx
Меняем корневой каталог в /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
Настройка 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-идентификатор и ключ → Обновить.
Читайте также
- Установка и настройка Zabbix-агента на CentOS.
- Установка Zabbix agent на Windows.
- Настройка сервера Zabbix 5 на CentOS 8.
- Установка и начальная настройка сервера мониторинга Zabbix на CentOS 7.
- Активация/деактивация узлов Zabbix с помощью API на PHP.
Комментарии
Пока нет комментариев. Будьте первым!