Pesquisa de site

Monitore os logs do servidor em tempo real com a ferramenta "Log.io" no RHEL/CentOS 7/6


Log.io é um aplicativo pequeno, simples, mas eficaz, construído sobre Node.js e Socket.io, que permite monitorar o log de servidores Linux arquivos em tempo real através de widgets na tela da interface web.

Este tutorial irá guiá-lo sobre como você pode instalar e monitorar qualquer arquivo de log local em tempo real com o Log.io instalado no RHEL/CentOS 7/6.x configurando o Log.io b> arquivo colheitadeira para monitorar quaisquer alterações locais nos arquivos de log.

Etapa 1: adicionar repositórios Epel

1. Os repositórios CentOS Epel fornecem os pacotes binários para Node.js e NPMNode Packaged Modules . Instale os repositórios Epel emitindo o seguinte comando.

No RHEL/CentOS 7
yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
No RHEL/CentOS 6
--------------------- On RHEL/CentOS 6.x - 32 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm

--------------------- On RHEL/CentOS 6.x - 64 Bit ---------------------
yum install http://fedora.mirrors.telekom.ro/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2. Depois de adicionar o Epel Repos ao seu sistema, faça uma atualização do sistema executando o seguinte comando.

yum update

Etapa 2: instalar pacotes Node.js e NPM

3. Node.js é uma plataforma de programação Javascript do lado do servidor que permite criar aplicativos de rede com funcionalidade de back-end. NPM (Node Package Manager) é praticamente o gerenciador de pacotes do Node.js. Portanto, na próxima etapa, instale os binários Node.js e NMP em seu sistema por meio do gerenciador de pacotes YUM, emitindo os seguintes comandos.


curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - 
yum install -y nodejs

Etapa 3: instalar e configurar o aplicativo Log.io

4. A aplicação Log.io deve ser instalada em seu sistema através do NPM, especificando um usuário válido do sistema local, através do qual a instalação deve ocorrer. Embora você possa usar qualquer usuário de sistema válido para instalar o Log.io, eu pessoalmente recomendo instalar o aplicativo através do usuário root ou outro usuário do sistema com privilégios de root.

A razão para usar essa abordagem é que Log.io deve ter acesso para ler arquivos de log localmente e um usuário com privilégios de root sem privilégios geralmente não pode acessar e ler alguns arquivos de log importantes.

Portanto, faça login com conta root e instale o aplicativo Log.io através da conta root emitindo o seguinte comando (se você usar outro usuário, substitua a conta root pelo usuário do sistema de acordo).

npm install -g log.io --user “root”

5. Após a instalação do aplicativo mude seu diretório de trabalho para a pasta Log.io, que está oculta, e faça uma listagem de diretórios para visualizar o conteúdo da pasta para configurar o aplicação ainda mais.

pwd  		[Make sure you are on the right path]
cd .log.io/
ls

6. Agora é hora de configurar o Log.io para monitorar arquivos de log locais em tempo real. Vamos ver como funciona o Log.io.

  1. O arquivo harvester observa alterações nos arquivos de log locais especificados declarados em sua configuração e envia sua saída via socket.io TCP
    protocolo que envia ainda as mensagens para o servidor local Log.io ou qualquer outro servidor remoto declarado com seu endereço IP (endereço 0.0.0.0 especificado nas transmissões dos coletores para todos os servidores de escuta log.io) – arquivo harvester.conf
  2. O servidor Log.io se liga a todas as interfaces de rede (se não for especificado de outra forma no arquivo log_server.conf) e aguarda mensagens de nós de colheitadores locais ou remotos e envia sua saída para o servidor Web log.io (0.0.0.0 significa que ele aguarda mensagens de qualquer colheitadeira local ou remota) arquivo log_server.conf
  3. O servidor Web Log.io se liga a todas as interfaces de rede, escuta conexões de clientes web na porta 28778 e processa e gera as mensagens que recebe internamente do servidor log.io – arquivo web_server.conf

Primeiro abra o arquivo harvester.conf para edição, que por padrão monitora apenas os arquivos de log do Apache, e substitua a instrução nodeName para corresponder ao seu nome de host e definir o logStreams instruções com quais arquivos de log internos você deseja monitorar (neste caso, estou monitorando vários arquivos de log, como auditoria, mensagens e logs seguros). Use o trecho do arquivo abaixo como guia.

nano harvester.conf

Trecho do arquivo do Harvester.

exports.config = {
  nodeName: "pxe-server",
  logStreams: {

audit: [
      "/var/log/audit/audit.log"
    ],

messages: [
      "/var/log/messages"
    ],

secure: [
      "/var/log/secure"
    ]

},
  server: {
    host: '0.0.0.0',
    port: 28777
  }
}

Além disso, se você não precisa que a saída do coletor seja enviada para um servidor Log.io remoto, altere a linha host na instrução server para enviar apenas sua saída localmente modificando o endereço 0.0.0.0 com endereço de loopback (127.0.0.1).

7. Por motivos de segurança, se você não espera a saída dos coletores remotos para o servidor Log.io local, abra o arquivo log_server.conf e substitua < b>0.0.0.0 endereço com endereço de loopback (127.0.0.1).

nano log_server.conf

8. Outros recursos de segurança, como credenciais de login, HTTPS ou restrição baseada em IPs para o servidor web Log.io, podem ser aplicados no lado do servidor web. Para este tutorial usarei apenas como medida de segurança apenas credenciais de login.

Portanto, abra o arquivo web_server.conf, remova o comentário de toda a instrução auth excluindo todas as barras e asteriscos e substitua user e pass conforme sugerido na imagem inferior.

nano web_server.conf

Etapa 4: adicionar regra de firewall e iniciar o aplicativo Log.io

9. Para obter acesso web ao servidor Log.io, adicione uma regra no Firewall RHEL/CentOS 7 para abrir a porta TCP 28778 emitindo o seguinte comando.

firewall-cmd --add-port=28778/tcp --permanent
firewall-cmd --reload

Nota: usuários do RHEL/CentOS 6.x podem abrir a porta 28778 no firewall iptable.

Etapa 5: inicie o aplicativo Log.io e entre na interface da Web

10. Para iniciar o aplicativo de monitoramento de log Log.io, certifique-se de que seu diretório de trabalho atual seja o home do root .log.io e use o seguinte comandos na seguinte ordem para iniciar o aplicativo.

------------ First start server, put it in background and press Enter key ------------
log.io-server & 

------------ Start log harvester in background ------------
log.io-harvester & 

11. Depois que o servidor for iniciado, abra um navegador, insira o IP do seu servidor seguido do número da porta 28778 usando o protocolo HTTP no endereço URL e um prompt solicitando suas credenciais de login deverá aparecer. .

Digite seu usuário e senha configurados no passo 8 para prosseguir e o aplicativo Log.io agora deverá estar visível em seu navegador apresentando arquivos de log monitorados em tempo real.

http://192.168.1.20:28778

Na interface da Web, adicione novas telas e organize seus fluxos ou nós de acordo.

12. Para parar o aplicativo Log.io execute o seguinte comando.

pkill node

Etapa 6: Criar script de gerenciamento do Log.io

13. Para usar um comando que gerencia a aplicação Log.io com três opções ( start, stop e status) crie o seguinte script chamado log.io no diretório executável /usr/local/bin e anexe permissões de execução a este script.

nano /usr/local/bin/log.io
chmod +x /usr/local/bin/log.io

Adicione o seguinte trecho a este arquivo de script.

#!/bin/bash

                start() {
                echo "Starting log.io process..."
                /usr/bin/log.io-server &
                /usr/bin/log.io-harvester &
                                         }

                stop() {
                echo "Stopping io-log process..."
                pkill node
                                         }                             

                status() {
                echo "Status io-log process..."
                netstat -tlp | grep node
                                         }

case "$1" in
                start)
start
        ;;
                stop)
stop
        ;;
                status)
status
                ;;
                *)
echo "Usage: start|stop|status"
        ;;
Esac

14. Para iniciar, parar ou visualizar o status do Log.io, faça login com a conta root (ou o usuário cujo aplicativo Log.io foi instalado) e basta executar os seguintes comandos para gerenciar facilmente o aplicativo.

log.io start
log.io status
log.io stop

Isso é tudo! Na minha opinião Log.io é uma aplicação web excelente e eficaz para monitorar arquivos de log de servidores locais ou remotos em tempo real e ter uma visão do que está acontecendo internamente nos sistemas e principalmente para depurar problemas do servidor quando os sistemas tendem a parar de responder ou travar, sem a necessidade de usar um console.