我有一个单独的应用程序每10秒打印一次日志。我需要从日志文件中创建RRD文件。我需要一些Perl代码来读取日志文件并仅在没有图形的情况下创建RRD。
我也经历了CPAN中可用的Perl模块,即RRD::Simple和RRD :: Simple :: Examples,但我仍然需要帮助。
答案 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 });