Logging rsyslog操作中的动态密钥名
我正在尝试将系统上的所有日志发送到redis数据库。为此我 在文件“/etc/rsyslog.d/redis.conf”中包含以下配置。Logging rsyslog操作中的动态密钥名,logging,redis,rsyslog,Logging,Redis,Rsyslog,我正在尝试将系统上的所有日志发送到redis数据库。为此我 在文件“/etc/rsyslog.d/redis.conf”中包含以下配置。 我按照使用队列模式的说明进行操作。以下内容 是我拥有的配置: module(load="omhiredis") action( name="push_redis" type="omhiredis" mode="queue" key="testqueue" ) 问题: 上述配置会将日志写入redis数据库,但 所有日志保持
我按照使用队列模式的说明进行操作。以下内容
是我拥有的配置:
module(load="omhiredis")
action(
name="push_redis"
type="omhiredis"
mode="queue"
key="testqueue"
)
问题:上述配置会将日志写入redis数据库,但
所有日志保持不变,即“testqueue” 我想,当一个程序登录时,应该在redis中创建一个新的密钥,这与
程序的名称。然后我就可以检查
每个程序都是分开的
Attempts :
我尝试使用如下过滤器:
if $programname == 'logger' then {
action(
name="push_redis"
type="omhiredis"
mode="queue"
key="logger"
)
}
但是我必须为每个程序编写一个过滤器,这是可能的但这不是一个可接受的解决方案
Is there any way to create a key dynamically when a program logs into redis ?
感谢您花时间阅读此问题。此问题已在8.23中使用dynakey参数解决
从理论上讲,也可以使用mode=“template”,但当消息包含空格时,它还不能正常工作。这已通过使用8.23上的dynakey参数解决 理论上也可以使用mode=“template”,但当消息包含空格时,它还不能正常工作
Is there any way to create a key dynamically when a program logs into redis ?