如何在Perl中创建RRD文件?

时间:2009-12-29 09:39:59

标签: perl rrdtool rrd

我有一个单独的应用程序每10秒打印一次日志。我需要从日志文件中创建RRD文件。我需要一些Perl代码来读取日志文件并仅在没有图形的情况下创建RRD。

我也经历了CPAN中可用的Perl模块,即RRD::Simple和RRD :: Simple :: Examples,但我仍然需要帮助。

2 个答案:

答案 0 :(得分:3)

我从RRD::Simple开始。文档中有一些示例代码。由于您不需要创建图表,只需跳过示例中的该部分。

一些示例读取单个数据样本,调用update函数一次,然后退出。这些脚本旨在定期运行以实时收集数据。可能与您的需求更相关的示例是ApacheAccessLogActivity.pl,它读取Apache日志文件,使用正则表达式解析每一行,进行一些分析以找出它刚刚读取的内容,然后调用{{1所有在一个循环中。请注意,该示例使用独立函数而不是面向对象的版本。

如果您已经阅读了该模块的文档,并且需要有关如何使用它的更多信息,或者如果您已经尝试过并发现它存在阻止您使用它的缺点,那么请更具体地说明你需要做什么。

RRDTool::OO看起来很有希望。

答案 1 :(得分:0)

我推荐RRDTool :: OO。 来自perldoc:

$ rrd->创建(...)            创建新的循环数据库(RRD)。 RRD由一个或一个组成            更多数据源和一个或多个档案:

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