Zabbix Agent 2 — это улучшенная версия классического Zabbix Agent, написанная на Go. Она предлагает лучшую производительность, параллельное выполнение проверок и встроенную поддержку мониторинга приложений.
Сравнение Zabbix Agent и Zabbix Agent 2
| Функция | Zabbix Agent | Zabbix Agent 2 |
|---|---|---|
| Язык | C | Go |
| Многопоточность | Нет | Да |
| Встроенные плагины | Ограничено | Много |
| Поддержка TLS | Да | Улучшенная |
| Производительность | Хорошая | Высокая |
Предварительные требования
- Сервер Zabbix (версии 5.0 или выше)
- Права root/sudo на целевом хосте
- Сетевой доступ до сервера Zabbix (порт 10050)
Установка на RHEL/CentOS/Oracle Linux/Rocky Linux/AlmaLinux
1. Добавление репозитория Zabbix
Для Zabbix 6.4 LTS:
# Для RHEL 8/CentOS 8/Rocky Linux 8/AlmaLinux 8 rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm # Для RHEL 9/CentOS 9/Rocky Linux 9/AlmaLinux 9 rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm
Для Zabbix 7.0:
# Для RHEL 8 и производных rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-7.0-1.el8.noarch.rpm # Для RHEL 9 и производных rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
2. Установка Zabbix Agent 2
# Обновление кэша пакетов dnf clean all dnf makecache # Установка агента dnf install zabbix-agent2 zabbix-agent2-plugin-* -y # Или минимальная установка dnf install zabbix-agent2 -y
3. Настройка SELinux (если включен)
# Проверка статуса SELinux getenforce # Если SELinux в режиме Enforcing setsebool -P zabbix_can_network on semanage port -a -t zabbix_port_t -p tcp 10050
Установка на Ubuntu/Debian
1. Добавление репозитория Zabbix
Для Ubuntu 22.04/20.04:
# Zabbix 6.4 LTS wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu$(lsb_release -rs)_all.deb dpkg -i zabbix-release_6.4-1+ubuntu$(lsb_release -rs)_all.deb # Zabbix 7.0 wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu$(lsb_release -rs)_all.deb dpkg -i zabbix-release_7.0-1+ubuntu$(lsb_release -rs)_all.deb
Для Debian 12/11:
# Zabbix 6.4 LTS wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian$(lsb_release -rs)_all.deb dpkg -i zabbix-release_6.4-1+debian$(lsb_release -rs)_all.deb # Zabbix 7.0 wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian$(lsb_release -rs)_all.deb dpkg -i zabbix-release_7.0-1+debian$(lsb_release -rs)_all.deb
2. Установка Zabbix Agent 2
# Обновление списка пакетов apt update # Установка агента apt install zabbix-agent2 zabbix-agent2-plugin-* -y # Или только базовый агент apt install zabbix-agent2 -y
Настройка Zabbix Agent 2
1. Основная конфигурация
Отредактируйте основной конфигурационный файл:
# RHEL/CentOS nano /etc/zabbix/zabbix_agent2.conf # Ubuntu/Debian nano /etc/zabbix/zabbix_agent2.conf
Основные параметры для изменения:
# Укажите IP сервера Zabbix или Zabbix Proxy Server=192.168.1.100 ServerActive=192.168.1.100 # Имя хоста (должно совпадать с именем на сервере Zabbix) Hostname=server1.example.com # Включить удаленные команды (0 - отключить, 1 - включить) EnableRemoteCommands=0 # Разрешить пользователей для выполнения команд AllowRoot=1 # Логирование LogType=file LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=10
2. Настройка для активных проверок (рекомендуется)
# Для активных проверок ServerActive=192.168.1.100 Hostname=server1.example.com # Частота отправки данных RefreshActiveChecks=120
3. Настройка TLS (опционально)
# Генерация сертификатов TLSConnect=psk TLSAccept=psk TLSPSKIdentity=my_agent_1 TLSPSKFile=/etc/zabbix/zabbix_agent2.psk # Генерация PSK ключа openssl rand -hex 32 > /etc/zabbix/zabbix_agent2.psk chown zabbix:zabbix /etc/zabbix/zabbix_agent2.psk chmod 600 /etc/zabbix/zabbix_agent2.psk
Запуск и управление службой
Systemd команды:
# Запуск службы systemctl start zabbix-agent2 # Автозагрузка при старте системы systemctl enable zabbix-agent2 # Проверка статуса systemctl status zabbix-agent2 # Перезагрузка службы systemctl restart zabbix-agent2 # Просмотр логов в реальном времени journalctl -u zabbix-agent2 -f
Проверка работы агента:
# Проверка версии zabbix_agent2 --version # Тестирование подключения к серверу zabbix_get -s 127.0.0.1 -k "agent.ping" # Проверка конфигурации zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf -p
Настройка брандмауэра
Для firewalld (RHEL/CentOS):
# Добавление правила firewall-cmd --permanent --add-port=10050/tcp firewall-cmd --reload # Проверка firewall-cmd --list-ports | grep 10050
Для iptables:
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT iptables-save > /etc/sysconfig/iptables # Для сохранения правил в Debian/Ubuntu netfilter-persistent save
Для ufw (Ubuntu/Debian):
ufw allow 10050/tcp ufw reload
Установка плагинов
Zabbix Agent 2 поддерживает различные плагины для мониторинга:
Доступные плагины:
# Просмотр установленных плагинов ls /usr/lib/zabbix-agent2/plugins/ # Установка дополнительных плагинов # На RHEL/CentOS: dnf install zabbix-agent2-plugin-* # На Ubuntu/Debian: apt install zabbix-agent2-plugin-*
Миграция с Zabbix Agent 1 на Zabbix Agent 2
Шаг 1: Резервное копирование
# Копирование конфигурации cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.backup # Создание нового конфига для Agent 2 cp /etc/zabbix/zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf.original
Шаг 2: Перенос UserParameters
# Создание директории для пользовательских параметров mkdir -p /etc/zabbix/zabbix_agent2.d/ # Копирование или создание конфигов cp /etc/zabbix/zabbix_agentd.conf.d/*.conf /etc/zabbix/zabbix_agent2.d/ 2>/dev/null || true
Решение распространенных проблем
1. Агент не запускается
# Проверка синтаксиса конфига zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf -p # Проверка логов tail -f /var/log/zabbix/zabbix_agent2.log journalctl -xe | grep zabbix
2. Сервер не видит агент
# Проверка подключения с сервера telnet <agent_ip> 10050 nc -zv <agent_ip> 10050 # Проверка на стороне агента ss -tlnp | grep :10050
3. Разрешение имен (DNS проблемы)
# Использование IP вместо имен в конфиге Server=192.168.1.100 ServerActive=192.168.1.100 # Или добавление в /etc/hosts echo "192.168.1.100 zabbix-server" >> /etc/hosts
4. Проблемы с правами
# Проверка владельца и прав ls -la /var/run/zabbix/ ls -la /var/log/zabbix/ # Исправление прав chown -R zabbix:zabbix /var/run/zabbix /var/log/zabbix chmod 755 /var/run/zabbix
Мониторинг состояния агента
Встроенные ключи для проверки:
# Проверка доступности агента zabbix_get -s <agent_ip> -k "agent.ping" # Получение версии агента zabbix_get -s <agent_ip> -k "agent.version" # Проверка времени работы zabbix_get -s <agent_ip> -k "agent.hostname" # Статистика агента zabbix_get -s <agent_ip> -k "agent.variant"
Оптимизация производительности
Настройки для высокой нагрузки:
# Увеличение буферов BufferSize=100 BufferSend=5 # Оптимизация плагинов Plugins.System.RunDelay=1 Plugins.UserParameter.RunDelay=1 # Отключение ненужных плагинов Plugins.<plugin_name>.Disable=yes
Автоматизация установки
Скрипт для автоматической установки:
#!/bin/bash
# auto_install_zabbix_agent2.sh
ZABBIX_SERVER="192.168.1.100"
HOSTNAME=$(hostname -f)
# Определение дистрибутива
if [ -f /etc/redhat-release ]; then
# RHEL/CentOS/Rocky
OS="rhel"
VERSION=$(rpm -E %rhel)
elif [ -f /etc/debian_version ]; then
# Ubuntu/Debian
OS="debian"
VERSION=$(lsb_release -rs | cut -d. -f1)
else
echo "Unsupported OS"
exit 1
fi
# Установка
case $OS in
"rhel")
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/$VERSION/x86_64/zabbix-release-6.4-1.el$VERSION.noarch.rpm
dnf install -y zabbix-agent2
;;
"debian")
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian$VERSION\_all.deb
dpkg -i zabbix-release_*.deb
apt update
apt install -y zabbix-agent2
;;
esac
# Настройка
sed -i "s/^Server=.*/Server=$ZABBIX_SERVER/" /etc/zabbix/zabbix_agent2.conf
sed -i "s/^ServerActive=.*/ServerActive=$ZABBIX_SERVER/" /etc/zabbix/zabbix_agent2.conf
sed -i "s/^Hostname=.*/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agent2.conf
# Запуск службы
systemctl enable --now zabbix-agent2
echo "Zabbix Agent 2 установлен и настроен"
Заключение
Zabbix Agent 2 предоставляет улучшенную производительность и функциональность по сравнению с классическим агентом. Его установка и настройка на различных дистрибутивах Linux достаточно проста и стандартизирована.
Использование Agent 2 особенно рекомендуется для:
- Систем с высокой нагрузкой мониторинга
- Требований к безопасности (улучшенная поддержка TLS)
- Необходимости мониторинга специфичных приложений через плагины
- Современных сред с контейнеризацией
Регулярно обновляйте агент для получения новых функций и исправлений безопасности.