Búsqueda de sitios web

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, sencilla 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 instalar y monitorear cualquier archivo de registro local en tiempo real con Log.io instalado en RHEL/CentOS 7/6.x configurando Log.io b> archivo cosechador 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 NPMMódulos empaquetados de Node . Instale los repositorios de Epel emitiendo el siguiente comando.

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

yum update

Paso 2: Instale los paquetes Node.js y NPM

3. Node.js es una plataforma de programación del lado del servidor Javascript que le permite crear aplicaciones de red con funcionalidad backend. NPM (Node Package Manager) es prácticamente el administrador de paquetes de Node.js. Entonces, en el siguiente paso, instale Node.js y los binarios 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 válido del sistema local, a través del cual debe realizarse la instalación. Si bien puede utilizar cualquier usuario válido del sistema 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 generalmente no puede acceder ni 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).

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

5. Después de instalar la aplicación, cambie su directorio de trabajo a la carpeta Log.io, que está oculta, y haga una lista del directorio para visualizar el contenido de la carpeta para poder configurar la aplicación más adelante.

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 harvester 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 además envía los mensajes al servidor local Log.io o cualquier otro servidor remoto declarado con su dirección IP (la 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 vincula a todas las interfaces de red (si no se especifica lo contrario en el archivo log_server.conf) y espera mensajes de nodos recolectores locales o remotos y envía su salida al servidor web log.io (0.0.0.0 significa que espera mensajes). desde cualquier recolector local o remoto) archivo log_server.conf
  3. El servidor web Log.io se vincula 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 forma predeterminada solo monitorea los archivos de registro de Apache, y reemplace la declaración nodeName para que coincida con su nombre de host y defina los logStreams declaraciones con qué archivos de registro internos desea monitorear (en este caso estoy monitoreando varios archivos de registro, como auditoría, 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 del recolector se envíe a un servidor Log.io remoto, cambie la línea host en la instrucción server 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 que los recolectores remotos envíen resultados a su servidor Log.io local, abra el archivo log_server.conf y reemplace < b>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 credenciales de inicio de sesión, HTTPS o restricciones basadas 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.

Entonces, abra el archivo web_server.conf, descomente toda la declaración auth eliminando todas las barras y asteriscos y reemplace usuario y contraseña. b> directivas en consecuencia, como se sugiere en la captura de pantalla inferior.

nano web_server.conf

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

9. Para obtener acceso web al servidor Log.io, agregue una regla en el firewall RHEL/CentOS 7. para abrir el puerto TCP 28778 emitiendo 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 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 directorio raíz .log.io y utilice lo siguiente comandos en el siguiente orden para iniciar la aplicación.

------------ 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 seguido 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: crear 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 status) 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 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, detener o ver el estado de Log.io, inicie sesión con la cuenta raíz (o el usuario que tiene instalada 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 archivos de registro de servidores locales o remotos en tiempo real y obtener una perspectiva de lo que sucede internamente en los sistemas y especialmente para depurar problemas del servidor cuando Los sistemas tienden a dejar de responder o fallar, sin necesidad de usar una consola.