Установка Zabbix Agent 2 на Linux: полное руководство

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)
  • Необходимости мониторинга специфичных приложений через плагины
  • Современных сред с контейнеризацией

Регулярно обновляйте агент для получения новых функций и исправлений безопасности.

Оставьте комментарий