-2

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

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

4

2 回答 2

3

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

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

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

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

于 2009-12-29T09:52:21.557 回答
0

我推荐 RRDTool::OO。perldoc 的摘录:

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

           $rrd->create(
                step        => 60,
                data_source => { name      => "mydatasource",
                                 type      => "GAUGE" },
                archive     => { rows      => 5 });
于 2010-01-15T07:45:48.303 回答