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

Добавление тега (т.е. исходного IP-адреса) в rsyslog для отправки на удаленный сервер rsyslog

Есть ли способ добавить тег в журналы, отправляемые rsyslog? Я отправляю эти журналы на другой сервер и могу определить исходный IP-адрес как пункт назначения, но мне нужно добавить тег в источник.

Вы должны быть в состоянии сопоставить имя хоста системы, отправляющей ваш журнал. Этого мало?

У Rsyslog есть опция $PreserveFQDN on, чтобы заменить это имя хоста своим полным доменным именем, что, вероятно, лучше с концентраторами системного журнала, ...

Я полагаю, на другом конце у вас есть logstash или elasticsearch? В любом случае, rsyslog также позволяет определять такие шаблоны, как:

template(name="jsonfmt" type="list" option.json="on") {
    constant(value="{")
    constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
    constant(value="\",\"@version\":\"1")
    constant(value="\",\"message\":\"") property(name="msg")
    constant(value="\",\"@fields.host\":\"") property(name="hostname")
    constant(value="\",\"@fields.severity\":\"") property(name="syslogseverity-text")
    constant(value="\",\"@fields.facility\":\"") property(name="syslogfacility-text")
    constant(value="\",\"@fields.programname\":\"") property(name="programname")
    constant(value="\",\"@fields.procid\":\"") property(name="procid")
    constant(value="\",\"@fields.mytag\":\"foobarStaticTag\"}\n")
}

local7.* @logstash.example.com:1514;jsonfmt
local7.* action(type="omelasticsearch"
       action.resumeretrycount="-1"
       dynSearchIndex="on"
       bulkmode="on"
       queue.type="linkedlist"
       queue.size="1000000"
       queue.dequeuebatchsize="1000"
       queue.workerthreads="2"
       searchIndex="logidx"
       server="esearchgw.example.com"
       template="jsonfmt")

Обратите внимание, что пример пересылки logstash предполагает, что ваше определение ввода включает codec => json. В foobarStaticTag любой тег, который вы хотели добавить.