Один из серверов, контролируемых Zabbix, недоступен. Понятия не имею, почему это нормально работает с другими серверами.
/etc/zabbix/zabbix_agentd.conf
Я не вижу разницы между этим проблемным сервером и другим, который работает нормально.http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
Журнал агента после перезапуска службы zabbix-agent
10939:20151127:093938.268 Starting Zabbix Agent [agent-server.test]. Zabbix 2.2.11 (revision 56693).
10939:20151127:093938.268 using configuration file: /etc/zabbix/zabbix_agentd.conf
10942:20151127:093938.269 agent #1 started [listener #1]
10945:20151127:093938.269 agent #4 started [active checks #1]
10941:20151127:093938.270 agent #0 started [collector]
10944:20151127:093938.270 agent #3 started [listener #3]
10943:20151127:093938.271 agent #2 started [listener #2]
10945:20151127:141742.930 active check configuration update from [zabbix-server-ip:10051] started to fail
(cannot connect to [[zabbix-server-ip]:10051]: [4] Interrupted system call)
Когда я подключусь к агент-серверу через telnet, введите agent.version
, он возвращает: ZBXD2.2.11
Содержание /etc/zabbix/zabbix_server.conf
(сервер):
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=******
DBSocket=/var/lib/mysql/mysql.sock
SNMPTrapperFile=/var/log/snmptt/snmptt.log
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
Содержание /etc/zabbix/zabbix_agentd.conf
(агент)
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1
Server=zabbix-server-ip
ListenPort=10050
StartAgents=3
# ServerActive=zabbix-server-ip # commented out
Hostname=server.test
Timeout=3
AllowRoot=1
Include=/etc/zabbix/zabbix_agentd.d/
Netstat на сервере zabbix
$ sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7624/zabbix_server
tcp 0 0 :::10051 :::* LISTEN 7624/zabbix_server
Netstat на проблемном агенте
$ sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3248/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 3248/zabbix_agentd
Netstat на рабочем агенте
$ sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 24242/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 24242/zabbix_agentd
Активный против пассивного агента
ActiveServer
вариант со значением zabbix-server-ip. Сообщение об ошибке исчезает в журнале после перезапуска агента. Следующая попытка:
ActiveServer
устанавливается с помощью zabbix-server-ip, агент перезапускаетсяStartAgents
установлен в 0, чтобы принудительно использовать активный агент. В общем, активный режим мог быть установлен в конфигурации агента на нескольких серверах, он никогда не работал. Все отчеты от пассивных агентов.
Интерфейсы агента
Не знаю, почему так происходит, но это кажется странным.
Что может вызвать эту проблему с подключением? Как я могу переподключить сервер к агенту?
Оказалось, что IP-адрес, установленный в конфигурации хоста (через веб-интерфейс), был IP-адресом самого zabbix-сервера. Конечно, это должен быть адрес агента-сервера.
Думаю, нужно понимать активный и пассивный режим подключения zabbix для решения проблемы. Здесь из документация zabbix:
Пассивные и активные проверки
Агенты Zabbix могут выполнять пассивные и активные проверки.
При пассивной проверке агент отвечает на запрос данных. Zabbix сервер (или прокси) запрашивает данные, например, загрузку ЦП, и Zabbix агент отправляет результат обратно.
Активные проверки требуют более сложной обработки. Агент должен сначала получить список элементов с Zabbix сервера для независимой обработки. Затем он будет периодически отправлять на сервер новые значения.
Теперь для работы активного режима вам необходимо открыть порт 10051 на Zabbix сервере, чтобы агенты клиентов могли подключаться к нему. Из того, что вы получаете, это проблема:
10945: 20151127: 141742.930 обновление конфигурации активной проверки с [zabbix-server-ip: 10051] начало сбоить (невозможно подключиться к [[zabbix-server-ip]: 10051]: [4] Прерванный системный вызов)
Проведенные вами тесты связаны с подключением Zabbix сервера к клиенту, и похоже, что оно работает без проблем. Но этого недостаточно для работы активного режима. Соединение агента клиента с сервером через порт 10051 в вашем случае не работает, и вам нужно сосредоточиться на этом.
Предоставленная вами информация вводит в заблуждение:
У zabbix-server другая группа безопасности, и для портов 10050 и 10051 не установлены правила, поэтому их следует заблокировать. Iptables не возвращает правил.
Сказанное выше о порте не может быть правдой, поскольку вы используете активный режим. На сервере должен быть открыт порт 10051 для подключения клиентов, в противном случае необходимо использовать пассивный режим.
Поэтому, пожалуйста, проверьте необходимые правила брандмауэра между ними и убедитесь, что клиент / агент может подключиться к серверу через этот порт. Я уверен, что другой агент (на другом рабочем сервере) может подключиться к Zabbix серверу через порт 10051.
Как насчет текущих настроек SELinux и iptables в окне агента? Можете ли вы от агента telnet к серверу через порт 10051?
Вы можете попробовать проверить связь между ящиками с помощью tcpdump на агенте: tcpdump -i your_interface tcp port 10050
. Используя это, вы можете видеть входящие / исходящие пакеты.
Оказывается, IP-адрес, установленный в конфигурации хоста (через веб-интерфейс), был IP-адресом самого zabbix-сервера. Конечно, это должен быть адрес агента-сервера.