tmf / logfilter
一个用于过滤Web服务器访问日志的命令行应用程序
Requires
- mvar/apache2-log-parser: ~1.0
- symfony/config: ~2.6
- symfony/console: ~2.6
- symfony/dependency-injection: ~2.6
- symfony/event-dispatcher: ~2.6
- symfony/yaml: ~2.6
This package is not auto-updated.
Last update: 2024-09-28 18:10:31 UTC
README
Logfilter是一个PHP命令行应用程序,它从Web服务器的访问日志中消耗日志条目。然后每个日志条目都通过使用Symfony EventDispatcher组件实现的过滤器链进行处理,您可以在config.yml中通过容器服务定义添加自己的过滤器。想法是日志条目可以沿着过滤器链传递(或阻止)。每个过滤器(一个事件监听器)也可以影响日志条目的传播或分发新事件(如禁止主机)。
用法
-
使用config.yml配置过滤器链:声明您的EventListener作为服务,通过标签中的优先级参数按逆序排列。```yaml` tmf.logfilter.endpoint: class: Tmf\LogFilter\Filter\EndPointFilter arguments: endpoints: - "\/endpoint" tags: - { priority: 10, name: kernel.event_listener, event: logfilter.process, method: onProcess }
tmf.logfilter.requestabuse: class: Tmf\LogFilter\Filter\RequestAbuseFilter arguments: window: 5 maxHits: 3 eventDispatcher: @event_dispatcher tags: - { priority: 9, name: kernel.event_listener, event: logfilter.process, method: onProcess } - { name: kernel.event_listener, event: logfilter.report, method: onReport } - { name: kernel.event_listener, event: logfilter.ban_host, method: onBanHost }
tmf.logfilter.getparameter: class: Tmf\LogFilter\Filter\GetParameterCounter arguments: getParameter: "param" tags: - { priority: 8, name: kernel.event_listener, event: logfilter.process, method: onProcess } - { name: kernel.event_listener, event: logfilter.report, method: onReport } - { name: kernel.event_listener, event: logfilter.ban_host, method: onBanHost }
-
运行logfilter
./bin/logfilter -c config.yml access.log
扩展
您可以将自己的过滤器(如UserAgent过滤器或数据中心IP-Block过滤器)连接进来。每当分发“logfilter.process”或“logfilter.ban_host”事件时,事件监听器将接收到LogEntriesEvent事件。LogEntriesEvent可以有一个或多个LogEntry对象(多个:当日志条目被阻止时)
待办事项
- 使用控制台输出报告
- 清理