syslog-ng - syslog-ng 读取和删除通配符文件选项
问题描述
我打算用 syslog-ng 替换 logstash。我正在寻找我目前在 Logstash 中使用的 syslog-ng 中的类似功能使用 logstash “文件输入”有一种称为“读取”的模式。</p>
在这种模式下,插件将每个文件视为内容完整,即有限的行流,现在 EOF 很重要。不需要最后一个分隔符,因为 EOF 意味着可以将累积的字符作为一行发出。此外,这里的 EOF 意味着文件可以关闭并置于“未监视”状态 - 这会自动释放活动窗口中的空间。此模式还可以处理内容完整的压缩文件。读取模式还允许在完全处理文件后执行操作。(例如删除)请参阅https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html#plugins-inputs -file-file_completed_action
我浏览了https://marc.info/?l=syslog-ng&m=154148918830151&w=2 讨论了一些类似的主题。并提出以下配置。(我不知道存在,但我觉得它肯定会在我的用例中工作,并且还有助于 syslog-ng 保持其持久文件较小)
源 s_file_clearup { 通配符文件(基本目录(“/tmp/”)文件名模式(“*”)删除 EOF(是));};
我的要求是由于 mod 安全日志中的这个
并发审计日志 最初,ModSecurity 仅支持串行审计日志格式。引入并发日志记录是为了解决两个问题:
- 串行日志仅适用于中度使用,因为任何时候只能写入一个审计日志条目。串行日志记录速度很快(日志在每个事务结束时写入,一次完成),但它不能很好地扩展。在极端情况下,执行完整事务日志记录的 Web 服务器实际上在任何时候只处理一个请求。</li>
- 实时审计日志集中化需要在处理完单个审计日志条目后将其删除,而当所有警报都存储在一个文件中时,这是不可能做到的。并发审计日志在两个方面改变了 ModSecurity 的操作。要观察更改,请通过将 SecAuditLogType 更改为 Concurrent(不要忘记重新启动 Apache)来切换到并发日志记录而不激活 mlogc。首先,正如预期的那样,每个审计日志条目都将存储在一个单独的文件中。这些文件不会直接在 SecAuditLogStorageDir 指定的文件夹中创建,而是在子文件夹的精细结构中创建,其名称将从当前日期和时间构造:
./20090822
./20090822/20090822-1324
./20090822/20090822-1324/20090822-132420-SojdH8AAQEAAAugAQAAAAAA
./20090822/20090822-1324/20090822-132420-SojdH8AAQEAAAugAQEAAAAA
该方案的目的是防止在一个目录中创建过多的文件;许多文件系统都有一些限制,在繁忙的 Web 服务器上可以相对较快地达到这些限制。每个文件名的前两部分基于时间(YYYYMMDD 和 HHMMSS)。第三个参数是唯一的交易ID。
我希望我有一个有效的要求,并且其他供应商已经给出了配置选项。只是想知道我们如何使用 syslog-ng 处理这个问题
此外,我无法加入 syslog-ng 邮件列表,因为我无法访问该站点https://lists.balabit.hu/mailman/listinfo/syslog-ng 。
解决方案
推荐阅读
- ruby-on-rails - Heroku bundler 未定义方法“存在?”,无法通过 bundler 安装 gem
- excel - 使用文件夹中许多文件的新项目更新主文件
- java - Bucket4:应用多个速率限制
- php - 如果文件上传,则发送文件名,否则在 PHP 中发送空文件
- json - Vscode Bash Debug 不适用于 Linux 中的工作区配置,但使用用户配置
- jmeter - 为 JMeter JavaScript 引擎设置小数点分隔符
- c++ - C++ - 发送 Curl 请求在控制台中给出响应而不打印它
- postgresql - 用逗号分隔 postgreSQL 中的 jsonb 元素的连接
- javascript - 事件源禁用重新连接
- python - 匹配不同数据框中的值并找到最接近的值