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/24

2. 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 template RemoteLogs.

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 (como maxdiskspace, 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
exit

Essa 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 template RemoteLogs.
  • stop: A instrução stop impede que os logs locais sejam gravados, direcionando-os apenas para os logs remotos.