Недоступность zabbix agent

Доброго времени суток читатель меня. Очередная заметка (коих стало очень мало последнее время) на память и для остальных возможно будет полезна. Касается заметка zabbix_agent и zabbix_server и логики их работы. Жили не тужили как говорится и в один прекрасный день получаем «Zabbix agent on host.name is unreachable for 5 minutes»

Ну вроде стандартная ситуция, отпал агент. Может по сети недоступен стал, может файрвол кто то крутит, или вообще хост в ребут отправили. Когда тысячи хостов, то на каждый «анричибл» реагировать не всегда поулчается. А тут как раз выдалось время, начал копать почему агент недоступен? Хост пингуется, tcp/10050 отвечает, и даже если спросить какую либо метрику через zabbix_get, то хост нормально отдает данные. Но при этом в дашборде сервера там и висит проблема с недоступностью агента. Лезем в логи сервера, там у нас по данному хосту «temporarily disabling Zabbix agent checks host unavailable»

Ну и покопав еще чуть чуть логи выясняем, что сервер пытался забрать у агента определенные метрики и не смог, так как агент за время $Timeout (zabbix_server.conf) не смог передать оп ней данные и сервер посчитал его недоступным и временно перестает опрашивать его.

А теперь смотрите магию by Vladyshev:

Создаем на хосте метрику которая будет проверять с _хоста_ доступность какого либо внешнего ресурса (довольно часто нужно знать доступность чего то, не с zabbix сервера, а именно с проверяемого zabbix сервером хоста) и если вдруг заббикс агент не сможет достучать ключем net.tcp.service куда то, то получим мы что? Правильно, просто сервер перестанет запрашивать метрики у хоста и плевать, что там может быть еще миллион других метрик гораздо более важных, чем доступность какого нибудь внешнего хоста.

Мораль сего поста — подумайте 10 раз, нужны ли вам проверки с _агента хоста_ отсутствие данных по которым потенциально могут привести к временному прекращению мониторинга всего хоста?

Оцените статью