Você está na página 1de 5

15/01/2024, 01:26 Como configurar o servidor de registro central com Rsyslog no Linux

Pesquisa de site

Como configurar o servidor de registro central com


Rsyslog no Linux
Logs são um componente crítico de qualquer software ou sistema operacional. Os logs geralmente registram as ações do usuário,
eventos do sistema, atividade da rede e muito mais, dependendo do que se destinam. Um dos sistemas de registro mais
amplamente usados em sistemas Linux é o rsyslog.

Rsyslog é um sistema de processamento de log poderoso, seguro e de alto desempenho que aceita dados de diferentes tipos de
fonte (sistemas/aplicativos) e os envia em vários formatos.

Ele evoluiu de um daemon syslog regular para um sistema de registro de nível empresarial com todos os recursos. É projetado no
modelo cliente/servidor, portanto pode ser configurado como cliente e/ou como servidor central de registro para outros servidores,
dispositivos de rede e aplicativos remotos.

Ambiente de teste
Para o propósito deste guia, usaremos os seguintes hosts:

Servidor: 192.168.241.140
Cliente: 172.31.21.58

Como instalar e configurar o servidor Rsyslog


A maioria das distribuições do Linux vem com o pacote rsyslog pré-instalado. Caso não esteja instalado, você pode instalá-lo usando
sua ferramenta gerenciadora de pacotes do Linux, conforme mostrado.

$ sudo yum update && yum install rsyslog #CentOS 7


$ sudo apt update && apt install rsyslog #Ubuntu 16.04, 18.04

Uma vez instalado o rsyslog, você precisa iniciar o serviço por enquanto, ativá-lo para iniciar automaticamente na inicialização e
verificar seu status com o comando systemctl.

$ sudo systemctl start rsyslog


$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

O arquivo de configuração principal do rsyslog está localizado em /etc/rsyslog.conf, que carrega módulos, define as diretivas
globais, contém regras para processar mensagens de log e também inclui todos os arquivos de configuração em /etc /rsyslog.d/
para vários aplicativos/serviços.

$ sudo vim /etc/rsyslog.conf

Por padrão, rsyslog usa os módulos imjournal e imusock para importar mensagens de log estruturadas do systemd journal e para
aceitar syslog mensagens de aplicativos em execução no sistema local por meio de soquetes Unix, respectivamente.

Para configurar o rsyslog como um servidor de log de rede/central, você precisa definir o protocolo (UDP ou TCP ou ambos) que ele
usará para recepção de syslog remoto, bem como o porta em que ele escuta.

https://pt.linux-console.net/?p=2371 1/5
15/01/2024, 01:26 Como configurar o servidor de registro central com Rsyslog no Linux

Se você quiser usar uma conexão UDP, que é mais rápida, mas não confiável, pesquise e descomente as linhas abaixo (substitua 514
pela porta em que deseja escutar, isso deve corresponda ao endereço da porta para a qual os clientes enviam mensagens, veremos
mais sobre isso ao configurar um cliente rsyslog).

$ModLoad imudp
$UDPServerRun 514

Para usar a conexão TCP (que é mais lenta, mas mais confiável), pesquise e descomente as linhas abaixo.

$ModLoad imtcp
$InputTCPServerRun 514

Nesse caso, queremos usar as conexões UDP e TCP ao mesmo tempo.

Em seguida, você precisa definir o conjunto de regras para processar logs remotos no seguinte formato.

facility.severity_level destination (where to store log)

Onde:

instalação: é o tipo de processo/aplicativo que gera mensagem, eles incluem auth, cron, daemon, kernel, local0..local7. Usar *
significa todas as facilidades.
severity_level: é o tipo de mensagem de log: emerg-0, alert-1, crit-2, err-3, warning-4, Notice-5, info-6, debug-7. Usar * significa
todos os níveis de gravidade e nenhum implica nenhum nível de gravidade.
destino: é um arquivo local ou servidor rsyslog remoto (definido no formato IP:porta).

Usaremos o seguinte conjunto de regras para coletar logs de hosts remotos, usando o modelo RemoteLogs. Observe que essas
regras devem vir antes de quaisquer regras de processamento de mensagens locais, conforme mostrado na captura de tela.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~

Observando o conjunto de regras acima, a primeira regra é \$template


RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log””.

A diretiva $template informa ao daemon rsyslog para reunir e gravar todas as mensagens remotas recebidas em logs distintos em
/var/log, com base no hostname (nome da máquina cliente) e instalação do cliente remoto (programa/aplicativo) que gerou as
mensagens conforme definido pelas configurações presentes no modelo RemoteLogs.

https://pt.linux-console.net/?p=2371 2/5
15/01/2024, 01:26 Como configurar o servidor de registro central com Rsyslog no Linux

A segunda linha \*.* ?RemoteLogs significa mensagens de registro de todas as instalações em todos os níveis de severidade usando
a configuração do modelo RemoteLogs.

A linha final \& ~ instrui o rsyslog a parar de processar as mensagens assim que forem gravadas em um arquivo. Se você não incluir
& ~, as mensagens serão em vez disso, ser gravado nos arquivos locais.

Existem muitos outros modelos que você pode usar, para obter mais informações, consulte a página do manual de configuração do
rsyslog (man rsyslog.conf) ou consulte a documentação on-line do Rsyslog.

É isso com a configuração do servidor rsyslog. Salve e feche o arquivo de configuração. Para aplicar as alterações recentes, reinicie o
daemon rsyslog com o seguinte comando.

$ sudo systemctl restart rsyslog

Agora verifique os soquetes de rede rsyslog. Use o comando ss (ou grep para filtrar conexões rsyslogd.

$ sudo ss -tulnp | grep "rsyslog"

Em seguida, no CentOS 7, se você tiver o SELinux ativado, execute os seguintes comandos para permitir o tráfego rsyslog com base
no tipo de soquete de rede.

$ sudo semanage -a -t syslogd_port_t -p udp 514


$ sudo semanage -a -t syslogd_port_t -p tcp 514

Se o sistema tiver firewall habilitado, você precisa abrir a porta 514 para permitir ambas as conexões UDP/TCP ao servidor rsyslog,
executando.

------------- On CentOS -------------


$ sudo firewall-cmd --permanent --add-port=514/udp
$ sudo firewall-cmd --permanent --add-port=514/tcp
$ sudo firewall-cmd --reload

------------- On Ubuntu -------------


$ sudo ufw allow 514/udp
$ sudo ufw allow 514/tcp
$ sudo ufw reload

Como configurar o cliente Rsyslog para enviar logs para o servidor Rsyslog
Agora, no sistema cliente, verifique se o serviço rsyslog está em execução ou não com o seguinte comando.

$ sudo systemctl status rsyslog

Se não estiver instalado, instale-o e inicie o serviço conforme mostrado anteriormente.

$ sudo yum update && yum install rsyslog #CentOS 7


$ sudo apt update && apt install rsyslog #Ubuntu 16.04, 18.04
$ sudo systemctl start rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

Assim que o serviço rsyslog estiver funcionando, abra o arquivo de configuração principal onde você fará alterações na configuração
padrão.

$ sudo vim /etc/rsyslog.conf

Para forçar o daemon rsyslog a agir como um cliente de log e encaminhar todas as mensagens de log geradas localmente para o
servidor rsyslog remoto, adicione esta regra de encaminhamento no final do arquivo, conforme mostrado na captura de tela a
seguir.

*. * @@192.168.100.10:514

https://pt.linux-console.net/?p=2371 3/5
15/01/2024, 01:26 Como configurar o servidor de registro central com Rsyslog no Linux

A regra acima enviará mensagens de todas as instalações e em todos os níveis de gravidade. Para enviar mensagens de um recurso
específico, por exemplo auth, use a seguinte regra.

auth. * @@192.168.100.10:514

Salve as alterações e feche o arquivo de configuração. Para aplicar as configurações acima, reinicie o daemon rsyslog.

$ sudo systemctl restart rsyslog

Como monitorar o log remoto no servidor Rsyslog


A etapa final é verificar se o rsyslog está realmente recebendo e registrando mensagens do cliente, em /var/log, no formato
hostname/programname.log.

Execute um comando ls para uma longa listagem do diretório de logs pai e verifique se há um diretório chamado ip-172.31.21.58 (ou
qualquer que seja o nome do host da sua máquina cliente).

$ ls -l /var/log/

Se o diretório existir, verifique os arquivos de log dentro dele, executando.

$ sudo ls -l /var/log/ip-172-31-21-58/

Resumo
Rsyslog é um sistema de processamento de log de alto desempenho, projetado em uma arquitetura cliente/servidor. Esperamos
que você consiga instalar e configurar o Rsyslog como um servidor de registro central/de rede e como um cliente, conforme
demonstrado neste guia.

Você também pode consultar as páginas de manual relevantes do rsyslog para obter mais ajuda. Sinta-se à vontade para nos dar
qualquer feedback ou fazer perguntas.

https://pt.linux-console.net/?p=2371 4/5
15/01/2024, 01:26 Como configurar o servidor de registro central com Rsyslog no Linux

Todos os direitos reservados. © Linux-Console.net • 2019-2023

https://pt.linux-console.net/?p=2371 5/5

Você também pode gostar