Carregar logs para um host remoto nos permite centralizar relatórios para mais de um dispositivo e manter um backup de relatório para pesquisa no caso de algo falhar e nos impedir de acessar os logs localmente.
Este tutorial mostra como configurar um servidor remoto para hospedar logs e como enviar esses logs de dispositivos clientes e como classificar ou dividir logs em diretórios por host cliente.
Para seguir as instruções que você pode usar um dispositivo virtual, peguei um VPS de nível gratuito da Amazon (se você precisar de ajuda para configurar um dispositivo da Amazon, eles têm um ótimo conteúdo dedicado no LinuxHint em https: // linuxhint.com / categoria / aws /). Observe que o IP público do servidor é diferente de seu IP interno.
Antes de começar:
O software usado para enviar logs remotamente é o rsyslog, ele vem por padrão no Debian e distribuições Linux derivadas, caso você não o tenha executado:
# sudo apt install rsyslogVocê sempre pode verificar o estado do rsyslog executando:
# sudo service rsyslog status
Como você pode ver que o status na captura de tela é ativo, se o seu rsyslog não estiver ativo, você sempre pode iniciá-lo executando:
# sudo service rsyslog startOu
# systemctl start rsyslog
Observação: Para obter informações adicionais sobre todas as opções para gerenciar os serviços Debian, verifique Pare, inicie e reinicie os serviços no Debian.
Iniciar o rsyslog não é relevante agora porque precisaremos reiniciá-lo depois de fazer algumas alterações.
Como enviar logs do Linux para um servidor remoto: o lado do servidor
Em primeiro lugar, edite o arquivo no servidor / etc / resyslog.conf usando nano ou vi:
# nano / etc / rsyslog.conf
Dentro do arquivo, descomente ou adicione as seguintes linhas:
módulo (carregar = "imudp")entrada (tipo = "imudp" porta = "514")
módulo (carregar = "imtcp")
entrada (tipo = "imtcp" porta = "514")
Acima, removemos o comentário ou adicionamos recepções de logs por meio de UDP e TCP, você pode permitir apenas um deles ou ambos, uma vez descomentado ou adicionado, você precisará editar suas regras de firewall para permitir a entrada de logs, para permitir a recepção de logs por meio de execução de TCP:
# ufw allow 514 / tcp
Para permitir a entrada de registros por meio do protocolo UDP, execute:
# ufw allow 514 / udp
Para permitir através de TCP e UDP, execute os dois comandos acima.
Observação: para mais informações sobre o UFW você pode ler Trabalhando com Firewalls Debian (UFW).
Reinicie o serviço rsyslog executando:
# sudo service rsyslog restart
Agora continue no cliente para configurar o envio de logs, então voltaremos ao servidor para melhorar o formato.
Como enviar logs do Linux para um servidor remoto: o lado do cliente
No cliente de envio de logs adicione a seguinte linha, substituindo o IP 18.223.3.241 para o IP do seu servidor.
*.* @@ 18.223.3.241: 514
Saia e salve as alterações pressionando CTRL + X.
Depois de editado, reinicie o serviço rsyslog executando:
# sudo service rsyslog restart
No lado do servidor:
Agora você pode verificar os logs dentro de / var / log, ao abri-los você notará fontes mistas para o seu log. O exemplo a seguir mostra os logs da interface interna da Amazon e do cliente Rsyslog (Montsegur):
Um zoom mostra isso com clareza:
Não é confortável misturar arquivos, abaixo iremos editar a configuração do rsyslog para separar os logs de acordo com a fonte.
Para discriminar os logs dentro de um diretório com o nome do host do cliente, adicione as seguintes linhas ao servidor / etc / rsyslog.conf para instruir o rsyslog sobre como salvar logs remotos, para fazê-lo dentro do rsyslog.conf adicione as linhas:
$ template RemoteLogs, "/ var / log /% HOSTNAME% /.registro"*.* ?RemoteLogs
& ~
Saia de salvar as alterações pressionando CTRL + X e reinicie rsyslog no servidor novamente:
# sudo service rsyslog restart
Agora você pode ver novos diretórios, um chamado ip-172.31.47.212 que é a interface interna da AWS e outra chamada “montsegur” como o cliente rsyslog.
Nos diretórios, você pode encontrar os logs:
Conclusão:
O registro remoto oferece uma ótima solução para um problema que pode derrubar os serviços se o armazenamento do servidor ficar cheio de registros, como dito no início, também é obrigatório em alguns casos em que o sistema pode ser seriamente danificado sem permitir o acesso aos registros , em tais casos, um servidor de log remoto garante o acesso do administrador do sistema ao histórico do servidor.
Implementar esta solução é tecnicamente muito fácil e até mesmo gratuito, considerando que muitos recursos não são necessários e servidores gratuitos como os níveis gratuitos da AWS são bons para essa tarefa. Se você aumentar a velocidade de transferência de log, poderá permitir apenas o protocolo UDP (apesar de perder a confiabilidade). Existem algumas alternativas ao Rsyslog, como: Flume ou Sentry, mas o rsyslog continua sendo a ferramenta mais popular entre os usuários e administradores de sistemas Linux.
Espero que você tenha achado útil este artigo sobre como enviar logs do Linux para um servidor remoto.