Один из серверов, контролируемых 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-сервера. Конечно, это должен быть адрес агента-сервера.
Оказывается, IP-адрес, установленный в конфигурации хоста (через веб-интерфейс), был IP-адресом самого zabbix-сервера. Конечно, это должен быть адрес агента-сервера.
Как насчет текущих настроек SELinux и iptables в окне агента? Можете ли вы от агента telnet к серверу через порт 10051?
Вы можете попробовать проверить соединение между ящиками с помощью tcpdump на агенте: tcpdump -i your_interface tcp port 10050
. Используя это, вы можете видеть входящие / исходящие пакеты.
Думаю, вам нужно понимать активный и пассивный режим подключения zabbix для решения проблемы. Здесь из документации zabbix :
Пассивные и активные проверки
Агенты Zabbix могут выполнять пассивные и активные проверки.
При пассивной проверке агент отвечает на запрос данных. Zabbix сервер (или прокси) запрашивает данные, например, загрузка ЦП и Zabbix агент отправляет результат обратно.
Активные проверки требуют более сложной обработки. Агент должен сначала получить список элементов с Zabbix сервера для независимого обработка. Затем он будет периодически отправлять новые значения на сервер.
Теперь активный режим работает, вам нужно открыть порт 10051 на Zabbix сервере, чтобы агенты клиентов могли подключаться к нему. Из того, что вы получаете, это проблема:
10945: 20151127: 141742.930 обновление конфигурации активной проверки от [zabbix-server-ip: 10051] начал сбой (невозможно подключиться к [[zabbix-server-ip]: 10051]: [4] Прерванный системный вызов)
Проведенные вами тесты связаны с подключением Zabbix сервера к клиенту, и похоже, что оно работает без проблем. Но этого недостаточно для работы активного режима. Соединение от агента клиента к серверу через порт 10051 не работает в вашем случае, и вам нужно сосредоточиться на этом.
Предоставленная вами информация вводит в заблуждение:
У zabbix-сервера другой группа безопасности, и правила для порты 10050 и 10051, поэтому их следует заблокировать. Iptables не возвращает правила.
Сказанное выше о порте не может быть правдой, так как вы используете активный режим. На сервере должен быть открыт порт 10051, чтобы клиенты могли подключиться, или вы должны использовать пассивный режим.
Поэтому, пожалуйста, проверьте необходимые правила брандмауэра между ними и убедитесь, что клиент / агент может связаться с сервером через этот порт. Я уверен, что другой агент (на другом рабочем сервере) может связаться с Zabbix сервером через порт 10051.