Como configurar o Central Logging Server com rsyslog no Linux

Como configurar o Central Logging Server com rsyslog no Linux

Histórico são um componente crítico de qualquer software ou sistema operacional. Os logs geralmente registram ações do usuário, eventos do sistema, atividade de rede e muito mais, dependendo do que eles são destinados. Um dos sistemas de registro mais utilizados nos sistemas Linux é rsyslog.

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

Ele evoluiu de um regular syslog Daemon para um sistema de registro de nível corporativo e totalmente usado. Ele foi projetado em um modelo de cliente/servidor, portanto, pode ser configurado como um cliente e/ou como um servidor de log central para outros servidores, dispositivos de rede e aplicativos remotos.

Ambiente de teste

Para os fins 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 Linux vem com o rsyslog pacote pré -instalado. Caso não esteja instalado, você pode instalá -lo usando sua ferramenta Linux Package Manager, como mostrado.

$ sudo yum update && yum install rsyslog #CENTOS 7 $ sudo apt update && apt install rsyslog #ubuntu 16.04, 18.04 

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

$ sudo systemctl start rsyslog $ sudo systemctl atability rsyslog $ sudo systatus rsyslog status rsyslog 

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

$ sudo vim /etc /rsyslog.conf 

Por padrão, rsyslog usa o IMJournal e Imusock módulos para importar mensagens de log estruturadas de Systemd Journal e para aceitar mensagens syslog de aplicativos em execução no sistema local via UNIX Sockets, respectivamente.

Módulos RSYSLOG para log

Para configurar o RSYSLog como um servidor de rede de rede/central, você precisa definir o protocolo (ou UDP ou TCP ou ambos) ele usará para a recepção remota do syslog, bem como a porta que ouve.

Se você quiser usar um UDP Conexão, que é mais rápida, mas não confiável, pesquise e descommentam as linhas abaixo (substitua 514 Com a porta que você deseja ouvir, isso deve corresponder ao endereço da porta para o qual os clientes enviam mensagens, vamos analisar isso mais ao configurar um cliente RSYSLOG).

$ Modload imudp $ udpServerrun 514 

Usar TCP Conexão (que é mais lenta, mas mais confiável), pesquisa e descomposição as linhas abaixo.

$ Modload imtcp $ inputtcpServerrun 514 

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

Configurar servidor de log rsyslog

Em seguida, você precisa definir o Regras Para processar logs remotos no seguinte formato.

instalação.Destino de gravidade_level (onde armazenar log) 

Onde:

  • instalação: é o tipo de mensagem de geração de processos/aplicativos, eles incluem auth, cron, daemon, kernel, local0… local7. Usando * significa todas as instalações.
  • nível de severidade: é tipo de mensagem de log: emerg-0, alert-1, crit-2, err-3, warn-4, aviso-5, info-6, depuração-7. Usando * significa todos os níveis de gravidade e nenhum implica nenhum nível de gravidade.
  • destino: é o arquivo local ou o servidor RSYSLOG remoto (definido no formulário IP: Port).

Vamos usar o seguinte Regras para coletar logs de hosts remotos, usando o Remotelogs modelo. Observe que essas regras devem vir antes de quaisquer regras para processar mensagens locais, conforme mostrado na captura de tela.

$ Remotelogs de modelo, "/var/log/%hostName%/%ProgramName%.registro" *.* ?Remotelogs & ~ 
Defina o conjunto de regras para o lançamento de rsysLog

Olhando para o acima Regras, A primeira regra é "$ Remotelogs de modelo"/var/log/%hostName%/%Programname%.registro"".

A diretiva $ modelo diz ao RSYSLOG Daemon para reunir e escrever todas as mensagens remotas recebidas para logs distintos em /var/log, com base no nome de anfitrião (nome da máquina cliente) e instalação de cliente remoto (programa/aplicativo) que gerou as mensagens conforme definido pelas configurações presentes no modelo Remotelogs.

A segunda linha “*.* ?Remotelogs ” significa gravar mensagens de todas as instalações em todos os níveis de gravidade usando o Remotelogs Configuração do modelo.

A linha final "& ~" instrui o rsyslog a parar de processar as mensagens depois de ser escrito em um arquivo. Se você não incluir "& ~", As mensagens serão escritas nos arquivos locais.

Existem muitos outros modelos que você pode usar, para obter mais informações, consulte a página RSYSLOG Configuration Man (Man RsysLog.conf) ou consulte a documentação online do RSYSLOG.

É isso com a configuração do servidor RSYSLOG. Salvar e fechar o arquivo de configuração. Para aplicar as mudanças recentes, reinicie o daemon rsysLog com o seguinte comando.

$ sudo systemctl reiniciar rsyslog 

Agora verifique os soquetes da rede RSYSLOG. Use o comando ss (ou netstat com os mesmos sinalizadores) Comando e tubar a saída para o Grep para filtrar as conexões RSYSLOGD.

$ sudo ss -tulnp | Grep "rsyslog" 
Verifique o status da rede RSYSLOG

Em seguida, em CENTOS 7, se você tem 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 ativado, você precisará abrir a porta 514 para permitir os dois UDP/TCP conexões com o servidor RSYSLOG, executando.

------------- No CentOS ------------- $ sudo firewall-cmd --permanent --add-port = 514/udp $ sudo firewall-cmd --permanent --add-port = 514/tcp $ sudo firewall-cmd--reload ------------- No Ubuntu ------------- $ sudo ufw permitir 514/udp $ sudo ufw permitir 514/tcp $ sudo ufw recarregar 

Como configurar o cliente RSYSLOG para enviar logs para o RSYSLOG Server

Agora no sistema do 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, como 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 atability rsyslog $ sudo syst4 status rsyslog 

Depois que o serviço RSYSLOG estiver em funcionamento, abra o arquivo de configuração principal, onde você executará alterações na configuração padrão.

$ sudo vim /etc /rsyslog.conf 

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

*. * @@ 192.168.100.10: 514 
Configure o cliente RSYSLOG

A regra acima enviará mensagens de todas as instalações e em todos os níveis de gravidade. Enviar mensagens de uma instalação específica, 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 reiniciar 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, na forma HostName/ProgramName.registro.

Execute um comando LS para listar longa listagem do diretório de logs pai e verifique se existe 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/ 
Verifique o registro do cliente RSYSLOG

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

$ sudo ls -l/var/log/ip-172-31-21-58/ 
Verifique os logs do cliente RSYSLOG
Resumo

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

Você também pode querer se referir a páginas manuais relevantes do RSYSLOG para obter mais ajuda. Sinta -se à vontade para nos dar qualquer feedback ou fazer perguntas.