Como gerenciar logs do sistema (configurar, girar e importar para o banco de dados) no RHEL 7 - Parte 5

Como gerenciar logs do sistema (configurar, girar e importar para o banco de dados) no RHEL 7 - Parte 5

Para manter o seu RHEL 7 Sistemas seguros, você precisa saber como monitorar todas as atividades que ocorrem nesses sistemas, examinando arquivos de log. Assim, você poderá detectar qualquer atividade incomum ou potencialmente maliciosa e executar solucionamento de problemas do sistema ou tomar outra ação apropriada.

Exame RHCE: Gerenciar logsusing do sistema RSYSLOGD e LOGROTATA - PARTE 5

Em RHEL 7, O daemon rsysLogd é responsável pelo registro do sistema e lê sua configuração de /etc/rsyslog.conf (Este arquivo especifica o local padrão para todos os logs do sistema) e de arquivos dentro /etc/rsyslog.d, caso existam.

Configuração RSYSLOGD

Uma rápida inspeção do rsyslog.Conf será útil para começar. Este arquivo é dividido em três seções principais: Módulos (Como o RSYSLOG segue um design modular), Global Diretivas (usadas para definir propriedades globais do daemon rsysLogd) e Regras. Como você provavelmente imaginará, esta última seção indica o que é registrado ou mostrado (também conhecido como seletor) e onde, e será nosso foco ao longo deste artigo.

Uma linha típica em rsyslog.conf é o seguinte:

Configuração RSYSLOGD

Na imagem acima, podemos ver que um seletor consiste em um ou mais pares Instalação: Prioridade Separado por semicolons, onde a instalação descreve o tipo de mensagem (consulte a Seção 4.1.1 na RFC 3164 para ver a lista completa de instalações disponíveis para o RSYSLog) e a prioridade indica sua gravidade, que pode ser uma das seguintes palavras auto-explicativas:

  1. depurar
  2. informações
  3. perceber
  4. aviso
  5. errar
  6. Crit
  7. alerta
  8. emerg

Embora não seja uma prioridade em si, a palavra -chave nenhum significa nenhuma prioridade em todas as instalações fornecidas.

Observação: Que uma dada prioridade indica que todas as mensagens de tal prioridade e acima devem ser registradas. Assim, a linha no exemplo acima instrui o rsysLogd daemon para registrar todas as mensagens de informações prioritárias ou superior (independentemente da instalação), exceto aquelas pertencentes a correspondência, Authpriv, e Cron Serviços (nenhuma mensagem proveniente dessas instalações será levada em consideração) para /var/log/mensagens.

Você também pode agrupar várias instalações usando o sinal do cólon para aplicar a mesma prioridade a todos eles. Assim, a linha:

*.info; correio.Nenhum; Authpriv.Nenhum; Cron.Nenhum/var/log/mensagens 

Poderia ser reescrito como

*.informações; correio, authpriv, cron.Nenhum/var/log/mensagens 

Em outras palavras, as instalações correspondência, Authpriv, e Cron são agrupados e a palavra -chave nenhum é aplicado aos três.

Criando um arquivo de log personalizado

Para registrar todas as mensagens de daemon para /var/log/Tecmint.registro, Precisamos adicionar a seguinte linha em rsyslog.conf ou em um arquivo separado (mais fácil de gerenciar) dentro /etc/rsyslog.d:

Daemon.*/var/log/tecmint.registro 

Vamos reiniciar o daemon (observe que o nome do serviço não termina com um d):

# SystemCtl Reiniciar rsysLog 

E verifique o conteúdo do nosso registro personalizado antes e depois de reiniciar dois daemons aleatórios:

Crie arquivo de log personalizado

Como um exercício de auto-estudo, eu recomendaria que você brinque com as instalações e prioridades e registre mensagens adicionais aos arquivos de log existentes ou criem novos como no exemplo anterior.

Toras rotativas usando Logrotate

Para impedir que os arquivos de log cresçam sem parar, o Logrotate O utilitário é usado para girar, comprimir, remover e alternativamente, enviar toras de correio, facilitando assim a administração de sistemas que geram um grande número de arquivos de log.

Leia sugerida: Como configurar e gerenciar rotação de log usando Logrotate no Linux

Logrotate corre diariamente como um Cron trabalho (/etc/cron.diariamente/Logrotato) e lê sua configuração de /etc/Logrotate.conf e de arquivos localizados em /etc/Logrotate.d, caso existam.

Como no caso de rsyslog, Mesmo quando você pode incluir configurações para serviços específicos no arquivo principal, a criação de arquivos de configuração separados para cada um ajudarão a organizar suas configurações melhor.

Vamos dar uma olhada em um típico Logrotate.conf:

Configuração do Logrotato

No exemplo acima, Logrotate executará as seguintes ações para /var/loh/wtmp: tente girar apenas uma vez por mês, mas apenas se o arquivo for pelo menos 1 mb em tamanho, depois crie um novo arquivo de log com permissões definidas para 0664 e propriedade dada à raiz e grupo do usuário utmp. Em seguida, mantenha apenas um registro arquivado, conforme especificado pela Diretiva Girada:

Logrotate logs mensalmente

Vamos agora considerar outro exemplo como encontrado em /etc/Logrotate.d/httpd:

Gire os arquivos de log do Apache

Você pode ler mais sobre as configurações para Logrotate em suas páginas de homem (homem Logrotate e Man Logrotate.conf). Ambos os arquivos são fornecidos junto com este artigo em formato PDF para sua conveniência de leitura.

Como engenheiro de sistema, cabe a você decidir por quanto tempo os registros serão armazenados e em que formato, dependendo se você tem /var em uma partição separada / volume lógico. Caso contrário, você realmente deseja considerar remover toras antigas para salvar o espaço de armazenamento. Por outro.

Salvando logs em um banco de dados

É claro que examinar os logs (mesmo com a ajuda de ferramentas como grep e expressões regulares) pode se tornar uma tarefa bastante tediosa. Por essa razão, rsyslog nos permite exportá -los para um banco de dados (OTB RDBMs suportados incluem MySQL, Mariadb, PostgreSQL e Oracle.

Esta seção do tutorial assume que você já instalou o Mariadb Servidor e cliente na mesma caixa Rhel 7, onde os logs estão sendo gerenciados:

# yum update && yum instalar mariadb mariadb-servidor mariadb-client rsyslog-mysql # systemctl atabilitar mariadb && systemctl start mariadb 

Em seguida, use o mysql_secure_installation utilitário para definir a senha para o usuário root e outras considerações de segurança:

Banco de dados MySQL seguro

Observação: Se você não quiser usar o Mariadb Usuário root para inserir mensagens de log no banco de dados, você pode configurar outra conta de usuário para fazê -lo. Explicando como fazer isso está fora do escopo deste tutorial, mas é explicado em detalhes na Base de Conhecimento Mariadb. Neste tutorial, usaremos a conta raiz da simplicidade.

Em seguida, baixe o criadoB.SQL Script do GitHub e importe -o para o seu servidor de banco de dados:

# mysql -u root -p < createDB.sql 
Salvar logs do servidor no banco de dados

Finalmente, adicione as seguintes linhas a /etc/rsyslog.conf:

$ Modload ommysql $ actionommysqlserverport 3306 *.*: ommysql: localhost, syslog, root,Seu masspordhere 

Reiniciar rsyslog e o servidor de banco de dados:

# SystemCtl Restart rsyslog # SystemCtl Reiniciar o mariadb 

Consultando os logs usando sintaxe SQL

Agora execute algumas tarefas que modificarão os logs (como interromper e iniciar serviços, por exemplo), depois efetuar login no servidor de banco de dados e usar comandos SQL padrão para exibir e pesquisar nos logs:

Use syslog; Selecione Recebada, mensagem de SystemEvents; 
Consulta logs no banco de dados

Resumo

Neste artigo, explicamos como configurar o registro do sistema, como girar toras e como redirecionar as mensagens para um banco de dados para uma pesquisa mais fácil. Esperamos que essas habilidades sejam úteis enquanto você se prepara para o exame RHCE e em suas responsabilidades diárias também.

Como sempre, seu feedback é mais do que bem -vindo. Sinta -se à vontade para usar o formulário abaixo para nos alcançar.