Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Services Centreon

De AJLSM
Aller à la navigation Aller à la recherche

Centreon est un logiciel de supervision informatique utilisé par AJLSM.

Ce logiciel utilise un grand nombre de plugins "packagés", dont certains sont utilisés pour les besoins d'AJLSM. Par exemple, os_linux_snmp et os_linux_ssh.

Chaque plugin permet d'utiliser certains "services" liés comme : cpu, uptime, memory, etc.

Les services sont paramétrables globalement et spécifiquement.

Création d'un service de monitoring d'espace disque d'un montage NFS

[modifier | modifier le wikicode]

AJLSM héberge ses solutions pour des clients.

La structure de cet hébergement est la suivante :

  1. Un serveur applicatif.
  2. Un espace de stockage de données utilisées par le serveur applicatif (montage NFS vers un serveur mutualisé).

Cet espace de stockage permet aux clients de déposer leur données : xml, images, pdf, médias destinés à être diffusés dans un répertoire nommé : pleade.

De plus, dans ce même espace, un autre répertoire nommé : data-private stockent les données transformées pour permettre leur diffusion : pré-traitement des images JPG -> TIFF pyramidales, documents attachés comme les manifest.json, les objets numériques ARK, etc.

Notice :
On souhaite récupérer l'espace disque du montage NFS lié à un serveur, ou une VM.

Le service doit récupérer la valeur de l'espace total occupé avec des seuils "WARNING" et "CRITIQUE".

De plus, on souhaite récupérer la valeurs des répertoires de premiers niveaux : pleade, data-private et projets (quelques fois) afin de permettre aux clients de visualiser et de gérer leur espace disque..

Problématique

[modifier | modifier le wikicode]

Les serveurs, ou VM, monitorés utilisent le plugin os_linux_snmp.

Ce plugin permet de récupérer toutes les informations nécessaires pour monitorer le serveur, ou la VM.

Par contre, ce plugin ne peut pas monitorer efficacement l'espace disque d'un montage NFS sur ce serveur ou cette VM.

Le service "Disk" repère bien le montage, par exemple Disk/var/data/client_data, mais il renvoie la valeur de l'espace total du serveur où le montage NFS est fait, et non celle du répertoire correspondant au montage NFS.

Sur Centreon AJLSM, on a créé un hôte supplémentaire : eole2_quota, pour le serveur de stockage et on lui a associé le modèle de service "os_linux_ssh_custom".

Les arguments à renseigner sont :

Nom de l'argument Valeur
SSHUSERNAME Le nom de l'utilisateur ayant les droits pour se connecter
SSHPORT Le port SSH
SSHEXTRAOPTIONS le PATH de l'emplacement des clés SSH
SSHBACKEND La librairie utilisée : libssh
SSHPASSWORD Le mot de passe (ne pas utiliser, sécurité faible)

Le serveur eole2 ne renvoie des données pertinentes qu'à l'utilisateur root.

Les clés SSH de root ont été installées sur le serveur centreon, qui se connecte avec l'utilisateur centreon.

On utilise pas de mot de passe.

Le plugin de Centreon : os_linux_ssh, propose d'autres services dont quota et files-size.

Les deux services ont été ajoutés à l'hôte Centreon : eole2_quota.

Service Files-size

[modifier | modifier le wikicode]
Important :
Permet de récupérer l'espace disque d'un répertoire et de ses sous-répertoires.

Les seuils WARNING et CRITIQUE doivent être renseignés en argument.

On peut définir la profondeur des répertoires pour lesquels remonter des valeurs.

On peut exclure des répertoire (regex).

Obligation de dédoubler le service en deux services pour obtenir, d'une part : l'espace total utilisé et seuils, et d'autre part, le détail de l'espace utilisé : les répertoires de premiers niveaux comme pleade, data-private.

Ce service règle la problématique.

En l'état de nos connaissances, pour récupérer et afficher les valeurs d'un répertoire et celles des seuils, il ne doit y avoir que 3 valeurs retournées par la commande.

Dans ce service, la notion de seuil n'existe pas globalement. Elle n'existe que répertoire par répertoire, et fichier par fichier.

Lorsque l'on récupère uniquement les valeurs du répertoire de premier niveau (Macro EXTRAOPTIONS max-depth=0), on obtient les valeurs voulues dans le graphique global.

Lorsque l'on récupère les valeurs des répertoires du second niveau (Macro EXTRAOPTIONS max-depth=1), on perd les seuils dans l'affichage mais on affiche les valeurs des répertoires voulus.

Il faut créer deux services : global et détail.

Création du service global
[modifier | modifier le wikicode]

Permet de créer un graphique avec l'espace total utilisé et les seuils. Dans Centreon AJLSM.

  1. Créer un nouveau service, par exemple : Files-size/var/data/client-data, en dupliquant un service existant.
  2. Liez à l'hôte : eole_2_quota,
  3. Sélectionnez le modèle : OS-Linux-Files-size-SSH-Custom,
  4. Sélectionnez la commande de vérification : OS-Linux-Files-size-SSH,
  5. Renseignez les macros personnalisées :
Nom de l'argument Valeur Exemple
FILES Le PATH du répertoire /var/data/ad44-data
WARNINGONE Le seuil warning en GB, selon l'option définie dans EXTRAOPTIONS 8GB
CRITICALONE Le seuil critique en GB, selon l'option définie dans EXTRAOPTIONS 9GB
EXTRAOPTIONS Les options --verbose --max-depth='0' --change-perfdata="/var/data/ad44-data,,scale(GB)" --filter-perfdata="/var/data/ad44-data"
  • --max-depth défini la profondeur.
  • --filter-perfdata défini les valeurs à afficher
  • --change-perfdata permet de modifier le traitement des valeurs récupérées. Dans cet exemple, on modifie les données nativement en bites, en GB.
Test en ligne de commande
[modifier | modifier le wikicode]

Depuis le serveur Centreon, lancez la commande correspondant au service créé.

/usr/lib/centreon/plugins//centreon_linux_ssh.pl --plugin=os::linux::local::plugin --mode=files-size --hostname='193.70.47.97' --ssh-backend='libssh' --ssh-username='root' --ssh-password='' --ssh-port='22' --ssh-priv-key=/root/.ssh/id_rsa --files='/var/data/ad44-data' --warning-one='8GB' --critical-one='9GB' --warning-total='' --critical-total='' --filter-plugin='' --verbose --max-depth='0' --change-perfdata="/var/data/ad44-data,,scale(GB)" --filter-perfdata="/var/data/ad44-data"

Cette commande est accessible depuis l'UI Centreon, dans les services actifs (ou inconnus si la commande ne fonctionne pas).

  1. Utiliser la recherche en saisissant le nom de l'hôte, pour cet exemple eole.
  2. Cliquer sur le service : Files-size/var/data/ad44-data'.
  3. Copiez la commande.
  4. Sur le serveur centreon, envoyez la commande et attendre la réponse.

Voici ce que renvoie centreon :

OK: All file/directory sizes are ok. | '/var/data/ad44-data'=3.24GB;0:8;0:9;0;
/var/data/ad44-data: 3.24 GB
Total: 3.24 GB
  • Dans l'interface de Centreon AJLSM > vues personnalisées > Ajouter une vue > Ajouter un widget.
  • Nommez le widget et sélectionner "Graph monitoring".
  • Dans le graphique en haut à droite, cliquer sur la clé,
  • Sélectionnez le service : eole_2_quota / Files-size//var/data/ad44-data et renseignez un Graph period.

Création du service détaillé
[modifier | modifier le wikicode]

Dans cet exemple,

  1. On veut afficher les répertoires de second niveau.

Dans Centreon AJLSM.

  1. Dupliquez le service global existant, nommez le, par exemple : Files-size/var/data/ad53-data,.
  2. Modifiez la macros personnalisée suivante :
Nom de l'argument Valeur Exemple
EXTRAOPTIONS Les options --verbose --max-depth='1' --change-perfdata="/var/data/ad44-data,,scale(GB)" --filter-perfdata="/var/data/ad44-data""
  • --max-depth : on modifie la valeur de 0 à 1 pour afficher les répertoires de second niveaux.
Test en ligne de commande
[modifier | modifier le wikicode]

Depuis le serveur Centreon, lancez la commande correspondant au service créé.

/usr/lib/centreon/plugins//centreon_linux_ssh.pl --plugin=os::linux::local::plugin --mode=files-size --hostname='193.70.47.97' --ssh-backend='libssh' --ssh-username='root' --ssh-password='' --ssh-port='22' --ssh-priv-key=/root/.ssh/id_rsa --files='/var/data/ad44-data' --warning-one='8GB' --critical-one='9GB' --warning-total='' --critical-total='' --filter-plugin='' --verbose --max-depth='1' --change-perfdata="/var/data/ad44-data,,scale(GB)" --filter-perfdata="/var/data/ad44-data"

Cette commande est accessible depuis l'UI Centreon, dans les services actifs (ou inconnus si la commande ne fonctionne pas).

  1. Utiliser la recherche en saisissant le nom de l'hôte, pour cet exemple eole.
  2. Cliquer sur le service : Files-size/var/data/ad44-data-detail'.
  3. Copiez la commande.
  4. Sur le serveur centreon, envoyez la commande et attendre la réponse.

Voici ce que renvoie centreon :

OK: All file/directory sizes are ok. | '/var/data/ad44-data/pleade'=1.18GB;0:8;0:9;0; '/var/data/ad44-data/data-private'=1.97GB;0:8;0:9;0; '/var/data/ad44-data/projet'=0.09GB;0:8;0:9;0; '/var/data/ad44-data'=3.24GB;0:8;0:9;0;
/var/data/ad44-data/pleade: 1.18 GB
/var/data/ad44-data/data-private: 1.97 GB
/var/data/ad44-data/projet: 90.60 MB
/var/data/ad44-data: 3.24 GB
Total: 6.47 GB
  • Dans l'interface de Centreon AJLSM > vues personnalisées > Ajouter une vue > Ajouter un widget.
  • Nommez le widget et sélectionner "Graph monitoring".
  • Dans le graphique en haut à droite, cliquer sur la clé,
  • Sélectionnez le service : eole_2_quota / Files-size//var/data/ad44-data-detail et renseignez un Graph period.

Variante de service détaillé
[modifier | modifier le wikicode]

Quelque fois, le service remonte des sous-répertoires qui ne sont pas pertinents, comme dans le graphique ci-dessous.

On ne souhaite pas afficher tous les sous-répertoires.

Dans l'exemple suivant,

  1. Centreon remonte des répertoires de second niveau que l'on souhaite exclure de l'affichage dans le graphique, comme : .gnupg, .cache, tmp.
  2. On souhaite afficher des valeurs en téra-octets.

Dans Centreon AJLSM.

  1. Dupliquez le service global existant, nommez le, par exemple : Files-size/var/data/ad53-data-detail,.
  2. Modifiez la macros personnalisée suivante :
Nom de l'argument Valeur Exemple
EXTRAOPTIONS Les options
--verbose --max-depth='1' 
--change-perfdata="(/var/data/ad53-data|/var/data/ad53-data/pleade
|/var/data/ad53-data/data-private|/var/data/ad53-data/projets),,scale(TB)" 
--filter-perfdata="(/var/data/ad53-data/projets|private|data-private)
|^(?!(/var/data/ad53-data/\.cache|/var/data/ad53-data/tmp|/var/data/ad53-data/
\.gnupg|total))"

Les sauts de ligne sont forcés pour rendre l'affiche lisible.

  • --change-perfdata : en regex, on modifie la valeur de scale par TB, pour renvoyer les données en tér-octets. On liste les répertoires que l'on veut afficher en légende du graphique séparés par des "|".
  • --filter-perfdata : en regex, on liste les répertoires à afficher en les regroupant avec des "( )" et en les séparant par un pipe | et on exclut les autres avec la regex ^(?!(...).

Important :
Permet de récupérer l'espace disque d'un utilisateur, et pas celles des répertoires d'autres utilisateurs contenus dans le répertoire alloué à l'utilisateur, comme data-private.

Les quotas ne sont pas récupérés et doivent être renseignés en argument.

Ce service n'a pas été retenu pour régler la problématique. On conserve ce tuto pour exemple dans le cas d'une utilisation plus adaptée, par exemple, renvoyer tous les quotas du serveurs de stockage.

Pré-requis sur le serveur de stockage :

  1. Quota doit être installé sur le serveur de stockage.
  2. Des quotas doivent être définis pour les utilisateurs concernés (répertoires montés en NFS).
Notice :
Le serveur actuel de stockage : eole2, est déjà configuré.
Création du service
[modifier | modifier le wikicode]

Dans Centreon AJLSM.

  1. Créer un nouveau service, par exemple : Quota_/var/data/client-data, en dupliquant un service existant.
  2. Liez à l'hôte : eole_2_quota,
  3. Sélectionnez le modèle : OS-Linux-Quota-SSH-Custom,
  4. Sélectionnez la commande de vérification : OS-Linux-Quota-SSH,
  5. Renseignez les macros personnalisées :
Nom de l'argument Valeur Exemple
FILTERUSER Le nom de l'utilisateur ayant les droits pour se connecter ad44
WARNINGDATAUSAGE Le seuil warning en bites 536900000000
CRITICALDATAUSAGE Le seuil critique en bites 569100000000
EXTRAOPTIONS Les options --verbose --filter-perfdata='data_used'

--filter-perfdata dans l'exemple ci-dessus, le service n'affichera dans le graphique que les valeurs spécifiées.

Test en ligne de commande
[modifier | modifier le wikicode]

Depuis le serveur Centreon, lancez la commande correspondant au service créé.

/usr/lib/centreon/plugins//centreon_linux_ssh.pl --plugin=os::linux::local::plugin --mode=quota --hostname='193.70.47.97' --ssh-backend='libssh' --ssh-username='root' --ssh-password='' --ssh-port='22' --ssh-priv-key=/root/.ssh/id_rsa --filter-user='^apbp|ajlsm./var/data/apb-data$' --filter-fs='' --warning-data-usage='145000000000' --critical-data-usage='140000000000' --warning-inode-usage='' --critical-inode-usage='' --verbose --filter-perfdata='data_used'

Cette commande est accessible depuis l'UI Centreon, dans les services actifs (ou inconnus si la commande ne fonctionne pas).

  1. Utiliser la recherche en saisissant le nom de l'hôte, pour cet exemple eole.
  2. Cliquer sur le service : Quota_/var/data/client-data'.
  3. Copiez la commande.
  4. Sur le serveur centreon, envoyez la commande et attendre la réponse.

Voici ce que renvoie centreon :

OK: Quota 'apbp./dev/mapper/data_vol_group-data_vol_group' Data Used: 75.19 GB (55.68 % of soft limit) (57.67 % of hard limit), Inode Used: 57042 files | 'data_used'=80739971072B;0:145000000000;0:140000000000;0;
Quota 'apbp./dev/mapper/data_vol_group-data_vol_group' Data Used: 75.19 GB (55.68 % of soft limit) (57.67 % of hard limit), Inode Used: 57042 files