当主机在perl或php中出现故障时,如何从smokeping rrd文件中获取数据并使用txt文件输出?
我每60秒发送10个ICMP数据包
我想从rrd获取数据并解析它以获得这样的输出:
2015年6月17日12:03:00 - 主持人已关闭
2015年6月17日12:05:00 - 主持人 正在上升
E.g。当没有数据接收或丢包时主机关闭> 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 :(得分:0)
我认为您对rrdtool
所做的事情有错误的印象。它是收集时间序列数据,整理和归档的非常好的工具。但不可避免地 - 当您 归档数据时,您会因为汇总结果而失去解决方案。
现在,吸烟的作用是 - ping服务器,跟踪延迟和数据包丢失。
这一切都很好,但是如果你想基于此监视和报警 - 你真正需要的是自己进行ping测试,而不是读出存档日志。充其量 - 您将获得过时的信息。
您可以从rrd中提取所需的数据。我无法为你做这件事,因为我没有足够的信息。你需要做的是:
rrdtool fetch
- 是朝着正确方向迈出的一步。您可能需要以下内容:
rrdtool fetch filename.rrd AVERAGE -s -5m
然而 - 从你得到的价值观 - 你需要弄清楚哪些是相关的。 (您可能希望查看LAST
合并功能以及可能相关的功能。
rrdtool info filename.rrd
可以帮助您解决这个问题 - 它会列出您正在记录的数据源(按顺序)。
但实际上 - 首先捕获ping的结果要容易得多,而不是ping某事,处理数据,存档数据,合并数据,并从中提取时间平均的合并结果。存档。
答案 1 :(得分:0)
为什么不使用抽烟内置的警报?它们非常灵活,可以满足您的需求
https://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html并搜索 *警报*
例如
*** Alerts ***
to = nettoolsalerts@xxx.com
from = Smokeping@xxx.com
+bigloss
type = loss
# in percent
pattern = ==0%,==0%,==0%,==0%,>0%,>0%,>0%
edgetrigger = yes
comment = suddenly there is packet loss