A solução (ou solução alternativa) era definir a porta para um valor grande. Ele funciona na porta 10514.
Instalei o rsyslogd no servidor ubuntu, iniciei e tudo parece bem, mas a porta em que o servidor deve escutar não está aberta.
ubuntu@node7:~$ sudo service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 14114
Netstat mostra que não está escutando:
ubuntu@node7:~$ netstat -tlan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 320 172.22.0.17:22 10.8.8.38:61335 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::2776 :::* LISTEN
tcp6 0 0 :::2777 :::* LISTEN
tcp6 0 0 172.22.0.17:2777 172.22.0.11:56554 ESTABLISHED
tcp6 0 0 172.22.0.17:2776 172.22.0.11:39780 ESTABLISHED
É assim que parece /etc/rsyslog.conf (a maioria dos comentários é omitida):
ubuntu@node7:~$ cat /etc/rsyslog.conf
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad imtcp
$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$RepeatedMsgReduction on
$WorkDirectory /var/spool/rsyslog
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup adm
$IncludeConfig /etc/rsyslog.d/*.conf
Em /etc/rsyslog.d/35-server-per-host.conf
tenho as seguintes linhas, e suspeito que isso possa ser a causa. O que significa isso?
# Stop processing of all non-local messages. You can process remote messages
# on levels less than 35.
:fromhost-ip,!isequal,"127.0.0.1" ~
e se for, como posso alterá-lo para que o servidor escute e receba e registre mensagens?
ATUALIZAÇÃO:
Eu comentei linha suspeita, mas ainda não está escutando na porta 514
O AppArmor está possivelmente impedindo o rsyslogd de escutar nesta porta. Você pode verificar isso procurando no log do sistema:
grep apparmor /var/log/syslog
Se você vir linhas mencionando o rsyslog, essa provavelmente é a causa. Edite /etc/apparmor.d/local/usr.sbin.rsyslogd
(ou /etc/apparmor.d/usr.sbin.rsyslogd
se isso não existir) e adicione isso entre as chaves:
network inet dgram,
network inet6 dgram,
network inet stream,
network inet6 stream,
Em seguida, execute service apparmor reload
e service rsyslog restart
.
Por padrão, o rsyslod escuta no soquete unix, não no soquete TCP. Remova o comentário ou adicione estas duas linhas:
module(load="imtcp")
input(type="imtcp" port="514")
Isso é tudo, divirta-se!
Arno
O rsyslog é executado como usuário syslog: solução para eu parar isso e deixá-lo rodar como root. Então ele escuta na porta 514
Comente isto em /etc/ryslogd.conf