Versão avaliada: Debian 11
Instale o pacote do serviço RSYSLOG.
# apt install rsyslog ntpdate
Ajuste o datetime do servidor, isso é fundamental para ter sincronia de realização de atividades e gravação dos logs.
# ntpdate -s a.ntp.br
Crie o diretório de armazenamento.
# mkdir /mnt/resource/SYSLOG
Testar montagem do diretório de armazenamento
# mount.nfs4 192.168.1.101:/mnt/STORAGE01/SYSLOG /mnt/resource/SYSLOG
Configure no FSTAB para montar na inicialização do sistema operacional.
# vi /etc/fstab
192.168.1.101:/mnt/Storage001/Resource/SYSLOG /mnt/resource/SYSLOG nfs4 _netdev,nosuid,port=2049,soft,timeo=10,tcp 0 0
Habilite o serviço para excutar na porta 514 tcp/udp.
# vi /etc/rsyslog..conf
module(load="imuxsock") # provides support for local system logging
module(load="imklog") # provides kernel logging support
module(load="immark") # provides --MARK-- message capability
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
Crie a configuração de captura de log. Para avaliação estou criando a configuração para pegar todas as facilidades e todas as prioridades.
# vi /etc/rsyslog.d/<IP_SERVER>.conf
#facilidade.prioridade FileToStorage
*.* /mnt/resource/SYSLOG/<IP_SERVER>.log
Configure logrotate
# tee /etc/logrotate.d/custom > /dev/null <<EOT
/mnt/resource/SYSLOG/<IP_SERVER>.log
{
su <- caso o arquivo nao esteja com as permissões corretas o su da permissão para criar
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
EOT
TESTE - Força a criação de um novo arquivo de log
# logrotate -v -f /etc/logrotate.d/custom
Crie a conf para quando receber conexão na porta 514
# vi /etc/rsyslog.d/device.conf
$template RemoteHost,"/mnt/resource/SYSLOG/%HOSTNAME%.log"
:fromhost-ip, !isequal, "127.0.0.1" -?RemoteHost
Nota: Desta maneira quando chegar uma requisição no serviço RSYSLOG de um device, ira criar um arquivo com extensão .log para armazenar os dados dos log configurado.
Reinicie o serviço.
# systemctl restart rsyslog.service
Em avaliação
## REMOTE
*.* @IP <- UDP
*.* @@IP <- TCP
systemctl restart rsyslog.service