【问题标题】:Trying to debug issue with logback syslog appender not updating syslog尝试使用 logback syslog appender 调试问题而不更新 syslog
【发布时间】:2012-04-15 11:55:55
【问题描述】:

我正在使用 logback 来更新 syslog,这就是我配置 appender 的方式:

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>localhost</syslogHost>
        <facility>LOCAL0</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>

我更新了 rsyslog.conf 以监听 UDP 事件,取消注释以下行:

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

配置更改后重新启动系统日志守护程序。

在我所有的测试盒上,它似乎工作得很好!但是,我的进程没有更新系统 syslog 上的一个(其他东西正在更新它就好了),我想知道如何调试这个问题?有什么我应该研究的吗?

感谢您的任何想法

【问题讨论】:

    标签: java logback syslog


    【解决方案1】:

    当然。大致按顺序,试试这 4 个测试:

    1.测试 logback:显而易见的一个:添加一个 FileAppender 作为第二个附加程序,并确保事件出现在那里。您的帖子暗示“它”在 dev 中有效,但我不确定它是 logback 还是 appender,并且 config sn-p 没有 appender-ref 部分来将事件发送到 SYSLOG

    如果您的 FileAppender 没有收到任何消息,这是应用程序/环境问题,或者此服务器未生成提供给 appender 的事件。

    2。确认消息正在生成:假设 FileAppender 收到消息但 syslog 没有,运行:

    tcpdump -n -i lo -X -s 1500

    .. 在lo 上输出 UDP 数据包的完整负载。让您的应用生成日志消息。您应该会看到至少 1 个发往 127.0.0.1:514 的数据包。如果你不这样做,那就是发件人。如果你这样做了,那就是 rsyslog 配置。

    3。确认 rsyslog 绑定到 514 端口:

    lsof -i :514

    或者如果您没有 lsof 并且确定另一个进程未绑定到 514:

    netstat -ln | grep 514
    

    4.查看 rsyslog 接收到的内容:如果正在向端口 514 发送事件,则在停止实时 rsyslogd 后,以调试模式重新启动它并连接到终端:

    /etc/init.d/rsyslog stop
    rsyslogd -d
    

    您应该会看到事件到达。如果这些都没有发现问题,那就是离奇的道路。我有一个在已知良好的 J2EE 和 syslog 环境中工作的logback config。不过,希望上面的某件事能做到这一点。

    【讨论】:

    • 很好的答案,非常感谢!看起来问题的原因是绑定在 514 上的另一个进程,现在我已经纠正了它,它工作正常。
    • 是的!谢谢 - 伟大的指导。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多