2015-06-17 81 views
0

如何獲取smokeping rrd文件中的數據並使用txt文件輸出當主機停機或在perl或php中?吸菸rrdtool取

我每60秒發送10個ICMP數據包。
我想從RRD獲取數據並分析它有這樣的輸出:

2015年6月17日12:03:00 - 主機關閉
2015年6月17日12:05:00 - 主機 達

例如主機停機時,沒有收到任何數據或丟包率> 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.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.15536​​38889e-02 1.2946375000e-02 1.4254041667e-02 –

+0

您可以從CPAN中的一些RRD模塊開始:https://metacpan.org/pod/distribution/rrdpoller/rrdpoller –

回答

0

我覺得你什麼rrdtool做了錯誤的印象。這是收集時間序列數據,整理和歸檔的非常好的工具。但不可避免地 - 當你對歸檔數據時,你會因爲彙總結果而失去分辨率。

現在,pingping服務器,記錄延遲和數據包丟失。

這一切都很好,但是如果你想根據這個進行監測和報警 - 你真正需要的是自己做ping測試,而不是讀出存檔日誌。充其量 - 你會得到過時的信息。

您可能可以從rrd中提取所需的數據。我無法爲你做這件事,因爲我沒有足夠的信息。你需要做的是:

  • 找出哪些在你的RRD數據源(DS)你有興趣
  • 找出哪些循環賽,檔案館(RRAS)你想要的看看。
  • 檢索該樣本的近期數據。
  • 基於它的警報。

rrdtool fetch你指的是 - 朝着正確的方向邁出的一步。你可能需要這樣的東西:

rrdtool fetch filename.rrd AVERAGE -s -5m 

但是,然後 - 從你得到的價值 - 你需要找出哪些是相關的。 (您可能想看看LAST合併函數以及可能相關的函數)。

rrdtool info filename.rrd 

可以幫助您弄清楚這一點 - 它會列出您記錄的數據源(按順序)。

但實際上 - 首先要抓住ping的結果,而不是ping一些東西,處理數據,存檔,合併,並從存檔中提取時間平均的合併結果,這樣更容易。