Rsyslog - Servidor de Logs Remotos#
1. Configuração do Servidor de Logs (Rsyslog Server)#
Arquivo de Configuração Principal:#
O arquivo principal de configuração do Rsyslog no servidor geralmente está localizado em /etc/rsyslog.d/server.conf.
Configuração para Entrada UDP/TCP:#
No servidor, configuramos a escuta tanto para UDP quanto para TCP na porta 514. Isso é feito com os seguintes módulos e entradas:
# Módulo para UDP (porta 514)
module(load="imudp")
input(type="imudp" port="514")
# Módulo para TCP (porta 514)
module(load="imtcp")
input(type="imtcp" port="514")O servidor irá escutar os logs recebidos nas portas 514, tanto para UDP quanto para TCP.
Controle de Origem Permitida:#
O parâmetro $AllowedSender restringe os IPs ou sub-redes que podem enviar logs para o servidor. No exemplo abaixo, apenas o servidor local 127.0.0.1 e as sub-redes 200.255.255.0/24 e 200.202.0.0/24 são permitidos:
$AllowedSender TCP, 127.0.0.1, 200.255.255.0/24, 200.202.0.0/242. Template para Armazenamento de Logs Baseado no Hostname#
Para armazenar os logs em diretórios separados para cada hostname e programa, você pode usar um template como o exemplo abaixo:
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs%HOSTNAME%é uma variável que irá criar subpastas por hostname.%PROGRAMNAME%cria logs separados para cada aplicativo que envia logs.- A instrução
*.*especifica que todos os tipos de mensagens serão roteados para o templateRemoteLogs.
3. Configuração do Cliente Linux#
No cliente Linux, a configuração no arquivo /etc/rsyslog.conf especifica como enviar logs para o servidor de logs remoto.
Exemplo de Configuração:#
action(type="omfwd"
queue.filename="Srv_Suporte"
queue.maxdiskspace="1g"
queue.saveonshutdown="on"
queue.type="LinkedList"
action.resumeRetryCount="-1"
Target="200.202.0.60" Port="514" Protocol="tcp")Target="200.202.0.60": IP do servidor de logs remoto.Port="514": Porta para enviar os logs.Protocol="tcp": Usa TCP para a comunicação.queue: Define configurações para armazenamento temporário de logs (comomaxdiskspace,saveonshutdown, etc.).
4. Configuração nos Switches Aruba#
Nos switches Aruba, a configuração de logs remotos é realizada com o seguinte comando para enviar logs via TCP para o servidor de logs remoto na porta 514:
config
logging 200.202.0.60 tcp 514
# Configuração para registrar logs em severity "warning" (opcional)
# logging severity warning
write memory
exit
exit
exitEssa configuração envia logs de eventos do switch para o servidor de logs, utilizando o protocolo TCP na porta 514.
5. Configuração de Logs Remotos - Melhorada#
Para restringir a coleta de logs somente de fontes remotas (ignorando o log do próprio servidor), podemos adicionar a seguinte configuração:
# Entrada UDP/TCP
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
# $AllowedSender TCP, 127.0.0.1, 200.255.255.0/24, 200.202.0.0/24
# Template para logs de rede
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
# Somente logs remotos (ignora logs locais)
if ($fromhost-ip != "127.0.0.1" and $fromhost-ip != "::1") then {
*.* ?RemoteLogs
stop
}Explicação:#
- Entrada UDP e TCP: As duas entradas de rede (UDP e TCP) são carregadas para garantir que o servidor receba logs de ambas as fontes.
- Template para Logs Remotos: A variável
%HOSTNAME%é usada para criar diretórios exclusivos para cada hostname, e%PROGRAMNAME%para categorizar os logs por programa. - Filtragem de Logs Locais: O bloco
if ($fromhost-ip != "127.0.0.1" and $fromhost-ip != "::1")verifica se o log não é originado do próprio servidor (localhost). Somente os logs de fontes remotas serão processados e armazenados usando o templateRemoteLogs. stop: A instruçãostopimpede que os logs locais sejam gravados, direcionando-os apenas para os logs remotos.