Назад | Перейти на главную страницу

collectd: плагин ping не работает случайным образом на среднем / большом количестве хостов

Я пытаюсь использовать collectd для отслеживания времени ping и трафика интерфейса более 150 хостов, используя плагины snmp и ping (узлы в основном маршрутизаторы). Серверы считывают статистику (ping / snmp) и записывают ее на диск через плагин rrdtool. С небольшим количеством хостов все в порядке - однако, когда я добавляю сотню из них, многие графики, особенно графики времени пинга, становятся фрагментированными, показывая только часть ожидаемых значений или вообще ничего. Журналы (на уровне отладки) показывают множество ошибок, например:

rrdtool plugin: rrd_update_r (...) failed: ...  illegal attempt to update using time 1393957157 when last update time is 1393957286 (minimum one second step)

Те же сайты пингуются нормально из CLI. и сообщать некоторые данные snmp (но не все и не надежно).

В часто задаваемых вопросах на сайте collectd упоминается разница во времени между клиентом и сервером или загружается несколько плагинов - и то, и другое в данном случае исключено. Запуск collectd 5.4.1 на CentOS6. Я без радости пытался поднять красные / написать темы.

РЕДАКТИРОВАТЬ: С тех пор я пытался активировать плагин write-graphite, и у меня точно такая же неисправная графика как в rrd, так и в графите. Таким образом, проблема, по-видимому, связана именно с плагином ping (а не, скажем, с дисковым вводом-выводом или бэкэндом записи).

РЕДАКТИРОВАТЬ2: У сбойных хостов (в основном) NaNs добавлен в файлы rrd / graphite / cvs.

РЕДАКТИРОВАТЬ3: После долгих проб и ошибок я обнаружил, что сбои начинаются при попытке проверить связь с 59 хостами, и в этот момент процесс collectd имеет около 63 открытых сокетов. Так что, похоже, у кого-то может быть проблема с большим количеством сокетов. Однако это не кажется жестким пределом, потому что, настраивая 116 хостов в плагине, я вижу, что collectd открывает 118 сокетов. Таким образом, это может быть вещь для каждого потока или что-то в liboping (1.5.1)