Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
serveur_hebergement:icinga:modifier_un_service_sur_icinga2 [2022/07/17 16:42] – fate | serveur_hebergement:icinga:modifier_un_service_sur_icinga2 [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 13: | Ligne 13: | ||
Ce répertoire est uniquement présent sur le serveur maître. | Ce répertoire est uniquement présent sur le serveur maître. | ||
- | Les fichiers que vous serez amené à modifier | + | Les fichiers que vous serez amené à modifier sont hosts.conf, services.conf, |
- | * services.conf : liste tous les services. Pour chaque service il faut indiquer quel template, défini dans le fichier templates.conf, | + | * services.conf : liste tous les services. Pour chaque service il faut indiquer quel template, défini dans le fichier templates.conf, |
* hosts.conf : ce fichier liste votre ou vos hosts. A l’intérieur de chaque host est indiqué des services à tester spécifiques à ce host ou la valeur de variables de condition servant à activer certains services. Il sert également à pouvoir modifier des arguments de tests services. Par exemple, le service check_ssh va tester que le SSH est actif et va tester par défaut le port 22. Si vous utiliser un autre port, vous pouvez l’indiquer dans le fichier hosts.conf et ce pour chaque host. Ce fichier se trouve dans le répertoire zones.d/ | * hosts.conf : ce fichier liste votre ou vos hosts. A l’intérieur de chaque host est indiqué des services à tester spécifiques à ce host ou la valeur de variables de condition servant à activer certains services. Il sert également à pouvoir modifier des arguments de tests services. Par exemple, le service check_ssh va tester que le SSH est actif et va tester par défaut le port 22. Si vous utiliser un autre port, vous pouvez l’indiquer dans le fichier hosts.conf et ce pour chaque host. Ce fichier se trouve dans le répertoire zones.d/ | ||
- | * templates.conf : comme son nom l’indique, | + | * templates.conf : comme son nom l’indique, |
* commandes.conf : permet de configurer les commandes à lancer pour réaliser les tests ou les notifications. Ce fichier est dans le répertoire conf.d. | * commandes.conf : permet de configurer les commandes à lancer pour réaliser les tests ou les notifications. Ce fichier est dans le répertoire conf.d. | ||
Ligne 22: | Ligne 22: | ||
< | < | ||
- | Ces plugins sont configurés via les fichier | + | Ces plugins sont configurés via les fichiers |
< | < | ||
ainsi que les fichiers de configuration présents dans le répertoire | ainsi que les fichiers de configuration présents dans le répertoire | ||
Ligne 31: | Ligne 31: | ||
==== Modifier un service : modifier le port SSH ==== | ==== Modifier un service : modifier le port SSH ==== | ||
- | Comme j’ai indiqué précédemment, | + | Comme j’ai indiqué précédemment, |
On va prendre comme exemple le port SSH à utiliser, une modification que la plupart des gens devront faire. Comme il est fortement déconseillé d’utiliser le port par défaut, il y a de forte chance que le port 22 ne corresponde pas à votre port SSH. | On va prendre comme exemple le port SSH à utiliser, une modification que la plupart des gens devront faire. Comme il est fortement déconseillé d’utiliser le port par défaut, il y a de forte chance que le port 22 ne corresponde pas à votre port SSH. | ||
Tout d’abord, il nous faut vérifier que le test du SSH, activé par défaut sur Icinga2, permette de modifier le port. Pour ça, lancez la commande suivante : | Tout d’abord, il nous faut vérifier que le test du SSH, activé par défaut sur Icinga2, permette de modifier le port. Pour ça, lancez la commande suivante : | ||
- | icinga2 object list --name ssh --type checkcommand. | + | < |
La commande icinga2 object list affiche tous les objets actifs. Qu’est-ce qu’un objet ? C’est un service (le test du SSH par exemple) ou une commande (la commande à lancer pour tester le SSH par exemple). | La commande icinga2 object list affiche tous les objets actifs. Qu’est-ce qu’un objet ? C’est un service (le test du SSH par exemple) ou une commande (la commande à lancer pour tester le SSH par exemple). | ||
Ligne 83: | Ligne 83: | ||
=== Tester un protocole === | === Tester un protocole === | ||
- | Quand on créé | + | Quand on crée un service on doit ajouter une condition qui activera ce service si elle est vraie |
Le premier truc à faire, c’est d’identifier quel plugin nous allons utiliser pour notre test. Pour l’exemple, | Le premier truc à faire, c’est d’identifier quel plugin nous allons utiliser pour notre test. Pour l’exemple, | ||
Ligne 94: | Ligne 94: | ||
Que nous dit cette aide : | Que nous dit cette aide : | ||
- | * l’argument -H permet d’indiquer à quelle adresse | + | * l’argument -H permet d’indiquer à quelle adresse |
* l’argument -p permet d’indiquer quel port utiliser. Il y a peu de chance que vous utilisiez un port différent de celui par défaut pour le serveur ftp. Nous n’aurons donc pas besoin de cet argument | * l’argument -p permet d’indiquer quel port utiliser. Il y a peu de chance que vous utilisiez un port différent de celui par défaut pour le serveur ftp. Nous n’aurons donc pas besoin de cet argument | ||
* les arguments -w et -c permettent d’indiquer à partir de quel temps de réponse déclencher, | * les arguments -w et -c permettent d’indiquer à partir de quel temps de réponse déclencher, | ||
Ligne 140: | Ligne 140: | ||
Expliquons de nouveau ces lignes : | Expliquons de nouveau ces lignes : | ||
* apply Service " | * apply Service " | ||
- | * import " | + | * import " |
* check_command = " | * check_command = " | ||
* vars.ftp_host = host.address : on attribue à la variable “ftp_host” la valeur host.adress qui correspond à l’adresse ip du host définie dans le fichier hosts.conf. Comme ftp_host est la valeur que prendra l’argument “-H”, on se retrouvera bien avec “-H adresseipduhost”. | * vars.ftp_host = host.address : on attribue à la variable “ftp_host” la valeur host.adress qui correspond à l’adresse ip du host définie dans le fichier hosts.conf. Comme ftp_host est la valeur que prendra l’argument “-H”, on se retrouvera bien avec “-H adresseipduhost”. | ||
- | * command_endpoint = host.vars.endpoint : indique que la commande devra être lancée sur le host (client ou maître) correspondant | + | * command_endpoint = host.vars.endpoint : indique que la commande devra être lancée sur le host (client ou maître) correspondant |
* assign where host.address : indique la condition qui doit être présente sur le host pour que le service soit actif. Là on a indiqué que si une adresse ip est spécifiée dans le host, cela rendra le service actif. Comme les hosts ont forcément une adresse ip spécifiée, | * assign where host.address : indique la condition qui doit être présente sur le host pour que le service soit actif. Là on a indiqué que si une adresse ip est spécifiée dans le host, cela rendra le service actif. Comme les hosts ont forcément une adresse ip spécifiée, | ||
- | Petit parenthèse sur les conditions. Il est possible de mettre d’autres | + | Petite |
< | < | ||
Dans ce cas, ce service ne sera actif que si la variable serveurFTP, qui sera déclarée dans le fichier hosts.conf, est vraie. | Dans ce cas, ce service ne sera actif que si la variable serveurFTP, qui sera déclarée dans le fichier hosts.conf, est vraie. | ||
Ligne 171: | Ligne 171: | ||
< | < | ||
- | La première ligne signifie que ce service sera activé dans le fichier hosts.conf grâce à la variable protocole_ftp. | + | La première ligne signifie que ce service sera activé dans le fichier hosts.conf grâce à la variable protocole_ftp. |
La seconde signifie qu’au lieu de renseigner la valeur des variables, créées dans le fichier commands.conf, | La seconde signifie qu’au lieu de renseigner la valeur des variables, créées dans le fichier commands.conf, | ||
Ligne 182: | Ligne 182: | ||
Avec la méthode vu précédemment, | Avec la méthode vu précédemment, | ||
- | Avec cette nouvelle méthode, vous aller indiquer dans le fichier hosts.conf la valeur que prendra chaque variable déclarée dans la commande du test. Dans notre cas il nous faudra renseigner la valeur des variables “ftp_port” et “ftp_host”. | + | Avec cette nouvelle méthode, vous allez indiquer dans le fichier hosts.conf la valeur que prendra chaque variable déclarée dans la commande du test. Dans notre cas il nous faudra renseigner la valeur des variables “ftp_port” et “ftp_host”. |
- | Pour ce faire, il suffit de rajouter dans le fichier hosts.conf les ligne suivante dans la configuration de chaque host pour lesquels vous souhaitez | + | Pour ce faire, il suffit de rajouter dans le fichier hosts.conf les ligne suivante dans la configuration de chaque host pour lesquels vous souhaitez |
< | < | ||
vars.protocole_ftp[" | vars.protocole_ftp[" | ||
Ligne 199: | Ligne 199: | ||
</ | </ | ||
- | Pour info, il est tout à fait possible de déclarer les valeurs des variables à la fois dans services.conf et dans hosts.conf. Reprenons notre exemple avec deux variables, une pour le port et une autre pour l’adresse ip. L’adresse ip est déjà déclarée dans le fichier hosts.conf. Le mieux à faire dans ce cas est donc de déclarer la valeur de la variable “ftp_host” dans le services.conf avec la ligne | + | Pour info, il est tout à fait possible de déclarer les valeurs des variables à la fois dans services.conf et dans hosts.conf. Reprenons notre exemple avec deux variables, une pour le port et une autre pour l’adresse ip. L’adresse ip est déjà déclarée dans le fichier hosts.conf. Le mieux à faire dans ce cas est donc de déclarer la valeur de la variable “ftp_host” dans le fichier |
< | < | ||
et de ne déclarer que la valeur de la variable “ftp_port” dans hosts.conf car elle sera propre à chaque serveur ftp. | et de ne déclarer que la valeur de la variable “ftp_port” dans hosts.conf car elle sera propre à chaque serveur ftp. | ||
Ligne 207: | Ligne 207: | ||
=== Tester un processus === | === Tester un processus === | ||
- | Comme vous devez vous en douter, le principe va rester globalement le même que pour tester un protocole. Commençons par le plugin à utiliser. On va utiliser le plugin “check_procs”. Affichez l'aide ce plugins | + | Comme vous devez vous en douter, le principe va rester globalement le même que pour tester un protocole. Commençons par le plugin à utiliser. On va utiliser le plugin “check_procs”. Affichez l'aide ce plugin |
< | < | ||
Utilisation: | Utilisation: | ||
Ligne 242: | Ligne 242: | ||
J’ai appelé la commande “check_processus”. Cette commande va exécuter le plugin “check_procs” avec “sudo” et on va utiliser 2 arguments : | J’ai appelé la commande “check_processus”. Cette commande va exécuter le plugin “check_procs” avec “sudo” et on va utiliser 2 arguments : | ||
- | * “-c” qui prendra la valeur de la variable “critical_arg”. Cette valeur indique combien de processus doivent être en cours d’exécution. Cette valeur doit être exprimée sous forme de limite “min: | + | * “-c” qui prendra la valeur de la variable “critical_arg”. Cette valeur indique combien de processus doivent être en cours d’exécution. Cette valeur doit être exprimée sous forme de limite “min: |
* “-C” qui prendra la valeur de la variable “name_processus”. Cette valeur devra correspondre au nom du processus. | * “-C” qui prendra la valeur de la variable “name_processus”. Cette valeur devra correspondre au nom du processus. | ||
- | Je n’utilise pas l’argument “-w” car il n’y a pas d’intérêt à avoir des avertissement | + | Je n’utilise pas l’argument “-w” car il n’y a pas d’intérêt à avoir des avertissements |
Cette commande servira pour tous les tests de processus. Passons maintenant à la création du service. | Cette commande servira pour tous les tests de processus. Passons maintenant à la création du service. | ||
Ligne 261: | Ligne 261: | ||
</ | </ | ||
- | Si vous le souhaitez vous pouvez utiliser la méthode | + | Si vous le souhaitez vous pouvez utiliser la méthode |