ofertix/log-monitor

LogMonitor 是一个负责解析所有类型的日志文件并将错误和统计信息发布到配置通道的组件。

dev-master 2012-07-08 10:55 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:49:37 UTC


README

LogMonitor 是一个负责解析所有类型的日志文件并将错误和统计信息发布到配置通道的组件。发布的消息可以被 "Collector" 组件或 "WebUIMonitor" 组件收集。

文件使用 tail -f 命令进行解析。每一行都会发送到配置的类中,然后解析的数据会被发送到配置的演员类,这些类可以发布事件、统计信息、错误等。

需求

  • PHP 5.3.2 及以上版本,并安装了 pcntl 扩展。
  • RabbitMQ 或 ZMQ。
  • tail

使用的库和服务

  • PHP
    • Pimple
    • Symfony 组件
      • ClassLoader
      • YAML
    • PhpAmqpLib
  • RabbitMQ/ZMQ+OpenPGM

安装

最佳安装方法是克隆仓库,然后根据需要配置。请参阅 "配置" 部分。

克隆后,您必须使用 "composer" 安装依赖项

php composer.phar update

用法

开始监控。示例

rm -f test/*.sdf; php app/log_monitor.php -c app/config/test_upstream_log.yml
  • 如您所见,在执行命令之前,我们删除了 *.sdf 文件。这些文件包含有关读者在监控文件中最后位置的详细信息。
  • 使用 test/listenRabbitMQ.php 查看解析器发布的消息。

配置

所有配置均使用 YAML 文件完成。

配置文件结构为一个或多个以您想要的名称命名的部分。每个部分有 4 个子部分

  • file

    • 将被解析和监控的文件的路径。
  • file_stat

    • 写入监控文件位置数据的路径。
  • parser

    • 负责解析文件的类名。
  • actors

    • 接收解析数据并执行类代码中定义的操作的演员类列表。
  • actor_config

    • 传递给演员类的配置参数。

请参阅配置文件以获取更多详细信息和示例。

额外说明

我们使用 "atime" 参数从统计信息中检测监控文件是否已轮换。您必须使用 /etc/fstab 中的 "noatime" 参数挂载文件系统。

由于使用 OpenPGM PUB/SUB 与 ZMQ 一起使用时存在内存泄漏,因此不再使用 ZMQ。