Назад | Перейти на главную страницу

rsyslog - отдельные локальные и удаленные журналы

Я хочу использовать rsyslog для сбора событий из сетей SAN, маршрутизаторов и т. Д. (Это будет перенаправлено в kafka и, в конечном итоге, на elasticsearch) Пока - это работает нормально. Я настроил это в файле конфигурации в /etc/rsyslog.d

Что не работает, так это то, что весь трафик локального журнала (с хоста, на котором запущен rsyslog) также перенаправляется. Мне нужен способ отправки локальных журналов на «стандартные» локальные конечные точки и удаленных журналов в kafka.

Возможно ли это с помощью rsyslog?

Вот начало того, что вроде бы работает:

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
}

Он, безусловно, нуждается в доработке, но, похоже, он разделяет внешние и внутренние сообщения системного журнала.