O Syslog é um protocolo padrão para a geração e envio de mensagens de log em sistemas Unix e Linux. O RSyslog é uma implementação avançada do Syslog que oferece recursos adicionais e flexibilidade. Integrar o RSyslog ao MongoDB permite armazenar e gerenciar logs de forma eficiente e escalável.

O MongoDB é um banco de dados NoSQL altamente escalável e flexível, adequado para armazenar grandes volumes de dados não estruturados, como logs. Integrar o RSyslog ao MongoDB permite que os logs sejam armazenados de forma centralizada e acessados facilmente para análise e monitoramento.

Desabilitar o SELinux:

Antes de prosseguir com a instalação e configuração do RSyslog e MongoDB, é recomendável desabilitar o SELinux para evitar possíveis conflitos de permissões.

# nano /etc/sysconfig/selinux
SELinux=disabled

Liberar Portas no Firewall:

Para garantir que o RSyslog possa receber mensagens de log, é necessário liberar as portas necessárias no firewall do sistema.

# firewall-cmd --zone=public --permanent --add-port=514/tcp
# firewall-cmd --zone=public --permanent --add-port=514/ucp
# firewall-cmd --reload

Instalação do pacote:

Após a configuração do ambiente, procedemos com a instalação dos pacotes necessários, incluindo o RSyslog, o módulo de integração com o MongoDB e a ferramenta de captura de pacotes.

# dnf install rsyslog rsyslog-mongodb tcpdump -y

Habilitar e iniciar o serviço:

Depois de instalado, é necessário habilitar e iniciar o serviço do RSyslog para que ele comece a receber e enviar mensagens de log.

# systemctl enable rsyslog
# systemctl start rsyslog
# systemctl status rsyslog

Configuração Integração MongoDB:

Agora, vamos configurar o RSyslog para integrar-se ao MongoDB, definindo as regras de entrada e ação para encaminhar os logs para o banco de dados.

# nano /etc/rsyslog.d/mongo.conf
################ Configuração Integração MongoDB #################
module(load="imtcp")
module(load="imudp")

module(load="ommongodb")

input(type="imtcp" port="514" ruleset="mongodb")
input(type="imudp" port="514" ruleset="mongodb")

ruleset(name="mongodb") {
        action(type="ommongodb" server="127.0.0.1" db="logs" collection="syslog" uid="admin" pwd="123456")
}

Criar dados no DB:

Antes de começarmos a receber mensagens de log, precisamos criar a coleção no MongoDB onde os logs serão armazenados.

# mongo -u admin -p
> use logs;
> db.createCollection('syslog');
> show dbs;
> exit;

Verificar se há portas abertas referente ao serviço:

Após a configuração, é importante verificar se as portas necessárias estão abertas e prontas para receber mensagens de log.

# netstat -antup | grep 514

Verificar se está chegando os pacotes de log:

Por fim, podemos usar a ferramenta tcpdump para verificar se os pacotes de log estão chegando ao servidor.

# tcpdump -i ens33 port 514