Projet

Général

Profil

Demande #6203

Supervision des éléments clés de minetest

Ajouté par Obitanz . il y a 9 mois. Mis à jour il y a 8 mois.

Statut:
En cours de traitement
Priorité:
Normale
Assigné à:
Version cible:
Début:
17/07/2023
Echéance:
% réalisé:

70%

Temps estimé:

Description

Le répertoire /usr/local/lib/nagios/plugins n'existe pas sur ludo.

Les éléments identifiés à superviser :
  • le service est-il UP
  • les paquets minetest-data et minetest-server disposent-ils de mises à jour ? (est-ce pertinent puisque une sonde existe déjà sur tous les paquets)
  • le jeu mineclone2 dispose-t-il de mises à jour ? (dépôt distant configuré via git, tags dispo : https://git.minetest.land/MineClone2/MineClone2/tags)
  • le jeu capturetheflag dispose-t-il de mises à jour ? (bonus, ce jeu n'est pas encore configuré bien qu'il soit installé)
  • les plugins installés disposent-ils de mises à jour ? (dépôt git pour chaque mod, actuellement : whitelist, xban2, filter)

Je commence par créer les scripts pour les sondes de maj de mineclone2 et des mods. Je vais essayer de faire une sonde extensible pour tous les jeux installés et à venir, et de même pour les mods, l'idée est de pouvoir facilement superviser de nouveaux mods ou jeux sans avoir tout à reconfigurer à chaque fois.

Historique

#1

Mis à jour par Obitanz . il y a 9 mois

2 scripts créés dans le répertoire /usr/local/lib/nagios/plugins :
  • check_minetestchaprilorg_updateGames : vérifie dans la liste des jeux présents si des mises à jour sont disponibles (selon les tags)
  • check_minetestchaprilorg_updateMods : vérifie dans la liste des mods présents si des mises à jour sont disponibles (selon les commit)
#2

Mis à jour par Pierre-Louis Bonicoli il y a 9 mois

  • Description mis à jour (diff)
#3

Mis à jour par Pierre-Louis Bonicoli il y a 9 mois

  • Statut changé de Nouveau à En cours de traitement
  • % réalisé changé de 0 à 50

Sur admin.cluster.chapril.org: ajout du script spécifique à ludo

commit 072474cadbd86c77f0edf99c428b10c1baecbc16 (HEAD -> master)
Author: Pierre-Louis Bonicoli <pilou@ir5.eu>
Date:   Tue Jul 18 00:19:47 2023 +0200

    ludo: ajout des checks des mises à jour

    Closes #6203

diff --git a/icinga2/zones.d/global-templates/services/updates.conf b/icinga2/zones.d/global-templates/services/updates.conf
index bd166c2..a262687 100644
--- a/icinga2/zones.d/global-templates/services/updates.conf
+++ b/icinga2/zones.d/global-templates/services/updates.conf
@@ -41,3 +41,11 @@ object CheckCommand "check_statuschaprilorg_update" {
 object CheckCommand "check_qrcodechaprilorg_update" {
        command = [ LocalPluginDir + "/check_qrcodechaprilorg_update" ]
 }
+
+object CheckCommand "check_minetestchaprilorg_updateGames" {
+       command = [ LocalPluginDir + "/check_minetestchaprilorg_updateGames" ]
+}
+
+object CheckCommand "check_minetestchaprilorg_updateMods" {
+       command = [ LocalPluginDir + "/check_minetestchaprilorg_updateMods" ]
+}
diff --git a/icinga2/zones.d/master/cluster/ludo.conf b/icinga2/zones.d/master/cluster/ludo.conf
index 4e6f9d6..d11d0bf 100644
--- a/icinga2/zones.d/master/cluster/ludo.conf
+++ b/icinga2/zones.d/master/cluster/ludo.conf
@@ -47,3 +47,23 @@ object Host "ludo.cluster.chapril.org" {

 /* Specific checks */

+/* == minetest.chapril.org Check Games and Mods update == */
+apply Service "Check minetestchaprilorg updateGames" {
+  import "daily-service" 
+
+  check_command = "check_minetestchaprilorg_updateGames" 
+  command_endpoint = "ludo.cluster.chapril.org" 
+  enable_perfdata = false
+
+  assign where host.name == "ludo.cluster.chapril.org" 
+}
+
+apply Service "Check minetestchaprilorg updateMods" {
+  import "daily-service" 
+
+  check_command = "check_minetestchaprilorg_updateMods" 
+  command_endpoint = "ludo.cluster.chapril.org" 
+  enable_perfdata = false
+
+  assign where host.name == "ludo.cluster.chapril.org" 
+}

Le check est bien ajouté. N'y a t-il pas une ligne vide en trop au début des deux fichiers ?

#4

Mis à jour par Pierre-Louis Bonicoli il y a 9 mois

Est ce qu'il y a une commande qui puisse être envoyée pour vérifier le status du service via le port UDP 30009 ?

#5

Mis à jour par Obitanz . il y a 9 mois

Merci !
J'ai enlevée les lignes en trop, elles ne servaient à rien.
J'ai corrigé quelques erreurs des scripts et j'ai ajouté le droit o+x sur le répertoire /srv/minetest.chapril.org/home pour permettre à la sonde de lister les mods et jeux.
J'ai ajouté les dépôts git en safe dans la config git du compte nagios.

Les scripts sont ok si je les exécute avec `sudo -u nagios script`.
Cependant, j'ai toujours une erreur dans l'exécution de la sonde dans icinga :

fatal: 'origin' does not appear to be a git repository
fatal: Impossible de lire le dépôt distant.

Veuillez vérifier que vous avez les droits d'accès
et que le dépôt existe.
fatal: detected dubious ownership in repository at '/srv/minetest.chapril.org/home/.minetest/mods/filter'
To add an exception for this directory, call:

    git config --global --add safe.directory /srv/minetest.chapril.org/home/.minetest/mods/filter
fatal: 'origin' does not appear to be a git repository
fatal: Impossible de lire le dépôt distant.

Veuillez vérifier que vous avez les droits d'accès
et que le dépôt existe.
fatal: detected dubious ownership in repository at '/srv/minetest.chapril.org/home/.minetest/mods/whitelist'
To add an exception for this directory, call:

    git config --global --add safe.directory /srv/minetest.chapril.org/home/.minetest/mods/whitelist
fatal: 'origin' does not appear to be a git repository
fatal: Impossible de lire le dépôt distant.

Veuillez vérifier que vous avez les droits d'accès
et que le dépôt existe.
fatal: detected dubious ownership in repository at '/srv/minetest.chapril.org/home/.minetest/mods/xban2'
To add an exception for this directory, call:

    git config --global --add safe.directory /srv/minetest.chapril.org/home/.minetest/mods/xban2
OK - all mods are up to date

Là je commence à sécher...

Concernant ta demande sur check du status du service via le port UDP 30009, j'ai cherché un peu sans trouver qqch qui y réponde précisément.
Je vais continuer de chercher, mais à défaut, je commence de bosser sur un script qui pour chaque instance minetest (excepté l'instance de test) :
- check le service classiquement
- check le port UDP correspondant
Je peux chercher pour faire un script qui réponde précisément à ta demande, mais ça me demandera plus de temps pour voir par où commencer.

Enfin, je me dit qu'il faudrait peut-être exécuter quelques checks concernant les DB, j'ai repéré check_pgsql dans les plugins fournis. Il faut en faire une instance par DB existante, mais actuellement on a une erreur avec les DB de l'instance CTF (on ignore l'instance de test). Pour le moment, on pourrait avoir 3 sondes de plus pour les bases auth, users-mineclone2 et world-mineclone2.
Sinon, juste un check de si le service est UP, ça peut être suffisant.

Je continue.

#6

Mis à jour par Obitanz . il y a 8 mois

  • % réalisé changé de 50 à 70

Sonde de vérifications de maj dispo pour les jeux et mods OK !
(j'ai fini par créer un /etc/gitconfig pour dire que les projets des jeux et mods étaient safe)

Concernant les tests sur les DB postgres, une sonde par DB me parait un peu too much (1 base commune + 2 bases par instance), ou alors je fais un script qui utilise la sonde pour tout vérifier en une seule fois...

Je propose de partir sur un simple check du service

Concernant les tests sur les services minetest, j'ai fait un autre script évolutif qui vérifie si les services minetest sont UP et si les port UDP correspondants écoutent.

C'est donc ok pour créer une sonde qui exécute le script /usr/local/lib/nagios/plugins/check_minetestchaprilorg_services

Actuellement, le retour :

CRITICAL - there are at least two problems with minetest services or ports
30008-ctf service is DOWN
30008-ctf's port (30008) has a problem (not listening)
30009-mineclone2 service is UP
30009-mineclone2's port (30009) is listening

Avec ces 2 nouvelles sondes on sera au point sur la supervision (pour le début en tout cas, à voir si d'autres personnes ont des conseils/avis).

Formats disponibles : Atom PDF