技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统运维 --> 关于Rsyslogd 的一些配置 (高性能、高可用 rsyslogd)

关于Rsyslogd 的一些配置 (高性能、高可用 rsyslogd)

浏览:2737次  出处信息

     最近公司的日志传输服务器因网间带宽被调整后出现了日志堵塞的情况,更为严重的是公司大量的业务日志也是通过 PHP 的 syslog接口传输的。这样,因为rsyslog的新版本默认不期望丢弃任何数据,而rsyslog中的日志又传输不出去,导致了业务在写日志的时候“被”堵塞住了。

      拿到rsyslog的配置后,发现仅有一些简单的关于传输逻辑的配置,而关于rsyslog进程、队列、传输效率的配置参数都采用默认,这种仅仅能够 work around 的配置在测试或运行初期是允许存在一段时间的,在系统、环境正常的时候能够运行。一旦出现异常,各种问题就全出来了。

      推荐的文档和我认为比较关键的配置请见下图:

rsyslog_config_opt      几点说明:

  • 推荐仔细阅读 第一篇 关于 rsyslog queue的文档,细节几乎都在这篇文档里。

  • 定义 $MainMsgQueueFilename 可以简单理解为队列入口无限大,$MainMsgQueueMaxDiskSpace来控制大小。

  • 队列的堵塞可能的原因是各种其他原因导致的 MainMsg 满了,而默认配置下,rsyslog不主动丢弃消息。

  • $QueueHighWatermark可以控制 MainMsgQueue 如何使用 disk作为队列存储,而不再是仅仅使用内存。

  • $MainMsgQueueDiscardMark 和 $MainMsgQueueQueueDiscardSeverity 配合控制如何丢弃消息。

  • 在我的 x220i ubuntu 环境下,可以看到几十G的队列文件(网络传输堵塞时以及进入的消息量过大时)、丢弃消息的通知,内存使用的状况。因这一切都不复杂,不再赘述。

  • rsyslogd的RELP(http://www.librelp.com/)相关的内容暂未涉及。

  •    补充:

  • 附加另外两份参考: http://www.gerhards.net/download/LinuxKongress2010rsyslog.pdf      http://mperedim.wordpress.com/2010/01/21/rsyslog-evaluation/

  • 2013-07-24 补充文档:

  • On the (un)reliability of plain tcp syslog   http://blog.gerhards.net/2008/04/on-unreliability-of-plain-tcp-syslog.html
  • The Simple Event Log Protocol (SELP)  http://www.monitorware.com/en/workinprogress/selp.txt
  • RELP - the reliable event logging protocol  http://blog.gerhards.net/2008/03/relp-reliable-event-logging-protocol.html

  •       刚好微博上 @zzyongx  也提供了一个 syslog-safer (https://github.com/zzyongx/syslog-safer) 软件,大家也可以试试。

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1