Мой агент / сервер настроен правильно, я знаю это, потому что он работал. Я только что внес изменения в брандмауэр на стороне агента, ограничив доступ к порту 10050, но разрешив доступ к серверу следующим образом:
$ firewall-cmd --new-zone=zabbix
$ firewall-cmd --reload
$ firewall-cmd --get-zones
$ firewall-cmd --permanent --zone=zabbix --add-rich-rule='
rule family="ipv4"
source address="<<server_ip>>"
port protocol="tcp" port="10050" accept'
$ firewall-cmd --reload
$ firewall-cmd --zone=zmonitor --list-all
Теперь возникла проблема со связью. Журнал агента сообщает следующее:
no active checks on server [<<server_ip>>:10051]: host [<<hostname>>.local] not found
Сервер сообщает следующее:
cannot send list of active checks to "<<agent_ip>>": host [<<hostname>>.local] not found
Веб-сервер Zabbix сообщает о следующей проблеме:
Get value from agent failed: cannot connect to [[<<Agent_IP>>]:10050]: [113] No route to host
Что не так с --add-rich-rule
?
Первые две ошибки не связаны. Они сообщают вам, что имя хоста неправильно настроено для активных проверок (и соединение работает от агента к серверу).
Последняя ошибка, похоже, не связана с брандмауэром, по крайней мере, судя по сообщению об ошибке «Нет маршрута к хосту». Это скорее проблема маршрутизации / конфигурации сети.
Чтобы убедиться в этом, вы можете попробовать временно выключить брандмауэр на агенте и выполнить telnetting от сервера к агенту через порт 10050.