Установка и запуск Zabbix agent2 на Ubuntu
Опубликовано:
В инструкции установим и запустим zabbix-agent2 на Ubuntu 22.04 или 24.04 из официального репозитория Zabbix. Настроим пассивные и активные проверки, брандмауэр и при необходимости шифрование PSK. Zabbix Server к моменту выполнения уже должен быть развёрнут.
Установка zabbix-agent2
Конфигурация агента
Брандмауэр
Шифрование PSK
Запуск и проверка
Узел в веб-интерфейсе Zabbix
Решение типичных проблем
Установка zabbix-agent2
Пакет из репозиториев Ubuntu часто устаревший — подключаем официальный репозиторий Zabbix и ставим агент.
В идеале, версия zabbix агента должна совпадать с версией сервера.
Предположим, что версия сервера Zabbix — 7.4. Для удобства работы создадим переменную:
ZX_VER=7.4
* доступные для установки версии можно найти на официальном сайте.
а) Ubuntu 24.04:
Переходим во временную папку и загружаем deb-пакет с настройками репозитория:
cd /tmp
wget https://repo.zabbix.com/zabbix/${ZX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
Устанавливаем его:
dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
б) Ubuntu 22.04:
cd /tmp
wget https://repo.zabbix.com/zabbix/${ZX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest+ubuntu22.04_all.deb
Настройка репозитория завершена.
Обновляем кэш репозитория и устанавливаем агента:
apt update
apt install zabbix-agent2
Проверяем, что агент установлен и смотрим версию:
zabbix_agent2 -V
Агент установлен.
Конфигурация агента
Предположим, что мы настраиваем заббикс для:
- Zabbix Server — 192.168.1.10
- Компьютер с агентом — 192.168.1.20
- Имя узла, где запускается агент — web01.example.com
Файл конфигурации — /etc/zabbix/zabbix_agent2.conf. Искомые строки по умолчанию закомментированы — снимаем # и подставляем свои значения.
Открываем конфиг:
vi /etc/zabbix/zabbix_agent2.conf
Приводим к следующему виду:
Server=192.168.1.10
...
ServerActive=192.168.1.10
...
Hostname=web01.example.com
* где:
- Server — IP или DNS Zabbix Server/Proxy. Список хостов, которым разрешено опрашивать этого агента (пассивный режим, порт 10050). Несколько адресов через запятую.
- ServerActive — адрес сервера, к которому агент сам подключается (активный режим, порт 10051). Если активные проверки не нужны — строку закомментируйте.
- Hostname — имя узла в Zabbix. Должно точно совпадать с полем Host name в веб-интерфейсе, с учётом регистра.
Брандмауэр
Настраиваем только тот инструмент, который используется на сервере. IP 192.168.1.10 — адрес Zabbix Server из конфига.
iptables
Разрешаем входящие подключения от Zabbix Server для пассивных проверок — порт TCP 10050:
iptables -I INPUT -p tcp -s 192.168.1.10 --dport 10050 -m comment --comment "Zabbix agent2" -j ACCEPT
Для активных проверок агенту нужно исходящее подключение к серверу — порт TCP 10051:
iptables -I OUTPUT -p tcp -d 192.168.1.10 --dport 10051 -m comment --comment "Zabbix active checks" -j ACCEPT
* правила iptables не сохраняются после перезагрузки. Для постоянного хранения: apt install -y iptables-persistent, затем netfilter-persistent save.
Сохраняем правила:
netfilter-persistent save
ufw
Проверяем, активен ли ufw на сервере:
ufw status
* если Status: inactive — блок ufw пропускаем.
Разрешаем пассивные проверки — входящий TCP 10050 только с Zabbix Server:
ufw allow from 192.168.1.10 to any port 10050 proto tcp comment 'Zabbix agent2'
Для активных проверок разрешаем исходящий TCP 10051 к серверу:
ufw allow out to 192.168.1.10 port 10051 proto tcp comment 'Zabbix active checks'
Применяем правила:
ufw reload
Брандмауэр настроен.
Шифрование PSK (опционально)
По умолчанию трафик между агентом и сервером не шифруется. Если сеть между ними доверенная — раздел пропускаем. Если нет — настроим PSK-шифрование.
Генерируем случайный ключ:
openssl rand -hex 32
* сохраните вывод — это значение PSK (256 бит, 64 hex-символа). Его же позже укажем в веб-интерфейсе Zabbix.
Создаём файл с ключом:
vi /etc/zabbix/zabbix_agent2.psk
af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429
* в файле — одна строка с hex-ключом из вывода openssl rand, без пробелов и префикса identity.
Ограничиваем доступ к файлу с ключом:
chmod 640 /etc/zabbix/zabbix_agent2.psk
chown root:zabbix /etc/zabbix/zabbix_agent2.psk
Снова открываем конфиг агента и добавляем параметры шифрования:
vi /etc/zabbix/zabbix_agent2.conf
TLSConnect=psk
TLSAccept=unencrypted,psk
TLSPSKFile=/etc/zabbix/zabbix_agent2.psk
TLSPSKIdentity=PSK-001-web01
* где:
- TLSConnect — шифрование исходящих соединений (активные проверки).
- TLSAccept — шифрование входящих соединений (пассивные проверки, zabbix_get).
- TLSPSKFile — файл с hex-значением PSK.
- TLSPSKIdentity — идентификатор ключа (не секрет). Тот же identity и тот же PSK указываем на узле в Zabbix → вкладка Encryption.
Запуск и проверка
Перезапускаем агент, чтобы применить изменения конфига, и проверяем статус службы:
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
* после каждого изменения /etc/zabbix/zabbix_agent2.conf снова выполняем systemctl restart zabbix-agent2. Ожидаем Active: active (running).
На агенте проверяем, что процесс отвечает:
zabbix_agent2 -t agent.ping
* в ответе должно быть 1 — процесс агента работает.
Убеждаемся, что агент слушает нужный порт:
ss -lntp | grep 10050
* агент слушает 0.0.0.0:10050 — готов принимать пассивные подключения.
С Zabbix Server (пакет zabbix-get на сервере) проверяем доступность агента по сети:
zabbix_get -s 192.168.1.20 -k agent.ping
* IP 192.168.1.20 — адрес узла с агентом. Ответ 1 — пассивная проверка и сеть работают.
Если что-то идёт не так — смотрим лог агента:
tail -n 50 /var/log/zabbix/zabbix_agent2.log
Агент запущен и доступен по сети.
Узел в веб-интерфейсе Zabbix
Агент настроен на своей стороне. Теперь добавим сервер как узел (host) в веб-интерфейсе Zabbix, чтобы он начал собирать данные.
Data collection → Hosts → Create host
Вкладка Host
- Host name — web01.example.com (как Hostname в конфиге агента).
- Host groups — например, Linux servers.
Interfaces
- Тип Agent.
- IP address — 192.168.1.20 (адрес сервера с агентом).
- Port — 10050.
Templates
- Linux by Zabbix agent — для пассивных проверок (Server в конфиге).
- Linux by Zabbix agent active — для активных проверок (ServerActive в конфиге).
- Если настроены оба режима — привязываем оба шаблона.
Encryption
Только если настроен PSK на агенте:
- Connections to host → PSK (пассивные проверки).
- Connections from host → PSK (активные проверки).
- PSK identity — PSK-001-web01.
- PSK — hex-ключ из openssl rand.
Нажимаем Add. Через 1–2 минуты в Monitoring → Latest data появятся метрики. Зелёный ZBX в списке хостов — агент доступен.
Узел добавлен, сервер под мониторингом.
Решение типичных проблем
Get value from agent failed
agent.ping с сервера не отвечает, в интерфейсе красный статус агента.
Причина: брандмауэр блокирует TCP 10050, неверный IP в Server, агент не запущен.
Решение: проверьте systemctl status zabbix-agent2, правила ufw/iptables и что IP сервера в Server= совпадает с адресом, с которого идёт опрос.
Host is not monitored / No data
Узел создан, но метрик нет.
Причина: Hostname в конфиге не совпадает с Host name в Zabbix (регистр важен) или не привязан нужный шаблон.
Решение: выровняйте имя в /etc/zabbix/zabbix_agent2.conf и в карточке хоста. Для пассивных проверок нужен шаблон Linux by Zabbix agent, для активных — Linux by Zabbix agent active. Перезапустите агент: systemctl restart zabbix-agent2.
TLS handshake failed
В логе агента или сервера ошибки PSK/TLS.
Причина: разные PSK или identity на агенте и в интерфейсе Zabbix.
Решение: сверьте TLSPSKIdentity, содержимое /etc/zabbix/zabbix_agent2.psk и вкладку Encryption узла. После правок перезапустите агент.
Агент не стартует после правок конфига
systemctl status zabbix-agent2 показывает failed.
Причина: синтаксическая ошибка в конфиге или недоступный файл TLSPSKFile.
Решение: zabbix_agent2 -t agent.ping и tail -n 100 /var/log/zabbix/zabbix_agent2.log. Проверьте права на конфиг и PSK-файл (640, владелец root:zabbix).
Connection refused / порт закрыт снаружи
С сервера мониторинга zabbix_get зависает или сразу отдаёт ошибку соединения, при этом локально zabbix_agent2 -t agent.ping отвечает 1.
Причина: порт 10050 не проброшен на уровне сети (провайдер, security group в облаке) — правило локального брандмауэра здесь ни при чём.
Решение: проверьте правила на уровне облака или внешнего файрвола, не только ufw/iptables на самой машине. Для проверки доступности порта снаружи используйте nc -zv 192.168.1.20 10050 с сервера мониторинга.