Configure um servidor extra syslog não-root como um serviço systemd

0

Eu quero criar um serviço systemd , que iniciaria uma instância extra do syslog (suponho rsyslogd , pois isso parece ser o que está instalado no meu Xenial?). Eu quero que escute no soquete especificado (sem privilégios) como um "servidor syslog", e despeje todos os logs recebidos em algum arquivo. Eu quero que ele seja executado unprivileged (isto é, como um usuário não-root).

Supondo que criei novo usuário logdumper e coloque as seguintes linhas em /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

- o que devo colocar em /home/logdumper/rsyslogd-port-%i.conf ? Além disso, o meu ExecStart está OK?

Digamos que eu queira escutar na porta 9999 (assim,% i = 9999) e despejar dados recebidos para /home/logdumper/rsyslogd-port-9999.log .

    
por akavel 23.10.2017 / 16:03

1 resposta

0

Então, parece que algo como abaixo funciona para mim como 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

Eu criei isso com base em man rsyslog.conf . A diretiva $template é adicionar %FROMHOST% , que no meu caso é um IP melhor que %HOSTNAME% .

    
por akavel 23.10.2017 / 18:00