Zug*_*dud 10 java syslog logback
我使用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>
Run Code Online (Sandbox Code Playgroud)
我更新了rsyslog.conf以监听UDP事件,取消注释以下行:
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514
Run Code Online (Sandbox Code Playgroud)
conf更改后重新启动syslog守护程序.
在我的所有测试盒上,它似乎工作得很好!但是,系统syslog上的一个没有被我的进程更新(其他东西正在更新它就好了),我想知道如何调试这个问题?我想到的任何事情都会浮现在脑海中?
谢谢你的任何想法
Tro*_*vis 27
当然.按顺序松散,尝试以下4个测试:
1.测试logback:显而易见的一个:添加FileAppender作为第二个appender并确保事件出现在那里.你的帖子暗示"它"在开发中工作,但我不确定它是否是logback或appender,并且配置片段没有appender-ref要发送事件的部分SYSLOG.
如果您FileAppender什么都没收到,那就是应用程序/环境问题,或者此服务器没有生成提供给appender的事件.
2.确认正在生成消息:假设FileAppender接收消息但syslog没有,请运行:
tcpdump -n -i lo -X -s 1500
..输出UDP数据包的完整有效负载lo.让您的应用生成日志消息.您应该看到至少有1个数据包发往127.0.0.1:514.如果你不这样做,那就是发件人.如果你这样做,那就是rsyslog配置.
3.确认rsyslog绑定到端口514:
lsof -i :514
或者如果你没有lsof并且确定另一个进程没有绑定到514:
netstat -ln | grep 514
Run Code Online (Sandbox Code Playgroud)
4.查看rsyslog收到的内容:如果正在将事件发送到端口514,则在停止实时rsyslogd后,在调试模式下重新启动它并连接到终端:
/etc/init.d/rsyslog stop
rsyslogd -d
Run Code Online (Sandbox Code Playgroud)
你应该看到到达的事件.如果没有人发现问题,那就远远不够了.我已经在已知良好的J2EE和syslog环境中获得了有效的logback配置.但希望上面的一件事能做到.
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |