| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Contexte
Le script que nous utilisons pour superviser un serveur web IIS possède différents arguments qui ne sont pas mis en place dans le pack n'étant utiles que dans des cas particuliers et pouvant amener à des confusions.
Cela a pour conséquence que le statut de ce modèle check reste en OK il ne passera pas en Warning ou en Critical. Cela a était aussi choisi parce que les métriques supervisées par ce modèle se sont pas bloquantes pour le bon fonctionnement du serveur web IIS.
Vous avez besoin de cette supervision
Le problème qui est alors posé est que vous pouvez avoir besoin de superviser certaines des métriques fourni par les différents checks du pack IIS. Cette page est là pour vous montrez comment créer de nouveau check et de nouvelles commandes. Ainsi qu'une présentation des différents arguments que vous pouvez ajouter à vos commandes pour répondre au mieux à vos besoins.
Comment créer de nouveaux checks et commandes ?
En premier lieu nous vous conseillons de créer des clones des commandes et checks existant plutôt que de modifier directement ceux fournis par Shinken, cela vous éviteras d'avoir des "Différence" dans le Staging.
Vous pouvez cloner les commandes, les checks et le modèle d'hôte apporté par le pack IIS et par la suite modifier les clones créé voici des pages de doc à ce sujet :
Les différents arguments personnalisables
Nous allons vous présenter les différents arguments présents dans le script pour la supervision d'un serveur web IIS.
En premier lieu voici la liste des arguments que nous utilisons mais qui ne sont pas configurables par des données :
- -a : Cet argument permet de spécifier le nom de l'instance du serveur web que vous voulez superviser. Utilisez _Total pour les statistiques totales de tous les sites web sinon pour monitorer un serveur web en particulier, entrez son nom. (Par défaut Shinken utilise _Total)
- --nokeepstate : Cet argument permet de ne pas conserver l'état des résultats fournis par le check dans /Tmp. Par défaut le check va créer un fichier dans /Tmp pour conserver l'état des résultats et faire une moyenne lors des prochains appels, cela permet d'avoir une moyenne plus précise. Mais nous ne vous recommandons pas de conserver l'état, nous vous recommandons donc d'utiliser cet argument, lorsque vous utilisez plusieurs Pollers. Car les pollers ne partageant pas leurs /Tmp et cela peut produire des erreurs ou des résultat incohérents. (Par défaut Shinken utilise --nokeepstate)
Il existe aussi différents arguments que nous n'utilisons pas et qui peuvent vous être utile en fonction des cas d'utilisation, ces arguments sont optionnels, les voici :
- -t : Cet argument spécifie le nombre de secondes avant que le script ne s'arrête. Certaines requêtes WMI prennent plus de temps que d'autres et un réseau avec une latence élevée peut également nécessiter une augmentation de la valeur par défaut qui est de 15 secondes.
- -y : Cet argument spécifie le nombre de secondes sur lequel le check est . Plus le délai est long, plus le calcul sera précis. Vous pouvez également avoir besoin d'utiliser le paramètre -t pour définir un délai de script plus long si vous définissez un valeur supérieur à 15 secondes. Valable uniquement si vous spécifiez également --nokeepstate, c'est-à-dire si vous n'utilisez pas la fonction de conservation de l'état. La valeur par défaut est 5. Les métriques utilisant le DELAY sont celles ayant "PerSec" dans leurs noms.
- -w : Définis à qu'elle valeur le check passe en Warning.
- -c : Définis à qu'elle valeur le check passe en Critique.
Attention pour le -w et le -c les commandes du script ne supervise qu'une seul des données retournées et non pas toutes. Pour chacune des commandes une métrique par défaut est supervisé, voir "Les métriques supervisées par défaut". Vous pouvez personnalisé la donnée supervisée avec :
| Code Block |
|---|
-w DONNÉE=VALUE ou -c DONNÉE=VALUE |
DONNÉE étant le nom de la donnée à superviser et VALUE la valeur à laquelle le check passe en Warning/Critique. Pour chacune des commandes du pack IIS vous avez accés à la liste de données que renvoie chaque commandes. Cette liste étant la liste des métriques renvoyer par le check.
| Info |
|---|
Si le temps donnée à -t dépasse les 60 secondes, le check devras être surchargé pour passer le "temps maximum d'exécution d'un check" à la valeur défini dans le -t, voir Temps maximum d'exécution d'un check. |
Les métriques supervisées par défaut
| Check Name | Métriques supervisé par défaut |
|---|---|
| Connections | CurrentConnections |
| Errors | _NotFoundErrorsPersec |
| RequestsActivity | _GetRequestsPersec |
| TransfertsActivity | _BytesTotalPersec |
| Users | _LogonAttemptsPersec |
Exemple
Création d'une nouvelle commande
Voici un exemple pour une modification de la commande "Connections", le procédé reste le même pour toutes les autres commandes.
On sélectionne de la commande que vous voulez modifier :
| Panel |
|---|
On clone la commande :
| Panel |
|---|
Contenue de la page d'édition de la commande :
| Panel |
|---|
|
Ici nous allons modifier le contenue de la commande, pour plus d'informations concernant le reste des éléments de cette page vous pouvez lire cette page : Les commandes.
Nous voulons que notre commande puisse passer en warning :
| Panel |
|---|
On ajoute l'argument -w pour que le check puisse passer en Warning, ainsi qu'une donnée "_HOSTIIS_CONNECTIONS_WARN" pour pouvoir définir à quel seuil le check passe en Warning.
| Info |
|---|
Lors de la création d'une nouvelle donnée toujours ajouter _HOST devant le nom de votre donnée. |
Comme expliqué plus haut, Les métriques supervisées par défaut, le Warning ne se feras que sur une seule métrique, ici CurrentConnections, le check Connections contient aussi une métrique _ConnectionAttemptsPerSec.
Si vous voulez superviser la métrique _ConnectionAttemptsPerSec plutôt que la métrique CurrentConnections nous pouvons le spécifier dans notre commande avec "METRIQUE=VALUE", ici _ConnectionAttemptsPerSec="$_HOSTIIS_CONNECTIONS_WARN$"
| Panel |
|---|
Création d'un nouveau modèle d'hôte
Nous allons créer un nouveau modèle d'hôte :
| Panel |
|---|
Notre modèle va hériter du modèle Windows-base pour que notre modèle est accès aux données nécessaires au bon fonctionnement des checks.
Nous allons maintenant ajouter la donnée que nous utilisons dans notre commande à notre modèle :
| Panel |
|---|
La donnée que nous utilisons dans notre commande est _HOSTIIS_CONNECTIONS_WARN , pour le nom de la donnée de notre modèle d'hôte il faut utiliser le même nom sans le _HOST.
Création d'un nouveau check appliqué aux modèle d'hôtes
Nous allons créer un nouveau check utilisant notre commande, nous allons copier notre check Connections :
| Panel |
|---|
Voici la page d'édition de votre check :
| Panel |
|---|
- 1 : Si vous avez apporté des modifications au modèle de Check iis-service et que vous souhaitez les conserver sur votre check vous pouvez importer le modèle de Check iis-service, sinon créer votre propre modèle de check ou simplement utiliser le modèle generic-service.
- 2 : Ici vous entrez le nom de votre modèle d'hôte, dans cet exemple c'est IIS_Connection_warn_ConnectionAttempts.
| Panel |
|---|
Votre modèle d'hôte a maintenant accès à la commande de votre nouveau check.









