Aller au contenu principal

AWS Health

Vue d'ensemble​

AWS Health fournit des informations personnalisées à propos d'événements qui peuvent concerner votre infrastructure AWS, vous guide dans les modifications planifiées et accélère le dépannage de problèmes concernant vos ressources et comptes AWS.

Le Plugin Centreon AWS Health utilise l'API Amazon Health pour collecter les métriques associées.

Contenu du connecteur de supervision​

Objets supervisés​

  • Évènements liĂ©s aux comptes AWS et ressources associĂ©es

Métriques supervisées​

Metric nameDescription
events.total.countTotal number of events
events.open.countNumber of open events
events.closed.countNumber of closed events
events.upcoming.countNumber of upcoming events

Prérequis​

Privilèges AWS​

Voici la liste des droits nécessaires au travers des access/secret keys utilisées pour pouvoir implémenter la supervision AWS Health:

AWS PrivilegeDescription
health:DescribeEventsReturns information about events that meet the specified filter criteria.
health:DescribeAffectedEntitiesReturns a list of entities that have been affected by the specified events, based on the specified filter criteria

L'API AWS Health nécessite un plan de support Business or Enterprise d'AWS Support. Un appel de l'API Health à partir d'un compte qui ne dispose pas d'un plan de support Business ou Enterprise entraîne une exception SubscriptionRequiredException.

Dépendances du Plugin​

Afin de récupérer les informations nécessaires via les APIs AWS, il est possible d'utiliser soit le binaire awscli fourni par Amazon, soit le SDK Perl paws. Le SDK est recommandé car plus performant.

Installez le binaire choisi en lançant l'une des commandes suivantes:

yum install perl-Paws

Attention il n'est actuellement pas possible d'utiliser paws dans les cas suivants:

  • si la connexion s'effectue au travers d'un proxy.
  • utilisation de la fonctionnalitĂ© de DĂ©couverte d'HĂ´te dans Centreon.

Installation​

  1. Installer le Plugin sur tous les collecteurs Centreon devant superviser la ressource AWS Health:
yum install centreon-plugin-Cloud-Aws-Health-Api
  1. Sur l'interface Web de Centreon, installer le connecteur de supervision AWS Health depuis la page Configuration > Gestionnaire de connecteurs de supervision

Configuration​

  • Ajoutez un HĂ´te Ă  Centreon et appliquez-lui le Modèle d'HĂ´te Cloud-Aws-Health.
  • Une fois le modèle appliquĂ©, les Macros ci-dessous indiquĂ©es comme requises (Mandatory) doivent ĂŞtre renseignĂ©es:
MandatoryNomDescription
XAWSSECRETKEYAWS Secret key of your IAM role. Password checkbox must be checked
XAWSACESSKEYAWS Access key of your IAM role. Password checkbox must be checked
XAWSREGIONRegion where the instance is running
XAWSCUSTOMMODECustom mode to get metrics, 'awscli' is the default, you can also use 'paws' perl library
PROXYURLConfigure proxy URL
EXTRAOPTIONSAny extra option you may want to add to every command_line (eg. a --verbose flag)
DUMMYSTATUSHost state. Default is OK, do not modify it unless you know what you are doing
DUMMYOUTPUTHost check output. Default is 'This is a dummy check'. Customize it with your own if needed

FAQ​

Comment puis-je tester le Plugin et que signifient les options des commandes ?​

Une fois le Plugin installé, vous pouvez tester celui-ci directement en ligne de commande depuis votre collecteur Centreon avec l'utilisateur centreon-engine (certaines options comme --proxyurl doivent être ajustées en fonction du contexte):

/usr/lib/centreon/plugins/centreon_aws_health_api.pl \
--plugin=cloud::aws::health::plugin \
--mode=events \
--custommode='awscli' \
--aws-secret-key='****' \
--aws-access-key='****' \
--proxyurl='http://myproxy.mycompany.org:8080' \
--filter-service='' \
--filter-region='' \
--filter-entity-value='' \
--filter-event-category='issue' \
--filter-event-status='open' \
--warning-total='0' \
--critical-total='1' \
--display-affected-entities \
--verbose

La commande retourne le message de sortie ci-dessous:

CRITICAL: Events total: 1 | 'events.total.count'=1;;0:0;0; 'events.open.count'=1;;;0; 'events.closed.count'=0;;;0; 'events.upcoming.count'=0;;;0;
[service: RDS][region: eu-west-1][status: open][type: AWS_RDS_HARDWARE_MAINTENANCE_SCHEDULED][start: Wed Jul 15 13:00:00 2020][affected entity: doh-sfetoto3]

Cette commande récupère les events (--mode=events) d'un compte d'AWS identifié par l'utilisation une paire d'identifiants aws-secret-key et aws-access-key (--aws-secret-key='****' --aws-access-key='****'). Il est possible de positionner des filtres afin de personnaliser les éléments qui seront renvoyés par la commande. Dans l'exemple ci-dessus, on choisit de ne récupérer que les évènements catégorisés comme issue (--filter-event-category='issue') et en statut open (--filter-event-status='open'). L'option --display-affected-entities permet quant à elle d'afficher la référence de la ressource concernée par l'évènement.

Une alerte WARNING sera déclenchée si le nombre d'évènements renvoyés par le service est de 1 (--warning-total='0') et une alerte CRITICAL à partir de 2 évènements renvoyés (--critical-total='1').

La liste de tous les filtres et seuil disponibles peut être affichée en ajoutant le paramètre --help à la commande:

/usr/lib/centreon/plugins/centreon_aws_health_api.pl --plugin=cloud::aws::health::plugin --mode=events --help

J'obtiens le message d'erreur suivant:​

UNKNOWN: No metrics. Check your options or use --zeroed option to set 0 on undefined values​

Lors du déploiement de mes contrôles, j'obtiens le message suivant 'UNKNOWN: No metrics. Check your options or use --zeroed option to set 0 on undefined values'.

Cela signifie qu'Amazon Cloudwatch n'a pas consolidé de données sur la période.

Vous pouvez ajouter --zeroed Ă  la macro EXTRAOPTIONS du Service en question afin de forcer le stockage d'un 0 et ainsi Ă©viter un statut UNKNOWN.

UNKNOWN: Command error: - An error occurred (AuthFailure) [...]​

Cette erreur signifie que le rôle IAM associé au combo access-key/secret-key n'a pas les droits suffisants pour réaliser une opération donnée.

UNKNOWN: 500 Can't connect to health.us-east-1.amazonaws.com:443 |​

Lors du déploiement de mes contrôles, j'obtiens le message suivant: UNKNOWN: 500 Can't connect to health.us-east-1.amazonaws.com:443 |.

Cela signifie que Centreon n'a pas réussi à se connecter à l'API AWS Health.

Si l'utilisation d'un proxy est requise pour les connexions HTTP depuis le collecteur Centreon, il est nécessaire de le préciser dans la commande en utilisant l'option --proxyurl='http://proxy.mycompany.com:8080'.