Como criar um servidor de log centralizado com rsysLog no CentOS/RHEL 7

Como criar um servidor de log centralizado com rsysLog no CentOS/RHEL 7

Para que o administrador do sistema identifique ou solucione um problema em um CENTOS 7 ou RHEL 7 Sistema de servidor, ele deve conhecer e visualizar os eventos que ocorreram no sistema em um período específico de tempo a partir de arquivos de log armazenados no sistema no /var/log diretório.

O servidor syslog em uma máquina Linux pode atuar um ponto de monitoramento central em uma rede em que todos os servidores, dispositivos de rede, roteadores, interruptores e a maioria de seus serviços internos que geram logs, relacionados a problemas internos específicos ou apenas mensagens informativas podem enviar seus logs.

Com um CENTOS/RHEL 7 sistema, Rsyslog Daemon é o principal servidor de log pré -instalado, seguido por Systemd Journal Daemon (Journal).

Rsyslog Servidor no Build como um serviço de arquitetura de cliente/servidor e pode alcançar as duas funções simultâneas. Ele pode ser executado como um servidor e coletar todos os logs transmitidos por outros dispositivos na rede ou pode ser executado como cliente enviando todos os eventos internos do sistema registrados para um servidor syslog remoto.

Quando o rsyslog é configurado como cliente, os logs podem ser armazenados localmente em arquivos no sistema de arquivos local ou podem ser enviados remotamente, em vez de escrevê -los em arquivos armazenados na máquina ou gravar arquivos de log de eventos localmente e enviá -los para um servidor syslog remoto em o mesmo tempo.

O Syslog Server opera qualquer mensagem de log usando o seguinte esquema:

tipo (instalação).destino prioritário (gravidade) (onde enviar o log) 

A.instalação ou dados de tipo são representados pelos processos internos do sistema que gera as mensagens. Nos processos internos do Linux (instalações) que geram logs são padronizados da seguinte forma:

  • Auth = Mensagens geradas por processos de autenticação (login).
  • Cron= Mensagens geradas por processos agendados (Crontab).
  • Daemon = Mensagens geradas por daemons (serviços internos).
  • núcleo = Mensagens geradas pelo próprio kernel Linux.
  • correspondência = mensagens geradas por um servidor de correio.
  • syslog = mensagens geradas pelo próprio daemon rsysLog.
  • LPR = mensagens geradas por impressoras locais ou um servidor de impressão.
  • Local0 - Local7 = Mensagens personalizadas definidas por um administrador (Local7 geralmente é atribuído à Cisco ou Windows).

B.prioridade (gravidade) Os níveis também são padronizados. Cada prioridade é atribuída com uma abreviação padrão e um número conforme descrito abaixo. A 7ª prioridade é o nível mais alto de todos.

  • emerg = Emergência - 0
  • alerta = Alertas - 1
  • errar = Erros - 3
  • avisar = Avisos - 4
  • perceber = Notificação - 5
  • informações = Informação - 6
  • depurar = Depuração - 7

Palavras -chave especiais rsyslog:

  • * = todas as instalações ou prioridades
  • nenhum = As instalações não têm prioridades, por exemplo: correspondência.nenhum

C. A terceira parte do esquema syslog é representada pelo destino diretivo. O Daemon RsysLog pode enviar mensagens de log para serem escritas em um arquivo no sistema de arquivos local (principalmente em um arquivo em /var/log/ diretório) ou para ser canalizado para outro processo local ou ser enviado para um console de usuário local (para stdout) ou enviar a mensagem para um servidor syslog remoto via protocolo TCP/UDP, ou mesmo descartar a mensagem para /dev/null.

Para configurar CENTOS/RHEL 7 Como um servidor de log central, primeiro precisamos verificar e garantir que o /var Partição em que todo o arquivo de log é gravado é grande o suficiente (alguns mínimos GB) para poder armazenar todos os arquivos de log que serão enviados por outros dispositivos. É uma boa decisão usar uma unidade separada (LVM, RAID) para montar o /var/log/ diretório.

Requisitos

  1. CENTOS 7.3 Procedimento de instalação
  2. RHEL 7.3 Procedimento de instalação

Como configurar o rsyslog no servidor CentOS/RHEL 7

1. Por padrão, Rsyslog O serviço é instalado automaticamente e deve estar sendo executado em CENTOS/RHEL 7. Para verificar se o daemon é iniciado no sistema, emita o seguinte comando com privilégios root.

# status systemctl rsyslog.serviço 
Verifique o serviço RSYSLOG

Se o serviço não estiver em execução por padrão, execute o comando abaixo para iniciar o RSYSLOG Daemon.

# SystemCtl Iniciar o RSYSLOG.serviço 

2. Se o pacote RSYSLOG não estiver instalado no sistema que você pretende usar como um servidor de log centralizado, emita o seguinte comando para instalar o pacote RSYSLOG.

# yum install rsyslog 

3. A primeira etapa que precisamos fazer no sistema para configurar o Daemon RSYSLOG como um servidor de log centralizado, para que ele possa receber mensagens de log para clientes externos, é abrir e editar, usando seu editor de texto favorito, o principal arquivo de configuração do /etc/rsyslog.conf, Conforme apresentado no trecho abaixo.

# vi /etc /rsyslog.conf 

No arquivo de configuração principal do RSYSLOG, pesquise e descommentam as seguintes linhas (remova a hashtag # assinar no início da linha) para fornecer recepção de transporte UDP ao servidor RSYSLog via 514 porta. UDP é o protocolo padrão usado para transmissão de log por rsyslog.

$ Modload imudp $ udpServerrun 514 
Configure o servidor RSYSLOG

4. O protocolo UDP não possui a sobrecarga do TCP, o que o torna mais rápido para transmitir dados do que o protocolo TCP. Por outro lado, o protocolo UDP não garante a confiabilidade dos dados transmitidos.

No entanto, se você precisar usar o protocolo TCP para recepção de log, você deve pesquisar e descomentar as seguintes linhas de /etc/rsyslog.conf Arquivo para configurar o daemon rsyslog para ligar e ouvir um soquete TCP na porta 514. Os soquetes de escuta TCP e UDP para recepção podem ser configurados em um servidor RSYSLOG simultaneamente.

$ Modload imtcp $ inputtcpServerrun 514 

5. Na próxima etapa, não feche o arquivo ainda, crie um novo modelo que será usado para receber mensagens remotas. Este modelo instruirá o servidor RSYSLOG local onde salvar as mensagens recebidas enviadas por clientes da Syslog Network. O modelo deve ser adicionado antes do início do Diretivas Globais Bloco conforme ilustrado no trecho abaixo.

$ Remotelogs de modelo, "/var/log/%hostName%/%ProgramName%.registro"  . ?Remotelogs & ~ 
Crie modelo RSYSLOG

O de cima $ Remotelogs de modelo A Diretiva instrui o daemon rsyslog a coletar e escrever todas as mensagens de log recebidas em arquivos distintos, com base no nome da máquina cliente e na instalação de cliente remoto (aplicativo) que gerou as mensagens com base nas propriedades definidas que apresentam na configuração do modelo: %NOME DE ANFITRIÃO% e %NOME DO PROGRAMA%.

Todos esses arquivos de log serão gravados no sistema de arquivos local para um arquivo dedicado nomeado após o nome do host da máquina cliente e armazenado em/var/log/diretório.

& ~ A regra de redirecionamento instrui o servidor RSYSLOG local a parar de processar a mensagem de log recebida mais adiante e descartar as mensagens (não as escreva em arquivos internos de log).

O Remotelogs Nome é um nome arbitrário dado a esta diretiva de modelo. Você pode usar qualquer nome que possa encontrar mais adequado para o seu modelo.

Para escrever todas as mensagens recebidas de clientes em um único arquivo de log com o nome do endereço IP do cliente remoto, sem filtrar a instalação que gerou a mensagem, use o trecho abaixo.

$ modelo do fruto "/var/log/%de host-ip%.registro"  . ?Fromip & ~ 

Outro exemplo de um modelo em que todas as mensagens com o sinalizador de instalações de autenticação serão registradas em um modelo chamado “Tmplauth““.

$ modelo tmplauth "/var/log/%hostName%/%ProgramName%.Log "AuthPriv.* ?Tmplauth 

Abaixo está um trecho de uma definição de modelo do RSYSLOG 7 servidor:

modelo (name = "tmplmsg" type = "string" string = "/var/log/remote/msg/%hostName%/%programname ::: secpath-replace%.registro" ) 

O trecho de modelo acima também pode ser escrito como:

modelo (name = "tmplmsg" type = "list") constant (value = "/var/log/remote/msg/") propriedade (name = "hostname") constant (value = "/") (name = "Programname" SecurePath = "Substituir") constante (value = ".registro")  

Para escrever modelos complexos de rsyslog, leia o manual do arquivo de configuração do RSYSLOG, emitindo Man RsysLog.conf Comandando ou consulte a documentação online do RSYSLOG.

6. Depois de editar o arquivo de configuração do RSYSLOG com suas próprias configurações, conforme explicado acima, reinicie o daemon rsysLog para aplicar alterações emitindo o seguinte comando:

# Serviço RSYSLOG RESTART 

7. Até agora, o RSYSLOG Server deve ser configurado para agir um servidor de log centralizado e gravar mensagens de clientes syslog. Para verificar soquetes de rede rsyslog, execute o comando netStat com privilégios root e use grep para filtrar string rsyslog.

# netstat -tulpn | Grep rsyslog 
Verifique o soquete da rede RSYSLOG

8. Se você tem Selinux habilitado em CENTOS/RHEL 7, emitir o seguinte comando para configurar o Selinux para permitir o tráfego rsyslog, dependendo do tipo de soquete de rede.

# semanage -a -t syslogd_port_t -p udp 514 # semanage -a -t syslogd_port_t -p tcp 514 

9. Se o firewall estiver ativado e ativo, execute o comando abaixo para adicionar as regras necessárias para abrir portas de rsyslog no firewalld.

# firewall-cmd --permanent --add-port = 514/tcp # firewall-cmd --permanent --ad-port = 514/udp # firewall-cmd -reload 

Isso é tudo! O RSYSLOG agora está configurado no modo de servidor e pode centralizar logs de clientes remotos. No próximo artigo, veremos como configurar o cliente RSYSLOG no CentOS/RHEL 7 Server.

Usando o RSYSLOG Server como um ponto de monitoramento central para mensagens de log remotas Você pode inspecionar arquivos de log e observar o status de saúde do cliente ou depurar os problemas do cliente mais facilmente quando os sistemas travarem ou estão sob algum tipo de ataque.