Расскажите подробнее о настройке Zabbix на Linux.

«Расскажите подробнее о настройке Zabbix на Linux.» — вопрос из категории Мониторинг и логирование, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Настраивал Zabbix 6 LTS на Ubuntu Server для мониторинга инфраструктуры. Вот ключевые шаги и мои практические заметки:

1. Установка из официальных репозиториев (Ubuntu 22.04):

# Добавление репозитория Zabbix
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo apt update

# Установка сервера, фронтенда и агента
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

2. Подготовка базы данных (использовал MariaDB):

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;

3. Импорт начальной схемы и данных:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

4. Конфигурация сервера (/etc/zabbix/zabbix_server.conf):

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=StrongPassword123!
# Увеличение количества процессов для обработки данных
StartPollers=20
StartPreprocessors=10

5. Настройка веб-сервера (Nginx + PHP-FPM): Я предпочитаю Nginx. Важно правильно настроить fastcgi_params и права на директорию /usr/share/zabbix/.

6. Добавление первого хоста: На мониторируемый сервер устанавливается zabbix-agent2. В его конфиге (/etc/zabbix/zabbix_agent2.conf) указывается IP-адрес Zabbix-сервера:

Server=192.168.1.10
ServerActive=192.168.1.10
Hostname=production-db-01

Почему такая настройка: Использование zabbix-agent2 дает больше возможностей "из коробки" (мониторинг Docker, журналы). Отдельная БД и тюнинг параметров сервера необходимы для стабильной работы под нагрузкой. Все эти шаги я обычно автоматизирую с помощью Ansible-плейбука.