rsyslog-分离本地和远程日志

rsyslog-分离本地和远程日志

我想使用 rsyslog 捕获来自 SAN、路由器等的事件。(这将转发到 kafka 并最终转发到 elasticsearch)到目前为止,一切正常。我已在 /etc/rsyslog.d 中的配置文件中配置了此功能

不起作用的是所有本地日志流量(来自运行 rsyslog 的主机)也正在转发。我需要一种方法将本地日志发送到“标准”本地端点,并将远程日志发送到 kafka。

使用 rsyslog 可以实现这个吗?

答案1

以下是看起来可行的方法的开始:

module(load="imuxsock")  # will listen to your local syslog
module(load="omkafka")   # lets you send to Kafka

template(name="json_lines" type="list" option.json="on") {
  constant(value="{")
  constant(value="\"timestamp\":\"")
  property(name="timereported" dateFormat="rfc3339")
  constant(value="\",\"message\":\"")
  property(name="msg")
  constant(value="\",\"host\":\"")
  property(name="hostname")
  constant(value="\",\"severity\":\"")
  property(name="syslogseverity-text")
  constant(value="\",\"facility\":\"")
  property(name="syslogfacility-text")
  constant(value="\",\"syslog-tag\":\"")
  property(name="syslogtag")
  constant(value="\"}")
}

main_queue(
  queue.workerthreads="1"      # threads to work on the queue
  queue.dequeueBatchSize="100" # max number of messages to process at once
  queue.size="10000"           # max queue size
)

if $hostname != $$myhostname then {
    action(
      broker=["kafka.server:9092"]
      type="omkafka"
      topic="syslog.inbound"
      template="json_lines"
    )

    stop
}

它确实需要完善,但它似乎可以分离外部/内部系统日志消息。

相关内容