web-dev-qa-db-ja.com

追加の非ルートsyslogサーバーをsystemdサービスとしてセットアップします

systemd serviceを作成します。これにより、syslogのextraインスタンスが開始されます(rsyslogd)と仮定します、これは私のXenialにインストールされているものと思われますか?)。 指定されたソケットでリッスン(非特権)を「syslogサーバー」として使用し、受信したすべてのログを何らかのファイルにダンプします。 nprivileged(つまり、非rootユーザーとして)を実行したい。

新しいユーザーlogdumperを作成し、/etc/systemd/[email protected]に次の行を追加するとします。

[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は大丈夫ですか?

ポート9999(したがって、%i = 9999)でリッスンし、受信したデータを/home/logdumper/rsyslogd-port-9999.logにダンプしたいとしましょう。

1
akavel

だから、以下のようなものが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%を追加するもので、私の場合は%HOSTNAME%よりも優れたIPです。

1
akavel