Gerenciamento de Logs · 12 min read · Dec 12, 2025

Como configurar o rsyslog para Gerenciamento Centralizado de Logs

Este tutorial explicará como configurar o rsyslog como um servidor de gerenciamento centralizado de logs. O gerenciamento centralizado de logs significa coletar todos os tipos de logs de vários servidores físicos ou virtualizados em um servidor de logs para monitorar a saúde e a segurança dos serviços do servidor. Usamos o rsyslog neste tutorial porque oferece alto desempenho, ótima segurança e um design modular. Ele também é capaz de armazenar logs em várias soluções de banco de dados, como MySQL, Oracle, Hadoop e outras para melhor consolidação.

1. Nota Preliminar

Para este tutorial, estou usando o Oracle Linux 6.4 na versão de 32 bits. Observe que, embora a configuração seja feita no Oracle Linux, os mesmos passos funcionarão no CentOS e no Red Hat OS Linux. Neste tutorial, usaremos 2 servidores. O primeiro atuará como o servidor rsyslog e o outro atuará como estação de trabalho / servidor cliente para o cliente rsyslog. Ao final deste tutorial, veremos que, uma vez que um usuário faça login no servidor cliente, o servidor rsyslog registrará automaticamente a atividade realizada por ele.

2. Instalação do Rsyslog

Para a fase de instalação, precisamos apenas ter os pacotes rsyslog e suas dependências instalados. Primeiro, vamos confirmar nossa versão do sistema operacional.

[root@RSYS01 ~]# cat /etc/issue  
Oracle Linux Server release 6.4  
Kernel \r on an \m
[root@RSYS01 ~]# arch  
i686
[root@RSYS01 ~]# uname -a  
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux

Em seguida, configurarei um novo repositório para instalar os pacotes rsyslog via utilitário yum.


[root@RSYS01 ~]# cd /etc/yum.repos.d/  
[root@RSYS01 yum.repos.d]# vi rsyslog.repo  
[rsyslog-v7-devel]  
name=Adiscon Rsyslog v7-devel for CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch  
enabled=0  
gpgcheck=0  
protect=1
[rsyslog-v7-stable]  
name=Adiscon Rsyslog v7-stable for CentOS-$releasever-$basearch  
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch  
enabled=1  
gpgcheck=0  
protect=1
[root@RSYS01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Pacotes Disponíveis  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

Feito, agora vamos começar a instalar a nova versão do rsyslog. Os passos estão mostrados abaixo:


[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution   
Dependencies Resolved   
===============================================================================================================  
Pacote Arquitetura Versão Repositório Tamanho  
===============================================================================================================  
Instalando:  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Instalando para dependências:  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k   
Resumo da Transação  
===============================================================================================================  
Instalar 5 Pacote(s)   
Tamanho total do download: 1.0 M  
Tamanho instalado: 3.2 M  
Baixando Pacotes:  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Total 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5   
Instalado:  
rsyslog.i686 0:7.6.7-1.el6   
Dependência Instaladas:  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6   
Completo!
[root@RSYS01 yum.repos.d]# rsyslogd -v  
rsyslogd 7.6.7, compilado com:  
FEATURE_REGEXP: Sim  
Suporte GSSAPI Kerberos 5: Sim  
FEATURE_DEBUG (debug build, slow code): Não  
Operações atômicas de 32 bits suportadas: Sim  
Operações atômicas de 64 bits suportadas: Sim  
Instrumentação em tempo de execução (slow code): Não  
uuid support: Sim  
Número de Bits em inteiros RainerScript: 64   

Veja http://www.rsyslog.com para mais informações.
[root@RSYS01 ~]# rpm -qa|grep rsyslog  
rsyslog-7.6.7-1.el6.i686

Em seguida, vamos prosseguir com a fase de instalação. Para este tutorial, vamos pular a camada de segurança para simplificar as coisas. Vamos desabilitar o SELINUX para garantir que não haja problemas relacionados à segurança durante o processo. Esteja ciente de que você não deve desabilitar o SELinux e o Firewall em uma configuração ao vivo. Abaixo estão os passos:

Primeiro, verifique qual é o status atual da nossa política SELINUX.

[root@RSYS01 ~]# getenforce  
Enforcing

Para desabilitá-lo permanentemente, siga o passo abaixo:

[root@RSYS01 ~]# cd /etc/sysconfig/  
[root@RSYS01 ~]# vi selinux   

# Este arquivo controla o estado do SELinux no sistema.  
# SELINUX= pode ter um destes três valores:  
# enforcing - A política de segurança do SELinux é aplicada.  
# permissive - O SELinux imprime avisos em vez de aplicar.  
# disabled - Nenhuma política SELinux é carregada.  
SELINUX=disabled  
# SELINUXTYPE= pode ter um destes dois valores:  
# targeted - Processos direcionados são protegidos,  
# mls - Proteção de Segurança de Múltiplos Níveis.  
SELINUXTYPE=targeted

Depois disso, vamos garantir que desabilitamos o firewall para evitar qualquer bloqueio entre a conexão do servidor e do cliente.

[root@RSYS01 ~]# iptables -nL  
Chain INPUT (policy ACCEPT)  
target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination
[root@RSYS01 ~]# /etc/init.d/iptables stop  
iptables: Flushing firewall rules: [ OK ]  
iptables: Setting chains to policy ACCEPT: filter [ OK ]  
iptables: Unloading modules: [ OK ]
[root@RSYS01 ~]# /etc/init.d/iptables status  
Table: filter  
Chain INPUT (policy ACCEPT)  
num target prot opt source destination   
   
Chain FORWARD (policy ACCEPT)  
num target prot opt source destination   
   
Chain OUTPUT (policy ACCEPT)  
num target prot opt source destination

Feito, agora que a fase de instalação foi bem-sucedida. Vamos passar para a fase de configuração.

3. Configuração do Rsyslog

Todas as dependências do pacote já foram instaladas, vamos nos concentrar na configuração do rsyslog. Vamos entrar no arquivo de configuração e fazer as alterações como abaixo:

[root@RSYS01 ~]# vi /etc/rsyslog.conf   

module(load="imudp") # precisa ser feito apenas uma vez  
input(type="imudp" port="514")   

$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"  
authpriv.* ?Auditlog

Abaixo está a explicação sobre as alterações de configuração que fizemos:

  • module(load=”imudp”) # precisa ser feito apenas uma vez ==> Forneceremos a capacidade de receber mensagens rsyslog entre o servidor e o cliente via protocolo UDP
  • input(type=”imudp” port=”514”) ==> Usaremos a porta 514 para os serviços rsyslog
  • $template Auditlog, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Para cada cliente conectado ao servidor rsyslog, o sistema criará automaticamente a pasta do nome do host do cliente e o nome do arquivo de serviços relacionado
  • $template TmplMsg, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> Para cada cliente conectado ao servidor rsyslog, o sistema criará automaticamente a pasta do nome do host do cliente e o nome do arquivo de serviços relacionado

Uma vez que a configuração esteja concluída, vamos iniciar o serviço rsyslog.

[root@RSYS01 yum.repos.d]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Use netstat para garantir se os serviços rsyslog estão ativos e em execução:

[root@RSYS01 yum.repos.d]# netstat -uanp|grep rsyslog  
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd  
udp 0 0 :::514 :::* 2430/rsyslogd

Acima você pode ver que nosso serviço rsyslog está em execução com as atribuições de porta que fizemos. Por padrão, o rsyslog também audita seu próprio acesso ao servidor, pois trata o servidor rsyslog como um cliente. Para garantir se está funcionando, podemos dar uma olhada na pasta /var/log. Vamos verificar se uma pasta com o nome RSYS01 (que é o nome do host do servidor) existe ou não.

[root@RSYS01 log]# cd /var/log/  
[root@RSYS01 log]# ls -l|grep rsyslog  
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client
[root@RSYS01 log]# cd rsyslog_client  
[root@RSYS01 rsyslog_client]# ls  
RSYS01  
[root@RSYS01 rsyslog_client]# cd RSYS01/  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log

Ótimo, parece que tudo funciona perfeitamente! Agora vamos prosseguir com a fase de teste para concluir que todas as configurações foram feitas conforme esperado.

4. Fase de Teste

Como o servidor que executa o serviço rsyslog também funciona como um cliente, podemos ver no próprio servidor se o monitoramento de logins locais está sendo monitorado. Para garantir se isso é verdade, vamos fazer login no servidor rsyslog com outra sessão usando o serviço SSH. Para este passo, assumiremos que o servidor já está configurado para configuração sem senha. Abaixo estão os passos:

[root@RSYS01 RSYS01]# ssh root@RSYS01  
Último login: Sáb Out 22 15:45:48 2016 de 172.20.181.70
[root@RSYS01 ~]# who  
root pts/0 2016-10-22 00:21 (172.20.181.11)  
root pts/1 2016-10-24 18:22 (127.0.0.1)
[root@RSYS01 ~]# exit  
logout  
Connection to RSYS01 closed.

Feito, tão simples quanto isso. Nós apenas fizemos login no servidor rsyslog e, uma vez que a nova sessão foi criada, nós simplesmente fizemos logout novamente apenas para garantir que o serviço rsyslog auditou a sessão. Agora, vamos verificar se a sessão foi auditada ou não. Abaixo estão os passos:

[root@RSYS01 ~]# cd var/log/rsyslog_client/RSYS01  
[root@RSYS01 RSYS01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 RSYS01]# tail -f sshd.log  
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2  
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)  
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user  
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root  
^C

Excelente, o serviço rsyslog criou automaticamente um arquivo sshd.log quando a sessão começou no servidor. Dentro do arquivo de log, podemos ver que há uma lista de detalhes que indicam o tempo, a porta e o usuário criados sob a sessão.

Agora que tudo funciona conforme esperado. Vamos configurar uma estação de trabalho para que o cliente rsyslog seja auditado pelo nosso servidor rsyslog. Para o cliente rsyslog, você só precisa instalar os pacotes rsyslog e fazer uma simples alteração no arquivo de configuração para vincular ao servidor rsyslog. Abaixo estão os passos:

[root@CLIENT01 ~]# cd /etc/yum.repos.d/  
[root@CLIENT01 yum.repos.d]# yum list rsyslog  
Loaded plugins: refresh-packagekit, security  
rsyslog-v7-stable | 2.5 kB 00:00  
rsyslog-v7-stable/primary_db | 188 kB 00:01  
Pacotes Disponíveis  
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

[root@RSYS01 yum.repos.d]# yum install rsyslog -y  
Loaded plugins: refresh-packagekit, security  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed  
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686  
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686  
--> Running transaction check  
---> Package json-c.i686 0:0.11-3.el6 will be installed  
---> Package libestr.i686 0:0.1.9-1.el6 will be installed  
---> Package libgt.i686 0:0.3.11-1.el6 will be installed  
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed  
--> Finished Dependency Resolution  

Dependencies Resolved  

===============================================================================================================  
Pacote Arquitetura Versão Repositório Tamanho  
===============================================================================================================  
Instalando:  
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k  
Instalando para dependências:  
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k  
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k  
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k  
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k  

Resumo da Transação  
===============================================================================================================  
Instalar 5 Pacote(s)  
Tamanho total do download: 1.0 M  
Tamanho instalado: 3.2 M  
Baixando Pacotes:  
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00  
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00  
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00  
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00  
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03  
---------------------------------------------------------------------------------------------------------------  
Total 114 kB/s | 1.0 MB 00:09  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : libgt-0.3.11-1.el6.i686 1/5  
Installing : liblogging-1.0.4-1.el6.i686 2/5  
Installing : libestr-0.1.9-1.el6.i686 3/5  
Installing : json-c-0.11-3.el6.i686 4/5  
Installing : rsyslog-7.6.7-1.el6.i686 5/5  
Verifying : json-c-0.11-3.el6.i686 1/5  
Verifying : libestr-0.1.9-1.el6.i686 2/5  
Verifying : liblogging-1.0.4-1.el6.i686 3/5  
Verifying : libgt-0.3.11-1.el6.i686 4/5  
Verifying : rsyslog-7.6.7-1.el6.i686 5/5  

Instalado:  
rsyslog.i686 0:7.6.7-1.el6  

Dependência Instaladas:  
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6  

Completo!

Feito, agora instalamos o pacote rsyslog em nossa estação de trabalho cliente. Agora vamos fazer uma alteração dentro do arquivo de configuração do rsyslog. Para a configuração do cliente, você só precisa alterar a configuração como abaixo:

[root@CLIENT01 ~]# vi /etc/rsyslog.conf  

*.* @192.168.43.101:514

Isso é tudo, observe que incluímos o IP 192.168.43.101 com a porta 514 no arquivo de configuração. Esse IP é o IP do servidor rsyslog. Agora que tudo está feito, vamos reiniciar o serviço rsyslog na estação de trabalho cliente para carregar as alterações. Abaixo estão os passos:

[root@CLIENT01 ~]# /etc/init.d/rsyslog restart  
Shutting down system logger: [FAILED]  
Starting system logger: [ OK ]

Agora vamos voltar ao nosso servidor rsyslog e ver se uma pasta para o nome do host do cliente rsyslog foi criada no diretório de logs do rsyslog. Abaixo estão os passos:

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# ls  
RSYS01 CLIENT01

Excelente, observe que uma pasta com o nome do host do cliente rsyslog foi criada automaticamente. Isso confirma que nossa configuração está correta e o cliente rsyslog é capaz de fazer uma conexão UDP com o servidor rsyslog.

Para o próximo procedimento de teste, vamos fazer login no cliente rsyslog como outro usuário e ver se o servidor rsyslog consegue capturar a atividade ou não. Abaixo estão os passos:

::CLIENT01::  
login as: shahril  
[email protected]'s password:  
Último login: Dom Out 23 00:21:40 2016 de 172.20.181.11
[shahril@CLIENT01 ~]$ who  
shahril pts/0 2016-10-24 17:01 (192.168.43.80)
[shahril@CLIENT01 ~]$ exit

Agora, vamos verificar o diretório de logs dentro do servidor rsyslog para ver se conseguimos registrar a atividade criada a partir do cliente rsyslog ou não.

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 rsyslog_client]# cd CLIENT01/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log  
[root@RSYS01 CLIENT01]# tail -10 sshd.log  
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2  
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)

Ótimo, o resultado mostra que o processo funciona conforme esperado. Agora, para o teste final, vamos fazer login novamente no cliente rsyslog e instalar um pacote para testar se o serviço rsyslog consegue registrar outra atividade além da criação de sessão. Abaixo estão os passos:

::CLIENT01::  
login as: root  
[email protected]'s password:  
Último login: Sáb Out 22 10:21:40 2016 de 172.20.181.11
[root@CLIENT01 ~]# yum install firefox -y  
Loaded plugins: refresh-packagekit, security  
Repository 'OEL64' is missing name in configuration, using id  
Setting up Install Process  
Resolving Dependencies  
--> Running transaction check  
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed  
--> Finished Dependency Resolution  

Dependencies Resolved  

================================================================================  
Pacote Arquitetura Versão Repositório Tamanho  
================================================================================  
Instalando:  
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M  

Resumo da Transação  
================================================================================  
Instalar 1 Pacote(s)  

Tamanho total do download: 20 M  
Tamanho instalado: 23 M  
Baixando Pacotes:  
Running rpm_check_debug  
Running Transaction Test  
Transaction Test Succeeded  
Running Transaction  
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1  
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1  

Instalado:  
firefox.i686 0:10.0.12-1.el6_3  

Completo!

O acima mostra que instalamos com sucesso um instalador do navegador firefox dentro da nossa estação de trabalho cliente rsyslog. Agora vamos voltar ao nosso servidor rsyslog e verificar se o rsyslog foi capaz de registrar o processo de instalação de um pacote de terceiros na estação de trabalho. Abaixo estão os passos:

[root@RSYS01 ~]# cd var/log/rsyslog_client/  
[root@RSYS01 CLIENT01]# ls  
rsyslogd.log sshd.log yum.log  
[root@RSYS01 CLIENT01]# tail -20 yum.log  
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686

Excelente, o serviço rsyslog conseguiu auditar as informações da atividade de instalação na estação de trabalho cliente.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.