Como gerenciar logs do sistema (configurar, girar e importar para o banco de dados) no RHEL 7 - Parte 5
- 3791
- 732
- Mr. Mitchell Hansen
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 5Em 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 RSYSLOGDNa 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:
- depurar
- informações
- perceber
- aviso
- errar
- Crit
- alerta
- 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 personalizadoComo 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 LogrotatoNo 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 mensalmenteVamos agora considerar outro exemplo como encontrado em /etc/Logrotate.d/httpd:
Gire os arquivos de log do ApacheVocê 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:
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.sqlSalvar 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.
- « Como usar declarações de controle de fluxo em AWK - Parte 12
- 15 melhores jogos Linux de 2015 - você deve tentar agora »