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

rsyslog 8.24 и несколько omfwd

Я хочу переслать *.* на удаленный хост через TCP / IP.
Также у меня есть local0 средство, в котором сообщения представляют собой простые сообщения JSON, и они должны быть перенаправлены на тот же хост, но на другой порт (и использует тот же сертификат для gTLS).

Я сделал конфиг:

# provides UDP syslog reception 
$ModLoad imudp 
$UDPServerAddress 127.0.0.1 
$UDPServerRun 514

# provides TCP syslog reception 
$ModLoad imtcp 
$InputTCPServerRun 514

$template logFormat,"[1234] <%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [type=syslog] %msg%\n" 
$template logJSON,"{ \"token\": \"1234\", \"env\": \"testfield\" , %msg:2:$:%\n" 
$WorkDirectory /var/spool/rsyslog # where to place spool files 
$ActionQueueFileName fwdRule1 # unique name prefix for spool files 
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) 
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown 
$ActionQueueType LinkedList # run asynchronously 
$ActionResumeRetryCount -1 # infinite retries if host is down 
$DefaultNetstreamDriverCAFile /etc/ssl/certs/AddTrustExternalCARoot.crt

*.* action(type="omfwd" protocol="tcp" target="listener.example.com" port="5001" template="logFormat" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.example.com") 
local0.info action(type="omfwd" protocol="tcp" target="listener.example.com" port="5005" template="logJSON" StreamDriver="gtls" StreamDriverMode="1" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.example.com") 
local0.* /var/log/app.log

К сожалению, rsyslog даже не пытается установить соединение. Нет никаких доказательств в netstat -nt, ни tcpdump

Я ищу способ пересылки этих журналов по назначению, не взламывая их глубже в стеке ELK. Вы можете помочь?

Я хотел бы написать это как комментарий, но у меня недостаточно репутации.

Убедитесь, что разрешенный одноранговый узел соответствует CN в сертификате получателя и что CA, используемый для подписи, включен в AddTrustExternalCARoot.crt. У вас также нет наборов $ DefaultNetstreamDriverCertFile и $ DefaultNetstreamDriverKeyFile, поэтому rsyslogd не имеет сертификата для авторизации клиента.

Я предполагаю, что вы отредактировали StreamDriverPermittedPeers = "*. Example.com" перед публикацией и настроили правильный домен вместо "example.com".

Также может потребоваться соответствующая запись в / etc / hosts.