LINUX.ORG.RU
ФорумAdmin

Zabbix: добавление items вида net.tcp.port[<ip>,3128] приводит к «zabbix-agent not available on <hostname>»

 


2

2

Zabbix: 3.0.3 (zabbix-server-mysql)
OS: Ubuntu 14.04 Trusty, одинаково для сервер и наблюдаемых хостов.
Number of hosts (enabled/disabled/templates): 28 / 0 / 57
Number of items (enabled/disabled/not supported): 1349 / 161 / 47
Number of triggers (enabled/disabled): 902 / 39
Required server performance, new values per second: 22.86

Конфиг zabbix server:

StartPollers=5
StartPollersUnreachable=2
StartTrappers=5
StartDiscoverers=3
StartHTTPPollers=5


Есть шаблон с тремя элементами вида net.tcp.port[<IP>,3128]. Он применяется к 10 серверам. Тип элементов: Zabbix Agent.

На наблюдаемых хостах zabbix-agent запускает процессы: 3 listener, 1 collector и 1 active check.

После включения элементов в шаблоне, на этих хостах начинаются периодические сообщения вида «zabbix-agent on <hostname> is not available for 2 minutes».

На самом деле агенты на хостах в этот момент доступны, проверяется nc -vz <hostname> 10050

На графике «Zabbix Server Preformance» значение zabbix[wcache,values] резко уходит вниз с 19-19.5 до 16-17. zabbix[queue] на том же графике остаётся в нуле.

После выключения элементов проблема сразу исчезает, то есть точно связано именно с конфигурацией заббикса, а не с сетью.

Сервер не нагружен по I/O или процу, памяти хватает. Непохоже на проблемы производительности. В логах сервера или агентов никаких ошибок не наблюдается.

Пробовал увеличить ulimit -n для процессов zabbix_server до 10240 (soft и hard) - не помогло. Пробовал увеличить StartPollers до 10 и до 15 - тоже ничего не поменялось.

zabbix_get -s <host> -t net.tcp.port[<IP>,3128] отрабатывает мгновенно для элементов, возвращающих 1(успешное соединение), и порядка 3 секунд для элементов, возвращающих 0(не удалось соединиться).

Экспериментальным путём установил, что если оставить только айтемы, возвращающие 1(успешное соединение), то проблема не возникает.

★★★

Попробовать использовать прокси. Мониторинг всех хостов перенести на прокси. БД на прокси положи в /tmp/. Пущай прокси займётся сбором данных, а сервер всеми остальными задачами.

Deleted ()

Смени Check type с simple check на zabbix agent.

snaf ★★★★★ ()
Ответ на: комментарий от Deleted

Полегче полегче. Тут всего 28мь хостов.

snaf ★★★★★ ()

да и вообще. Глянь в queue и скажи что происходит.

snaf ★★★★★ ()
Ответ на: комментарий от snaf

Смени Check type с simple check на zabbix agent.

так они и есть Zabbix agent, я сразу написал в топике

selivan ★★★ ()
Ответ на: комментарий от Deleted

Попробовать использовать прокси.

Оно не в производлительность упёрлось, нагрузка на сервер никакая.

selivan ★★★ ()
Ответ на: комментарий от snaf

да и вообще. Глянь в queue и скажи что происходит.

В Administartion/Queue все 0, на графике zabbix[queue] тоже в нуле лежит. Производительности у него с запасом, оно просто начинает терять данные от агентов, если на них есть такие айтемы.

selivan ★★★ ()
Ответ на: комментарий от selivan

не заметил. Идём дальше. Что показывает таблица очереди?

snaf ★★★★★ ()
Ответ на: комментарий от selivan

Что показывает лог агента и сервера? Вы пробовали увеличивать дефолтный timeout?

snaf ★★★★★ ()

Пока что подпёр костылём:

UserParameter=tcp_connect_check[*], /bin/nc -z "$1" "$2" -w "$3"; echo $?

(это должно быть безопасно, потому что UnsafeUserParameters=no).

Костыль работает и никаких проблем не создаёт, то есть фишка именно в некорректном поведении zabbix-agetnd при наличии items типа net.tcp.port[<IP>,<port>], проверящих недоступные порты.

selivan ★★★ ()
Ответ на: комментарий от snaf

Пробовал увеличить Timeout до 5, не помогло.

В логах сервера встречается такое:

2126:20160601:185801.820 Zabbix agent item "net.tcp.port[1.1.1.1,3136]" on host "web13" failed: first network error, wait for 15 seconds
2126:20160601:185816.870 resuming Zabbix agent checks on host "web13": connection restored


В логах агента:
28245:20160601:190601.699 TCP expect network error: cannot connect to [[1.1.1.1]:3136]: [4] Interrupted system call
28245:20160601:190601.699 Sending back [0]


Написал тикет https://support.zabbix.com/browse/ZBX-10868

selivan ★★★ ()
Последнее исправление: selivan (всего исправлений: 2)
Ответ на: комментарий от snaf

в логах есть что то со словом MySQL?

Нету. Пока подпёр костылём, посмотрим что интересного ответит поддержка заббикса.

selivan ★★★ ()

sudo cast WiZ_Ed snaf bdfy. Думаю, всем кто использует заббикс, полезно узнать про этот неочевидный момент. Если:


  • Timeout на агенте и сервере совпадают (default: timeout = 3)
  • есть элемент вида net.tcp.port[<IP>,<port>] и используещий его триггер
  • пара [<IP>,<port>] недоступна по connection timeout


то:

Zabbix-agent on {HOST.NAME} is unawailable ( trigger expression: {agent.ping.nodata(2m)} = 1 ) начинает возникать на хостах с этим элементом. Не триггер на этот элемент, а триггер на доступность агента на хосте вообще. Это баг, но парни из заббикса так не считают:

https://support.zabbix.com/browse/ZBX-10868

Версия сервера и агента 3.0.3

selivan ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.