Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltruefalse
Panel
titleSommaire

Table of Contents
stylenone

Description

Les sources n'offrent pas de solution Une source ne peut pas être utilisée pour supprimer des éléments . Cela peut être utile dans un ( environnement cloud, lorsque certains équipements sont utilisés un certain laps de temps puis sont supprimés ).

  • Pour pallier
à
  • ce problème, une API est accessible par une URL
est disponible
  • .
  • Elle permet de supprimer tous les types d'éléments de la configuration du Synchronizer.
Info

Les hôtes et les clusters seront définitivement supprimés même s'il ils existent en Zone de Travail et en Staging.

Pré-requis

Afin de supprimer un élément de la configuration du synchronizer, il faut :

  • Avoir un compte avec les droits Shinken Administrateur.
  • Connaitre l'UUID de l'élément en question.
  • Connaître son item_type.

Paramétrage du synchronizer

Par défaut, l'URL est désactivée sur le synchronizer.

  • Pour l'activer il faut ajouter un paramètre dans le fichier de configuration du synchronizer. Il est conseillé de modifier le fichier suivant :
Code Block
languagejs
themeConfluence
title/etc/shinken-user/configuration/daemons/synchronizers/synchronizer_cfg_overload.cfg
api_item_enabled=1
  • Mettre ce paramètre à 0 désactivera l'URL.
  • Après modification de ce paramètre, il convient de redémarrer le Synchronizer pour que le changement soit pris en compte.

Supprimer des éléments en staging et en zone de travail

URL

L'URL est la suivante :

No Format
http://localhost:7765/item-api/v1/delete-items-in-staging-and-working-area

Paramètres

Cette URL a besoin des paramètres suivants :

OptionExempleDescription
loginlogin=mon-userLe nom du contact utilisé pour se connecter.
passwordpassword=VGVzdF8wMQ==Le mot de passe du contact, en base 64.
item_typeitem_type=hostsLe type de l'élément . ( Voir note ci-dessous ).
uuidsuuids=50589d91a4ff11e7b9eff8bc12640001,50589d91a4ff11e7b9eff8bc12640002

Les uuids des éléments à supprimer, séparé séparés par une virgule.

Dans cet exemple deux éléments seront supprimés.

Info

Les item_type utilisés sont les suivants :

  • clusters
  • clustertpls
  • hosts
  • hosttpls
  • hostgroups
  • serviceshosts
  • serviceshosttpls
  • servicesclusters
  • servicesclustertpls
  • servicetpls
  • contacts
  • contacttpls
  • contactgroups
  • escalations
  • notificationways
  • commands
  • businessimpactmodulations
  • macromodulations
  • resultmodulations
  • timeperiods
Info

En shell le base64 du mot de passe peut être obtenu à l'aide de la commande suivante : echo -ne "password" | base64

Format de retour

L'appel retourne un code 200  200 ( retour OK en HTML ) et un json avec les données suivantes :

  • "msg" : un message de retour qui indique si tout tous les éléments ont été supprimés
  • "deleted_items" qui contient
    • "list" : la liste des éléments qui ont été supprimés
    • "nb" : le nombre d'éléments supprimés
  • "not_deleted_items" qui contient
    • "list" : la liste des éléments qui n'ont pas été supprimés
    • "nb" : le nombre d'élément éléments qui n'ont pas été supprimés

Voici un exemple de retour :

Code Block
languagebash
themeRDark
{
    "msg": "OK all items were deleted",
    "not_deleted_items": {
        "nb": 0,
        "list": []
    },
    "deleted_items": {
        "nb": 3,
        "list": ["c74d4b594249473997530fec6c1989fa", "1e093816492c4575b19df1cf34e53fd6", "a9a5223471e1406ab117af91502c24cf"]
    }
}

Si plusieurs éléments doivent être supprimés et que l'un d'eux cause une erreur, les autres suppressions ne seront pas impactées par cette erreur.

Les logs d'erreur seront présents dans le fichier de log du synchronizer : /var/log/shinken/synchronizerd.log

Voici les erreurs qui peuvent être rencontrées à la suppression d'éléments :

CodeMessageRaisons
400Missing parameters : <parameters>Des paramètres obligatoires n'ont pas été saisis
400Invalid parameter item_typeL'item_type saisis ne correspond à aucun item_type existant.
504Syncui is not ready for the moment, need to retry in a few momentLe synchronizer est en train de redémarrer et n'est pas prêt. Vous pouvez réessayer Réessayer dans quelques instants

Exemples

Voici un exemple de réponse pour la suppression de deux hôtes

Code Block
languagetext
themebashEmacs
root@shinken: ~/ 15:59 : $ curl "http://localhost:7765/item-api/v1/delete-items-in-staging-and-working-area?password=YWRtaW4=&login=admin&item_type=hosts&uuids=50589d91a4ff11e7b9eff8bc12640001,50589d91a4ff11e7b9eff8bc12640002"
{"msg": "OK all items were deleted","not_deleted_items": {"nb": 0,"list": []},"deleted_items": {"nb": 2,"list": ["50589d91a4ff11e7b9eff8bc12640001", "50589d91a4ff11e7b9eff8bc12640002"]}}
root@shinken: ~/ 15:59 : $

Supprimer des éléments en production

Warning

Pour appliquer la suppression en production , cet appel redémarrera l'Arbiter si la nouvelle configuration est valide.

URL

L'URL est la suivante :

No Format
http://localhost:7765/item-api/v1/delete-items-in-production

Paramètres

Cette URL a besoin des paramètres suivants :

OptionExempleDescription
loginlogin=mon-userLe nom du contact utilisé pour se connecter.
passwordpassword=VGVzdF8wMQ==Le mot de passe du contact, en base 64.
item_typeitem_type=hostsLe type de l'élément . ( Voir note ci-dessous ).
uuidsuuids=50589d91a4ff11e7b9eff8bc12640001,50589d91a4ff11e7b9eff8bc12640002

Les uuids des éléments à supprimer, séparé par une virgule.

Dans cet exemple deux éléments seront supprimés.

Info

Actuellement seul le type item_type "hosts" est supporté dans la suppression en production

Info

En shell le base64 du mot de passe peut être obtenu à l'aide de la commande suivante : echo -ne "password" | base64

Format de retour

L'appel retourne un code 200  et un json avec les données suivantes:

  • "msg" : un message de retour qui indique si tout les éléments ont été supprimés
  • "deleted_items" qui contient
    • "list" : la liste des éléments qui ont été supprimés
    • "nb" : le nombre d'éléments supprimés
  • "not_deleted_items" qui contient
    • "list" : la liste des éléments qui n'ont pas été supprimés
    • "nb" : le nombre d'élément qui n'ont pas été supprimés

Voici un exemple de retour :

Code Block
languagebash
themeRDark
{
    "msg": "arbiter reload OK",
    "not_deleted_items": {
        "nb": 0,
        "list": []
    },
    "deleted_items": {
        "nb": 3,
        "list": ["c74d4b594249473997530fec6c1989fa", "1e093816492c4575b19df1cf34e53fd6", "a9a5223471e1406ab117af91502c24cf"]
    }
}


Si plusieurs éléments doivent être supprimés et que l'un d'eux cause une erreur, les autres suppressions ne seront pas impactées par cette erreur.

Les logs d'erreur seront présents dans le fichier de log du synchronizer : /var/log/shinken/synchronizerd.log

Voici les erreurs qui peuvent être rencontrées à la suppression d'éléments :


CodeMessageRaisons
400Missing parameters : <parameters>Des paramètres obligatoires n'ont pas été saisis
400Invalid parameter item_typeL'item_type saisis ne correspond à aucun item_type existant.
504Syncui is not ready for the moment, need to retry in a few momentLe synchronizer est en train de redémarrer et n'est pas prêt. Vous pouvez réessayer Réessayer dans quelques instants.
500This item_type is not yet implementedActuellement seul les éléments de type hôte sont supportés.
505Arbiter is reloading a new configurationL'arbiter est en train de recharger une configuration ( redémarrage du démon ou application de la configuration sur l'interface de configuration ).
503Arbiter is not reachableL'arbiter est injoignable.
510<configuration_error>La configuration est incorrecte. L'erreur complète est indiquée dans le message.

Exemples

Voici un exemple pour la suppression de deux hôtes

Code Block
languagetext
themeEmacsbash
root@shinken: ~/ 15:59 : $ curl "http://localhost:7765/item-api/v1/delete-items-in-production?password=YWRtaW4=&login=admin&item_type=hosts&uuids=50589d91a4ff11e7b9eff8bc12640001,50589d91a4ff11e7b9eff8bc12640002"
{"msg": "arbiter reload OK","not_deleted_items": {"nb": 0,"list": []},"deleted_items": {"nb": 2,"list": ["50589d91a4ff11e7b9eff8bc12640001", "50589d91a4ff11e7b9eff8bc12640002"]}}
root@shinken: ~/ 15:59 : $