Como criar um servidor de log centralizado com rsysLog no CentOS/RHEL 7
- 1613
- 486
- Mrs. Christopher Okuneva
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. O 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. O 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
- CENTOS 7.3 Procedimento de instalação
- 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çoVerifique 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 514Configure 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.
O & ~ 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 rsyslogVerifique 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.
- « Wondershaper - uma ferramenta para limitar a largura de banda da rede no Linux
- Como configurar o Central Logging Server com rsyslog no Linux »