Я пытаюсь настроить клиент rsyslog (запущенный rsyslog 7.4.8), который будет регистрироваться на двух удаленных серверах через две разные конфигурации SSL. Для этого, похоже, мне нужно перейти с устаревшего формата файла конфигурации на новый формат на основе действий.
Если у меня есть следующее для /etc/rsyslog.conf, тогда все работает нормально. Удаленный сервер получает сообщения, а netstat показывает установленное TCP-соединение от клиента к удаленному серверу:
$ModLoad imuxsock.so
$ModLoad imklog.so
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
$DefaultNetstreamDriverCertFile /etc/pki/rsyslog/local-cert.pem
$DefaultNetstreamDriverKeyFile /etc/pki/rsyslog/local-key.pem
*.* @@10.50.59.241:6514
Из того, что я могу почерпнуть из документации rsyslog, я смогу сделать что-то в этом роде:
$ModLoad imuxsock.so
$ModLoad imklog.so
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
$DefaultNetstreamDriverCertFile /etc/pki/rsyslog/local-cert.pem
$DefaultNetstreamDriverKeyFile /etc/pki/rsyslog/local-key.pem
*.* action (type="omfwd" protocol="tcp" Target="10.50.59.241" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")
Но эта вторая конфигурация не работает. rsyslogd успешно перезапускается, поэтому я знаю, что в этой конфигурации нет синтаксической ошибки. Но netstat никогда не показывает подключение даже к удаленному серверу системного журнала. Что мне не хватает?
Ну, после кучи тряски головой я понял это сам. Во-первых, в некоторых версиях rsyslog есть ошибка, которая не позволяет этому работать (вы никогда не увидите соединение, установленное с одним или несколькими целевыми серверами), поэтому убедитесь, что вы используете версию 7.6 или более позднюю версию rsyslog.
Убедитесь, что в вашем файле CA есть все CA, необходимые для всех перечисленных в нем целей. Порядок не важен. Тогда ваш файл conf должен выглядеть примерно так:
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
*.* action(type="omfwd" protocol="tcp" Target="10.50.59.241" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")
*.* action(type="omfwd" Protocol="tcp" Target="some.other.host.com" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.some.other.host.com")