Como configurar o Central Logging Server com rsyslog no Linux
- 801
- 224
- Mrs. Christopher Okuneva
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 logPara 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 rsyslogEm 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: 514Configure 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.
- « Como criar um servidor de log centralizado com rsysLog no CentOS/RHEL 7
- FILELIGHT - Estatísticas de uso de disco rapidamente analayze no Linux »