使用 rsyslog 高效记录标准输入
Posted
技术标签:
【中文标题】使用 rsyslog 高效记录标准输入【英文标题】:Efficient logging of stdin with rsyslog 【发布时间】:2010-11-15 07:28:28 【问题描述】:我们的环境:CentOS 5,附带 Apache 2.2 和 rsyslog 2.0.6
为了发送 Apache 2.2 错误日志,我们按照此处的说明进行操作:http://wiki.rsyslog.com/index.php/Working_Apache_and_Rsyslog_configuration
它可以工作,但包含的 perl 脚本效率非常低 - 它占用了大量系统资源,通过查看 Sys::Syslog::syslog 子例程,我可以想象为什么 - 它会进行大量参数解析和移动在它实际发送消息之前。
是否有一些高效的 C/C++ 程序来替换这个脚本?它似乎是一个 5 班轮,但我宁愿不重新发明***。
也欢迎其他有效地将 apache ERROR 日志发送到 syslog 的解决方案。
谢谢。
【问题讨论】:
该脚本似乎也违反了规则:search.cpan.org/perldoc/Sys::Syslog#THE_RULES_OF_SYS::SYSLOG 【参考方案1】:实际上这是相当多余的——“logger”命令行实用程序将读取标准输入并将每一行发送到 syslog,如果它没有在命令行上传递消息。
无论如何都欢迎你....:)
【讨论】:
【参考方案2】:我编写了一个 C 程序,它的功能与上面链接中的 perl 脚本相同。 它似乎需要更少的资源。 该程序的源代码已上传到我的问题中的链接。
【讨论】:
以上是关于使用 rsyslog 高效记录标准输入的主要内容,如果未能解决你的问题,请参考以下文章