Настройка сетевого мониторинга с помощью Zabbix
Сетевой мониторинг — важная часть администрирования. Zabbix — мощное решение с удобным интерфейсом и гибкими настройками. В этой статье я расскажу, как установить и настроить Zabbix Server на сервере с Ubuntu/Debian, подключить клиента и настроить мониторинг.
Подготовка сервера
Обновите пакеты:
sudo apt update && sudo apt upgrade -y
Установите необходимые зависимости:
sudo apt install -y wget curl gnupg2 software-properties-common
Добавьте репозиторий Zabbix: (Последнюю версию посмотрите на сайте Zabbix) Я буду использовать 7 версию.
# wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb # dpkg -i zabbix-release_latest_7.0+debian12_all.deb # apt update
Установите сервер Zabbix и базу данных MySQL:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Настройка базы данных
sudo mysql -uroot -p CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EXIT;
Импортируйте начальные данные:
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Выключите опцию log_bin_trust_function_creators после импорта схемы базы данных.
# mysql -uroot -p password mysql> set global log_bin_trust_function_creators = 0; mysql> quit;
Настройте базу данных для Zabbix сервера
Отредактируйте файл /etc/zabbix/zabbix_server.conf
DBPassword=password
Настройте PHP для веб-интерфейса
Отредактируйте файл /etc/zabbix/nginx.conf раскомментируйте и настройте директивы ‘listen’ и ‘server_name’.
# listen 8080; # server_name example.com;
Запустите процессы Zabbix сервера и агента
Запустите процессы Zabbix сервера и агента и настройте их запуск при загрузке ОС.
# systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm # systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm
Доступ к веб-интерфейсу
- Перейдите в браузере по адресу
http://<ваш_IP_адрес>/zabbix
. - Используйте логин/пароль по умолчанию (
Admin
/zabbix
) для входа.
Добавление клиента (Zabbix Agent)
- Установите агент на клиенте:
sudo apt install -y zabbix-agent
Настройте агент:
sudo nano /etc/zabbix/zabbix_agentd.conf
Измените строки:
Server=<IP_сервера_Zabbix> ServerActive=<IP_сервера_Zabbix> Hostname=<Уникальное_имя_хоста>
Перезапустите службу агента:
sudo systemctl restart zabbix-agent sudo systemctl enable zabbix-agent
Настройка мониторинга
- В веб-интерфейсе перейдите в Configuration → Hosts.
- Нажмите Create host, укажите:
- Имя хоста.
- IP-адрес клиента.
- Группу.
- Добавьте мониторинг параметров, используя шаблоны.
Пример Bash-скрипта для мониторинга состояния агента
Скрипт проверяет, работает ли Zabbix Agent, и перезапускает его при необходимости:
#!/bin/bash # Проверка состояния Zabbix Agent status=$(systemctl is-active zabbix-agent) if [ "$status" != "active" ]; then echo "Zabbix Agent не работает. Перезапуск..." systemctl restart zabbix-agent echo "Zabbix Agent успешно перезапущен." else echo "Zabbix Agent работает нормально." fi
Сохраните скрипт, например, как check_zabbix_agent.sh
, и добавьте в Cron:
*/5 * * * * /path/to/check_zabbix_agent.sh >> /var/log/check_zabbix_agent.log 2>&1
Настройка уведомлений
Одной из ключевых функций Zabbix является возможность отправки уведомлений при возникновении проблем. Настроим отправку уведомлений на электронную почту.
Настройка почтового сервера
Убедитесь, что на вашем сервере установлен и настроен почтовый сервер (например, Postfix):
sudo apt install -y postfix
Во время установки выберите вариант Internet Site и укажите имя домена сервера.
Настройка действия уведомления
- Перейдите в Administration → Media types.
- Выберите Email и настройте:
- SMTP server:
localhost
. - SMTP helo: ваш домен.
- SMTP email: адрес отправителя, например
zabbix@example.com
.
- SMTP server:
- Перейдите в Administration → Users, выберите пользователя, которому нужно отправлять уведомления.
- В разделе Media добавьте e-mail и привяжите его к ранее настроенному типу уведомления.
3. Настройка триггеров уведомлений
- Перейдите в Configuration → Actions.
- Создайте новое действие, например, “Уведомления о проблемах”.
- В разделе Conditions укажите, какие триггеры вызывают уведомления (например, “Severity >= Warning”).
- В разделе Operations добавьте действие “Отправить уведомление”, укажите получателей и медиатип (email).
Настройка пользовательских шаблонов мониторинга
Zabbix поддерживает создание пользовательских шаблонов для мониторинга специфических параметров.
Пример: мониторинг загрузки диска с помощью пользовательского ключа
- Добавление ключа в агенте
Измените файл конфигурации агента:
sudo nano /etc/zabbix/zabbix_agentd.conf
Добавьте:
UserParameter=disk.usage,df -h / | grep '/' | awk '{print $5}'
Перезапустите агент:
sudo systemctl restart zabbix-agent
- Создание элемента в интерфейсе Zabbix
- Перейдите в Configuration → Templates.
- Выберите шаблон или создайте новый.
- Добавьте элемент данных (Item) с ключом
disk.usage
и укажите тип данныхNumeric
.
- Настройка триггера
Создайте триггер, чтобы уведомлять, если использование диска превышает 80%:
{host:disk.usage.last()} > 80
Оптимизация производительности Zabbix
Для масштабных установок Zabbix важно оптимизировать производительность.
- Настройка буферов и кэшей
Измените файл конфигурации сервера:
sudo nano /etc/zabbix/zabbix_server.conf
Увеличьте значения:
CacheSize=128M HistoryCacheSize=64M TrendCacheSize=32M
Очистка базы данных
Настройте периодическую очистку старых данных с помощью встроенной функции Housekeeping.
sudo crontab -e
Добавьте задачу для оптимизации:
0 3 * * * zabbix_server -R housekeeper_execute
Использование прокси-серверов Zabbix
Для мониторинга удалённых объектов настройте Zabbix Proxy, чтобы снизить нагрузку на основной сервер.
Заключение
Теперь ваш Zabbix Server настроен для мониторинга сети и серверов, отправляет уведомления и может быть легко расширен для мониторинга новых систем. Вот итоговые шаги, которые вы выполнили:
- Установили и настроили Zabbix Server.
- Подключили Zabbix Agent для мониторинга клиента.
- Настроили уведомления и пользовательские шаблоны.
- Оптимизировали производительность сервера.
Zabbix — это гибкое и мощное средство для контроля инфраструктуры. С помощью пользовательских настроек вы можете адаптировать его под любые потребности.