Recherche de site Web

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


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

Ce didacticiel vous expliquera comment installer et surveiller tous les fichiers journaux locaux en temps réel avec Log.io installé sur RHEL/CentOS 7/6.x en configurant Log.io. b> fichier de récolteur pour surveiller toute modification locale des fichiers journaux.

Étape 1 : ajouter des référentiels Epel

1. Les référentiels CentOS Epel fournissent les packages binaires pour Node.js et NPMModules packagés pour nœuds . 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 packages pour Node.js. Alors, à l'étape suivante, installez les binaires Node.js et NMP sur votre système via le gestionnaire de packages 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 l'application Log.io

4. L'application Log.io doit être installée sur votre système via NPM en spécifiant un utilisateur système local valide, via 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 un utilisateur root ou un autre utilisateur système doté des privilèges root.

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

Alors, connectez-vous avec le compte root et installez l'application Log.io via le compte root en exécutant la commande suivante (si vous utilisez un autre utilisateur, remplacez le compte root par l'utilisateur de votre 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 le dossier Log.io, qui est masqué, et effectuez une liste de répertoires pour visualiser le contenu du dossier afin de configurer le demande plus loin.

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 fonctionne Log.io.

  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 TCP
    protocole qui envoie ensuite les messages au serveur local Log.io ou à tout autre serveur distant déclaré avec son adresse IP (adresse 0.0.0.0 spécifiée sur les diffusions des moissonneurs à tous les serveurs d'écoute log.io) - fichier harvester.conf
  2. Le serveur Log.io se lie à toutes les interfaces réseau (sauf indication contraire dans le fichier log_server.conf) et attend les messages des nœuds de récolte locaux ou distants et envoie leur sortie au serveur Web log.io (0.0.0.0 signifie qu'il attend les messages à partir de n'importe quel moissonneur local ou distant) fichier log_server.conf
  3. Le serveur Web Log.io se lie à toutes les interfaces réseau, écoute les connexions des clients Web sur le port 28778 et traite et génère les messages qu'il reçoit en interne du serveur log.io - fichier web_server.conf

Ouvrez d'abord le fichier harvester.conf pour le modifier, qui par défaut surveille uniquement les fichiers journaux Apache, et remplacez l'instruction nodeName pour qu'elle corresponde à votre nom d'hôte et définissez les logStreams des déclarations indiquant 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 du fichier ci-dessous comme guide.

nano harvester.conf

Extrait du dossier de la moissonneuse.

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 Log.io distant, modifiez la ligne host sur l'instruction server 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 n'attendez pas de sortie des moissonneurs distants sur votre serveur Log.io local, ouvrez le fichier log_server.conf et remplacez < Adresse b>0.0.0.0 avec adresse de bouclage (127.0.0.1).

nano log_server.conf

8. D'autres fonctionnalités de sécurité telles que la connexion des informations d'identification, HTTPS ou la restriction basée sur les adresses IP sur le serveur Web Log.io peuvent être appliquées côté serveur Web. Pour ce didacticiel, j'utiliserai uniquement comme mesure de sécurité les informations de connexion.

Alors, ouvrez le fichier web_server.conf, décommentez l'intégralité de l'instruction auth en supprimant toutes les barres obliques et astérisques et remplacez user et pass directives 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 l'application Log.io

9. Afin d'accéder au Web au serveur Log.io, 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 l’application Log.io et entrez dans l’interface Web

10. Afin de démarrer l'application de surveillance des journaux Log.io, assurez-vous que votre répertoire de travail actuel est celui de la racine .log.io et utilisez ce qui suit commandes 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 à l'aide du protocole HTTP sur l'adresse URL et une invite demandant vos informations de connexion devrait apparaître. .

Entrez votre utilisateur et votre mot de passe configurés à l'étape 8 pour continuer et l'application Log.io 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 l'application Log.io, exécutez la commande suivante.

pkill node

Étape 6 : Créer un script de gestion Log.io

13. Afin d'utiliser une commande qui gère l'application Log.io avec trois commutateurs ( start, stop et status) créez le script suivant nommé log.io dans 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 l'état de Log.io, connectez-vous avec le compte root (ou l'utilisateur sur lequel l'application Log.io 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 application Web excellente et efficace 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 qu'il soit nécessaire d'utiliser une console.