Recherche de site Web

Surveillez les journaux du serveur en temps réel avec l’outil « Log.io » sur RHEL/CentOS 7/6


Log.io s’agit d’une petite application simple mais efficace construite sur Node.js et Socket.io, qui permet de surveiller les fichiers journaux des serveurs Linux en temps réel via les widgets d’écran de l’interface Web.

Ce tutoriel vous expliquera comment installer et surveiller les fichiers journaux locaux en temps réel avec Log.io installés sur RHEL/CentOS 7/6.x en configurant Log.io fichier de moissonneur pour surveiller les modifications locales apportées aux fichiers journaux.

Étape 1 : Ajouter des dépôts Epel

1. Les référentiels CentOS Epel fournissent les packages binaires pour les modules Node.js et NPM (Node Packaged Modules). Installez les référentiels Epel en exécutant la commande suivante.

Sur RHEL/CentOS 7
# yum install http://fedora.mirrors.telekom.ro/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Sur 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. Après avoir ajouté Epel Repos sur votre système, effectuez une mise à niveau du système en exécutant la commande suivante.

# yum update

Étape 2 : Installer les packages Node.js et NPM

3. Node.js est une plate-forme de programmation Javascript côté serveur qui vous permet de créer des applications réseau avec des fonctionnalités backend. NPM (Node Package Manager) est pratiquement le gestionnaire de paquets pour Node.js. Donc, à l’étape suivante, allez-y et installez les binaires Node.js et NMP sur votre système via le gestionnaire de paquets YUM en exécutant les commandes suivantes.


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

Étape 3 : Installer et configurer Log.io application

4. Log.io’application doit être installée sur votre système via NPM en spécifiant un utilisateur système local valide, par lequel l’installation doit avoir lieu. Bien que vous puissiez utiliser n’importe quel utilisateur système valide pour installer Log.io, je recommande personnellement d’installer l’application via l’utilisateur root ou un autre utilisateur du système disposant de privilèges root.

La raison de l’utilisation de cette approche est que Log.io devez avoir accès pour lire localement les fichiers journaux et qu’un utilisateur disposant de privilèges root sans privilèges ne peut généralement pas accéder à certains fichiers journaux importants et les lire.

Par conséquent, connectez-vous avec le compte root et installez Log.io application via le compte root en exécutant la commande suivante (si vous utilisez un autre utilisateur, remplacez le compte root par votre utilisateur système en conséquence).

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

5. Une fois l’application installée, remplacez votre répertoire de travail par Log.io dossier, qui est masqué, et effectuez une liste de répertoires pour visualiser le contenu du dossier afin de configurer davantage l’application.

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

6. Il est maintenant temps de configurer Log.io pour surveiller les fichiers journaux locaux en temps réel. Voyons comment Log.io fonctionne.

  1. Le fichier harvester surveille les modifications dans les fichiers journaux locaux spécifiés déclarés dans sa configuration et envoie sa sortie via socket.io protocole TCP
    qui envoie ensuite les messages à Log.io serveur local ou à tout autre serveur distant déclaré avec son adresse IP (l’adresse 0.0.0.0 spécifiée sur les diffusions des harvesters à tous les serveurs d’écoute log.io) – fichier harvester.conf
  2. Log.io serveur se lie à toutes les interfaces réseau (sauf indication contraire dans le fichier log_server.conf) et attend les messages des nœuds de moissonneurs locaux ou distants et envoie leur sortie à log.io serveur Web (0.0.0.0 signifie qu’il attend les messages de n’importe quel moissonneur local ou distant) log_server.conf
  3. Log.io serveur Web se lie sur toutes les interfaces réseau, écoute les connexions des clients Web sur le port 28778 et traite et affiche les messages qu’il reçoit en interne de log.io serveur – fichier web_server.conf

Ouvrez d’abord le fichier harvester.conf pour l’édition, qui par défaut ne surveille que les fichiers journaux Apache, et remplacez l’instruction nodeName pour qu’elle corresponde à votre nom d’hôte et définissez les instructions logStreams avec les fichiers journaux internes que vous souhaitez surveiller (dans ce cas, je surveille plusieurs fichiers journaux tels que l’audit, les messages et les journaux sécurisés). Utilisez l’extrait de fichier ci-dessous comme guide.

# nano harvester.conf

Extrait du dossier 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
  }
}

De plus, si vous n’avez pas besoin que la sortie du moissonneur soit envoyée à un serveur de Log.io distant, modifiez la ligne host sur l’instruction serveur pour envoyer uniquement sa sortie localement en modifiant l’adresse 0.0.0.0 avec l’adresse de bouclage (127.0.0.1).

7. Pour des raisons de sécurité, si vous ne vous attendez pas à ce que les moissonneurs distants sortent sur votre serveur Log.io local, ouvrez le fichier log_server.conf et remplacez l’adresse 0.0.0.0 par l’adresse de bouclage (127.0.0.1).

# nano log_server.conf

8. D’autres fonctionnalités de sécurité telles que les informations d’identification, la connexion, HTTPS ou la restriction basée sur les adresses IP à Log.io serveur Web peuvent être appliquées côté serveur Web. Pour ce tutoriel, je n’utiliserai comme mesure de sécurité que la connexion par identifiant.

Alors, ouvrez le fichier web_server.conf, décommentez l’ensemble de la déclaration d’authentification en supprimant toutes les barres obliques et astérisques et remplacez les directives user et pass en conséquence comme suggéré sur la capture d’écran du bas.

# nano web_server.conf

Étape 4 : Ajouter une règle de pare-feu et démarrer Log.io application

9. Afin d’obtenir un accès Web à Log.io serveur, ajoutez une règle sur le pare-feu RHEL/CentOS 7 pour ouvrir le port TCP 28778 en exécutant la commande suivante.

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

Remarque : les utilisateurs de RHEL/CentOS 6.x peuvent ouvrir le port 28778 sur le pare-feu iptable.

Étape 5 : Démarrez Log.io’application et entrez dans l’interface Web

10. Pour démarrer Log.io application de surveillance des journaux, assurez-vous que votre répertoire de travail actuel est le .log.io personnel de la racine et utilisez les commandes suivantes dans l’ordre suivant pour démarrer l’application.

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

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

11. Une fois le serveur démarré, ouvrez un navigateur, entrez l’adresse IP de votre serveur suivie du numéro de port 28778 en utilisant le protocole HTTP sur l’adresse URL et une invite demandant vos identifiants de connexion devrait apparaître.

Entrez votre utilisateur et votre mot de passe configurés à l’étape 8 pour continuer et Log.io application devrait maintenant être visible sur votre navigateur présentant les fichiers journaux surveillés en temps réel.

http://192.168.1.20:28778

Sur l’interface Web, ajoutez de nouveaux écrans et organisez vos flux ou nœuds en conséquence.

12. Pour arrêter Log.io application, exécutez la commande suivante.

# pkill node

Étape 6 : Créer Log.io gérer un script

13. Pour utiliser une commande qui gère Log.io application avec trois commutateurs (start, stop et status), créez le script suivant nommé log.io sur le répertoire exécutable /usr/local/bin et ajoutez les autorisations d’exécution à ce script.

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

Ajoutez l’extrait suivant à ce fichier 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. Pour démarrer, arrêter ou afficher Log.io état, connectez-vous avec le compte root (ou l’utilisateur que Log.io application a été installée) et exécutez simplement les commandes suivantes pour gérer facilement l’application.

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

C’est tout! À mon avis, Log.io est une excellente et efficace application web pour surveiller les fichiers journaux des serveurs locaux ou distants en temps réel et avoir un aperçu de ce qui se passe en interne dans les systèmes et surtout pour déboguer les problèmes de serveur lorsque les systèmes ont tendance à ne plus répondre ou à planter, sans avoir besoin d’utiliser une console.

Articles connexes: