2015-06-17 2 views
0

Как получить данные из smokeping rrd-файла и сделать вывод с txt-файлом, когда хост идет вниз или вверх в perl или php?Smokeping rrdtool fetch

Я отправляю 10 ICMP-пакетов каждые 60 секунд.
Я хочу, чтобы получить данные из RRD и разобрать его, чтобы иметь такой вывод:

17 июня 2015 12:03:00 - хозяин вниз
17 июня 2015 12:05:00 - хозяин вверх

eg пройдет вниз, когда не получено никаких данных или потери пакетов> 50%

Я уже пробовал:

rrdtool fetch /var/lib/smokeping/Host/Swadzim.rrd AVERAGE 
1434546000: -nan 0.0000000000e+00 1.1677527778e-02 9.5520694444e-03 1.0010958333e-02 1.0222916667e-02 1.0669152778e-02 1.1147625000e-02 1.1677527778e-02 1.2782055556e-02 1.3641402778e-02 1.5893805556e-02 2.0290416667e-02 1434546720: -nan 0.0000000000e+00 1.0685083333e-02 9.2544444444e-03 9.5931388889e-03 9.9897500000e-03 1.0258138889e-02 1.0441527778e-02 1.0685083333e-02 1.1117277778e-02 1.1553638889e-02 1.2946375000e-02 1.4254041667e-02 
+0

Вам бы лучше не читать его с rrd и вместо этого вместо этого использовать вместо него операцию «ping». – Sobrique

+0

Я стараюсь уже: RRDtool принести /var/lib/smokeping/Host/Swadzim.rrd СРЕДНЕГО
1434546000: -nan 0.0000000000e + 00 1.1677527778e-02 9.5520694444e-03 1.0010958333e-02 1.0222916667e-02 1.0669152778 e-02 1.1147625000e-02 1.1677527778e-02 1.3641402778e-02 1.5893805556e-02 2.0290416667e-02 1434546720: -nan 0,0000000000e + 00 1.0685083333e-02 9.2544444444e-03 9.5931388889e-03 9.9897500000e -03 1,0258138889e-02 1.0441527778e-02 1.0685083333e-02 1.1157277778e-02 1.1553638889e-02 1.2946375000e-02 1.4254041667e-02 –

+0

Вы можете начать с некоторых модулей RRD в CPAN: https://metacpan.org/pod/distribution/rrdpoller/rrdpoller –

ответ

0

Я думаю, что у Вас есть ошибочное впечатление, что rrdtool делает. Это очень хороший инструмент для сбора данных временных рядов, их сортировки и архивирования. Но неизбежно - когда вы do архивируете данные, вы теряете разрешение, потому что вы агрегируете свои результаты.

Теперь, что smokeping делает это - пинг сервера, отслеживает задержку и потерю пакетов.

Это все к лучшему, но если вы хотите контролировать и сигнализировать на основе этого - то, что вам действительно нужно, - это выполнить тест ping самостоятельно, а не читать из архивных журналов. В лучшем случае вы будете получать устаревшую информацию.

Возможно, вы извлечете нужные данные из rrd. Я не могу сделать это за вас, потому что у меня недостаточно информации. Что вам нужно сделать, это:.

  • Выяснить, какие из источников данных (DS) в вашем RRD вы заинтересованы в
  • Выяснить, какие из Round-Robin-архивов (RRAS), которые вы хотите смотреть на.
  • Получить последние данные для этого образца.
  • Alert основывается на нем.

rrdtool fetch, о котором вы говорите, - это шаг в правильном направлении. Вы, вероятно, нужно что-то вроде:

rrdtool fetch filename.rrd AVERAGE -s -5m 

Но тогда - от значений, которые вы получаете - вы должны выяснить, какие из них актуальны. (Возможно, вам стоит взглянуть на функцию консолидации LAST, а также на то, что может быть актуальным).

rrdtool info filename.rrd 

может помочь вам понять это - в нем будут перечислены источники данных, которые вы регистрируете (в порядке).

Но на самом деле - гораздо проще поймать результаты пинга в первую очередь, а не пинговать что-то, обрабатывать данные, архивировать их, консолидировать и извлекать усредненный по времени консолидированный результат из архива.

Смежные вопросы