我使用 rsyslog 从输入文件读取日志(使用 imfile 模块),并使用 RELP(模块 omrelp)将日志发送到远程服务器。我为此使用了一个动作队列。它是一个磁盘辅助队列。 rsyslog 作为后台进程运行,并且按照文档中的建议,我没有在调试模式下运行 rsyslog。每当 rsyslog 丢弃消息时(在长时间无法访问远程服务器的情况下),我想在客户端获取调试消息。有什么方法可以在默认情况下不启用调试日志的情况下执行此操作吗?每当服务器恢复时,rsyslog 是否可以向服务器发送额外的消息(可能附加在日志中)?这将通知服务器某些消息已被丢弃。这是我的 rsyslog 配置:
module(load="omrelp")
module(load="imfile")
global(workDirectory="/tmp/rsyslog")
input(type="imfile"
File="/srv/myapp/logs/test.log"
Tag="test-"
Ruleset="sendToLogserver"
addMetadata="on")
ruleset(name="sendToLogserver") {
action(type="omrelp"
Target=<server-IP> Port=<>
queue.type="LinkedList"
queue.size="10000"
queue.filename="q_sendToLogserver"
queue.highwatermark="9000"
queue.lowwatermark="50"
queue.maxdiskspace="1g"
queue.saveonshutdown="on"
action.resumeRetryCount="-1"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
action.resumeInterval="10")
}
答案1
这可以通过以下方式实现统计量rsyslog 中的模块。该模块提供 rsyslog 内部计数器的定期输出。
它定期显示有关不同队列和操作的消息。该周期是可配置的。 impstats 发出的统计数据与其他普通消息一样。
我不需要解释更多,因为你可以在这里获取所有信息,
http://www.rsyslog.com/doc/v8-stable/configuration/modules/impstats.html
这是 rsyslog 所有者的一篇关于如何使用它的文章,