2009-12-29 81 views
-2

我有一個單獨的應用程序每10秒打印一次日誌。我需要從日誌文件創建RRD文件。我需要一些Perl代碼來讀取日誌文件,並僅在沒有圖形的情況下創建RRD。如何在Perl中創建RRD文件?

我也經歷了CPAN中可用的Perl模塊,即RRD::Simple和RRD :: Simple :: Examples,但我仍然需要幫助。

+2

到目前爲止,您有什麼?你有什麼嘗試?這不是一個人們會給你代碼的網站,它是一個人們可以幫助你解決編程問題的網站。 – 2009-12-29 09:41:16

+0

@Chris:我需要幫助才能開始在perl中編寫代碼來創建rrd。如果您可以向我推薦任何示例代碼。 – Space 2009-12-29 09:46:35

+0

那麼,模塊的Synopsis部分將告訴你該怎麼做。當你嘗試這些例子時發生了什麼? – 2009-12-30 10:30:56

回答

3

我會從RRD::Simple開始。文檔中有一些示例代碼。由於您不需要創建圖形,只需跳過該示例的該部分即可。

某些示例讀取單個數據樣本,調用update函數一次,然後退出。這些腳本旨在定期運行以實時收集數據。可能更適合您的需求的示例是ApacheAccessLogActivity.pl,它讀取Apache日誌文件,使用正則表達式解析每一行,進行一些分析以確定剛剛讀取的內容,然後調用update,全部進行循環。請注意,該示例使用獨立函數而不是面向對象的版本。

如果您已經閱讀過該模塊的文檔,並且需要更多關於如何使用它的信息,或者您已經嘗試過並發現它存在阻止您使用它的缺點,請更具體關於你需要做什麼。

RRDTool::OO也看起來很有希望。

0

我推薦RRDTool :: OO。 experpt from perldoc:

$ rrd-> create(...) 創建一個新的循環數據庫(RRD)。 RRD由一個或多個數據源和一個或多個檔案組成:

  $rrd->create(
       step  => 60, 
       data_source => { name  => "mydatasource", 
           type  => "GAUGE" }, 
       archive  => { rows  => 5 });