Установите дополнительный, некорневой сервер системного журнала как systemd сервис

Я хочу создать systemd сервис, который запустил бы дополнительный экземпляр системного журнала (я принимаю rsyslogd, поскольку это, кажется, то, что установлено на моем Гостеприимном?). Я хочу, чтобы это послушало на указанном сокете (непривилегированном) как "сервер системного журнала", и вывело все полученные журналы в некоторый файл. Я хочу, чтобы это работало непривилегированный (то есть, как некорневой пользователь).

При принятии я создал нового пользователя logdumper и вставленный в следующие строки /etc/systemd/syslog-server@.service:

[Unit]
Description=Unprivileged syslog server on port %i

[Service]
User=logdumper
Restart=always
ExecStart=/usr/sbin/rsyslogd -n -f /home/logdumper/rsyslogd-port-%i.conf \
    -i /home/logdumper/rsyslogd-port-%i.pid

[Install]
WantedBy=multi-user.target

что я должен вставить /home/logdumper/rsyslogd-port-%i.conf? Кроме того, мой ExecStart OK?

Скажем, я хочу, чтобы это послушало на порте 9999 (таким образом, %i=9999), и дамп получил данные к /home/logdumper/rsyslogd-port-9999.log.

1
задан 23 October 2017 в 17:03

1 ответ

Так, кажется что что-то как ниже работ для меня как rsyslogd-port-9999.conf:

$ModLoad imudp
$UDPServerRun 9999

$ModLoad imtcp
$InputTCPServerRun 9999

$ModLoad immark   # not sure what's this, but seems popular

$template Template_WithSrcHost,"%timegenerated:::date-rfc3339% %HOSTNAME% %FROMHOST% %syslogtag%%msg:::drop-last-lf%\n"

*.* /home/logdumper/rsyslogd-port-9999.log;Template_WithSrcHost

я создал это на основе man rsyslog.conf. $template директива должна добавить %FROMHOST%, который в моем случае является лучшим IP, чем %HOSTNAME%.

1
ответ дан 7 December 2019 в 15:28

Другие вопросы по тегам:

Похожие вопросы: