Supervise los registros del servidor en tiempo real con la herramienta "Log.io" en RHEL/CentOS 7/6


Log.io es una pequeña aplicación simple pero efectiva construida sobre Node.js y Socket.io , que permite monitorear el registro de los servidores Linux. archivos en tiempo real a través de widgets de pantalla de interfaz web.

Este tutorial lo guiará sobre cómo puede instalar y monitorear cualquier archivo de registro local en tiempo real con Log.io instalado en RHEL/CentOS 7/6.x configurando Log.io archivo recolector para monitorear cualquier cambio local en los archivos de registro.

Paso 1: agregar repositorios Epel

1. Los repositorios CentOS Epel proporcionan los paquetes binarios para Node.js y NPM - Módulos empaquetados de nodo . Instale los repositorios de Epel emitiendo el siguiente comando.

# yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
--------------------- 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. Después de agregar Epel Repos en su sistema, realice una actualización del sistema ejecutando el siguiente comando.

# yum update

Paso 2: instalar paquetes de Node.js y NPM

3. Node.js es una plataforma de programación del lado del servidor de Javascript que le permite crear aplicaciones de red con funcionalidad de backend. NPM (Node Package Manager) es prácticamente el administrador de paquetes para Node.js. Entonces, en el siguiente paso, continúe e instale los binarios Node.js y NMP en su sistema a través del administrador de paquetes YUM emitiendo los siguientes comandos.

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

Paso 3: instalar y configurar la aplicación Log.io

4. La aplicación Log.io debe instalarse en su sistema a través de NPM especificando un usuario de sistema local válido, a través del cual debe realizarse la instalación. Si bien puede utilizar cualquier usuario del sistema válido para instalar Log.io, personalmente recomiendo instalar la aplicación a través del usuario root u otro usuario del sistema con privilegios de root.

La razón para utilizar este enfoque es que Log.io debe tener acceso para leer archivos de registro localmente y un usuario sin privilegios de root no puede acceder y leer algunos archivos de registro importantes.

Por lo tanto, inicie sesión con la cuenta raíz e instale la aplicación Log.io a través de la cuenta raíz emitiendo el siguiente comando (si usa otro usuario, reemplace la cuenta raíz con el usuario de su sistema en consecuencia).

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

5. Después de que se haya instalado la aplicación, cambie su directorio de trabajo a la carpeta Log.io , que está oculta, y haga una lista de directorios para visualizar el contenido de la carpeta y configurar la aplicación aún más.

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

6. Ahora es el momento de configurar Log.io para monitorear los archivos de registro locales en tiempo real. Veamos cómo funciona Log.io.

  1. El archivo recolector busca cambios en los archivos de registro locales especificados declarados en su configuración y envía su salida a través de socket.io TCP
    protocolo que envía los mensajes al servidor local Log.io o cualquier otro servidor remoto declarado con su dirección IP (dirección 0.0.0.0 especificada en las transmisiones de los recolectores a todos los servidores de escucha de log.io) - archivo harvester.conf
  2. El servidor Log.io se une a todas las interfaces de red (si no se especifica lo contrario en el archivo log_server.conf) y espera mensajes de los nodos recolectores locales o remotos y envía su salida al servidor web log.io (0.0.0.0 significa que espera mensajes de cualquier recolector local o remoto) archivo log_server.conf
  3. El servidor web Log.io se enlaza en todas las interfaces de red, escucha las conexiones de los clientes web en el puerto 28778 y procesa y genera los mensajes que recibe internamente del servidor log.io - archivo web_server.conf

Primero abra el archivo harvester.conf para editarlo, que de manera predeterminada solo monitorea los archivos de registro de Apache, y reemplace la instrucción nodeName para que coincida con su nombre de host y defina logStreams declaraciones con los archivos de registro internos que desea supervisar (en este caso, estoy supervisando varios archivos de registro, como auditorías, mensajes y registros seguros). Utilice el siguiente extracto del archivo como guía.

# nano harvester.conf

Extracto del archivo 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
  }
}

Además, si no necesita que la salida de la cosechadora se envíe a un servidor Log.io remoto, cambie la línea host en la declaración del servidor para enviar solo su salida localmente modificando la dirección 0.0.0.0 con la dirección de loopback ( 127.0.0.1) .

7. Por razones de seguridad, si no espera la salida de los recolectores remotos a su servidor local Log.io , abra el archivo log_server.conf y reemplace 0.0.0.0 dirección con dirección de loopback ( 127.0.0.1 ).

# nano log_server.conf

8. Otras características de seguridad como el inicio de sesión con credenciales, HTTPS o la restricción basada en IP al servidor web Log.io se pueden aplicar en el lado del servidor web. Para este tutorial, solo usaré como medida de seguridad el inicio de sesión con credenciales.

Por lo tanto, abra el archivo web_server.conf , elimine el comentario de la instrucción auth completa eliminando todas las barras y asteriscos y reemplace usuario y pase directivas en consecuencia, como se sugiere en la captura de pantalla inferior.

# nano web_server.conf

Paso 4: agregue la regla de firewall e inicie la aplicación Log.io

9. Para obtener acceso web al servidor Log.io , agregue una regla en RHEL / CentOS 7 Firewall para abrir TCP 28778 puerto ejecutando el siguiente comando.

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

Nota: Los usuarios de RHEL/CentOS 6.x pueden abrir el puerto 28778 en el firewall de iptable.

Paso 5: Inicie la aplicación Log.io e ingrese a la interfaz web

10. Para iniciar la aplicación de monitoreo de registros Log.io , asegúrese de que su directorio de trabajo actual sea el .log.io de inicio de root y use los siguientes comandos en el siguiente orden para comenzar solicitud.

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

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

11. Después de que se haya iniciado el servidor, abra un navegador, ingrese la IP de su servidor seguida del número de puerto 28778 usando el protocolo HTTP en la dirección URL y debería aparecer un mensaje solicitando sus credenciales de inicio de sesión.

Ingrese su usuario y contraseña configurados en el paso 8 para continuar y la aplicación Log.io ahora debería estar visible en su navegador presentando archivos de registro monitoreados en tiempo real.

http://192.168.1.20:28778

En la interfaz web, agregue nuevas pantallas y organice sus flujos o nodos en consecuencia.

12. Para detener la aplicación Log.io , ejecute el siguiente comando.

# pkill node

Paso 6: Cree el script de administración de Log.io

13. Para utilizar un comando que administre la aplicación Log.io con tres interruptores ( iniciar , detener y estado ) cree el siguiente script llamado log.io en el directorio ejecutable /usr/local/bin y agregue permisos de ejecución a este script.

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

Agregue el siguiente extracto a este archivo de secuencia de comandos.

#!/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, detener o ver el estado de Log.io, inicie sesión con la cuenta raíz (o el usuario en el que se instaló la aplicación Log.io) y simplemente ejecute los siguientes comandos para administrar fácilmente la aplicación.

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

¡Eso es todo! En mi opinión, Log.io es una aplicación web excelente y efectiva para monitorear los archivos de registro de servidores locales o remotos en tiempo real y obtener una perspectiva de lo que está sucediendo internamente en los sistemas y especialmente para depurar problemas del servidor cuando Los sistemas tienden a dejar de responder o fallar, sin la necesidad de usar una consola.