+7 (495) 107-75-45 Подключение
+7 (495) 107-75-47 Тех. поддержка 24/7
Пример
06.12.2024

Настройка сетевого мониторинга с помощью Zabbix

Сетевой мониторинг — важная часть администрирования. Zabbix — мощное решение с удобным интерфейсом и гибкими настройками. В этой статье я расскажу, как установить и настроить Zabbix Server на сервере с Ubuntu/Debian, подключить клиента и настроить мониторинг.

Подготовка сервера

Обновите пакеты:

sudo apt update && sudo apt upgrade -y

Установите необходимые зависимости:

sudo apt install -y wget curl gnupg2 software-properties-common

Установка Zabbix Server

Добавьте репозиторий 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 сервера
Настройте базу данных для 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

Доступ к веб-интерфейсу

  1. Перейдите в браузере по адресу http://<ваш_IP_адрес>/zabbix.
  2. Используйте логин/пароль по умолчанию (Admin / zabbix) для входа.

Добавление клиента (Zabbix Agent)

  1. Установите агент на клиенте:
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

Настройка мониторинга

  1. В веб-интерфейсе перейдите в Configuration → Hosts.
  2. Нажмите Create host, укажите:
    • Имя хоста.
    • IP-адрес клиента.
    • Группу.
  3. Добавьте мониторинг параметров, используя шаблоны.

Пример Bash-скрипта для мониторинга состояния агента

Пример 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 и укажите имя домена сервера.

Настройка действия уведомления

  1. Перейдите в Administration → Media types.
  2. Выберите Email и настройте:
    • SMTP server: localhost.
    • SMTP helo: ваш домен.
    • SMTP email: адрес отправителя, например zabbix@example.com.
  3. Перейдите в Administration → Users, выберите пользователя, которому нужно отправлять уведомления.
  4. В разделе Media добавьте e-mail и привяжите его к ранее настроенному типу уведомления.

3. Настройка триггеров уведомлений

  1. Перейдите в Configuration → Actions.
  2. Создайте новое действие, например, “Уведомления о проблемах”.
  3. В разделе Conditions укажите, какие триггеры вызывают уведомления (например, “Severity >= Warning”).
  4. В разделе Operations добавьте действие “Отправить уведомление”, укажите получателей и медиатип (email).

Настройка пользовательских шаблонов мониторинга

Zabbix поддерживает создание пользовательских шаблонов для мониторинга специфических параметров.

Пример: мониторинг загрузки диска с помощью пользовательского ключа

  1. Добавление ключа в агенте
    Измените файл конфигурации агента:
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 важно оптимизировать производительность.

  1. Настройка буферов и кэшей
    Измените файл конфигурации сервера:
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 — это гибкое и мощное средство для контроля инфраструктуры. С помощью пользовательских настроек вы можете адаптировать его под любые потребности.