我每 10 秒有一个单独的应用程序打印日志。我需要从日志文件创建 RRD 文件。我需要一些 Perl 代码来读取日志文件并仅在没有图表的情况下创建 RRD。
我还浏览了 CPAN 中可用的 Perl 模块,即RRD::Simple和 RRD::Simple::Examples,但我仍然需要帮助。
我每 10 秒有一个单独的应用程序打印日志。我需要从日志文件创建 RRD 文件。我需要一些 Perl 代码来读取日志文件并仅在没有图表的情况下创建 RRD。
我还浏览了 CPAN 中可用的 Perl 模块,即RRD::Simple和 RRD::Simple::Examples,但我仍然需要帮助。
我将从RRD::Simple开始。文档中有一些示例代码。由于您不需要创建图表,因此只需跳过示例的该部分。
一些示例读取单个数据样本,调用该update
函数一次,然后退出。这些脚本旨在定期运行以实时收集数据。可能与您的需求更相关的示例是ApacheAccessLogActivity.pl,它读取 Apache 日志文件,使用正则表达式解析每一行,进行一些分析以找出它刚刚读取的内容,然后调用update
,所有这些都在一个循环中. 请注意,该示例使用独立函数而不是面向对象的版本。
如果您已经阅读了该模块的文档并需要有关如何使用它的更多信息,或者如果您已经尝试过它并发现它存在阻止您使用它的缺点,那么请更具体地说明您需要什么去做。
RRDTool::OO看起来也很有希望。
我推荐 RRDTool::OO。perldoc 的摘录:
$rrd->create( ... ) 创建一个新的循环数据库 (RRD)。RRD 由一个或多个数据源和一个或多个档案组成:
$rrd->create(
step => 60,
data_source => { name => "mydatasource",
type => "GAUGE" },
archive => { rows => 5 });