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


Log.io es una aplicación pequeña, simple pero efectiva, construida sobre Node.js y Socket.io , que permite monitorear el registro de 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: Instale Node.js y paquetes 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, siga adelante 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 usar 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.

Entonces, 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 con el fin de configurar más la aplicación.

# 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. The harvester file watches for changes in the specified local log files declared in its configuration and sends its output via socket.io TCP
    protocol which further send the messages to Log.io local server or any other remote server declared with its IP Address ( 0.0.0.0 address specified on harvesters broadcasts to all log.io listening servers) – file harvester.conf
  2. Log.io server binds on all network interfaces (if not specified otherwise in log_server.conf file) and waits for messages from locally or remote harvesters nodes and sends their output to log.io Web server (0.0.0.0 means that it waits for messages from any local or remote harvesters) file log_server.conf
  3. Log.io Web server binds on all network interfaces, listens for web clients connections on port 28778 and processes and outputs the messages that it receives internally from log.io server – file 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 funciones 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 diagonales 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 usar 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 eficaz 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.

Todos los derechos reservados © Linux-Console.net • 2019-2021