Aller au contenu principal

Amazon CloudWatch Logs

Vue d'ensemble​

CloudWatch Logs vous permet de centraliser les journaux de tous vos systèmes ainsi que les applications et les services AWSque vous utilisez au sein d’un seul service hautement évolutif. Vous pouvez ensuite facilement les consulter, y effectuer des recherches pour identifier des codes d’erreur spécifiques ou des modèles, les filtrer en fonction de champs spécifiques ou les archiver en toute sécurité à des fins d’analyse ultérieure.

Attention Ce Plugin est susceptible de générer un volume importants de données lors des requêtes API. Il est indispensable d'utiliser les fonctionnalités de filtrage de celui-ci (--group-name and --stream-name) afin de limiter les résultats retournés par l'API.

Contenu du connecteur de supervision​

Objets supervisés​

  • Groupes de Logs et Stream associĂ©s

Données collectées​

Metric nameDescription
LogsRefer to any log entry that match filters. Threshold are String on top of %{message}, %{stream_name}, %{since} variables

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 Amazon CloudWatch Logs:

AWS PrivilegeDescription
CloudWatchLogs:DescribeLogGroupsReturns information about LogGroups that meet the specified filter criteria.

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 Amazon CloudWatch Logs:
yum install centreon-plugin-Cloud-Aws-CloudWatchLogs-Api
  1. Sur l'interface Web de Centreon, installer le connecteur de supervision Amazon CloudWatch Logs 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-CloudWatchLogs.
  • 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_cloudwatchlogs_api.pl \
--plugin=cloud::aws::cloudwatchlogs::plugin \
--mode=get-logs \
--custommode='awscli' \
--aws-secret-key='****' \
--aws-access-key='****' \
--proxyurl='' \
--region='eu-west-1' \
--group-name='/aws/lambda/MyLambda_LogGroup' \
--stream-name='' \
--start-time-since='3000' \
--unknown-status='' \
--warning-status='' \
--critical-status='%{message} =~ /region/i' \
--verbose

La commande retourne le message de sortie ci-dessous:

CRITICAL: 10 problem(s) detected | 'logs'=10;;;0;
critical: log [created: 5m 11s] [stream: 2020/07/21/[$LATEST]57eb66feaf4aa7bc46gr0e91aeac2b99] [message: [INFO] 2020-07-21T14:35:31.591Z edcea75a-41ceaa-43ae0-8fa6-1cfea0d0dc Set REGION: eu-west-1 -- ]
[...]
critical: log [created: 10m 11s] [stream: 2020/07/21/[$LATEST]57eb66eac4cea0e91ce2b99] [message: [INFO] 2020-07-21T14:30:31.767Z 8a62ac5e-d6dd-44Da-b23e-bce42fef3 Set REGION: eu-west-1 -- ]

Cette commande supervise les logs (--mode=get-logs) Amazon CloudWatch grâce à une paire d'identifiants aws-secret-key et aws-access-key (--aws-secret-key='****' --aws-access-key='****'). Les logs retournés ici sont uniquement ceux inclus dans le groupe MyLambda_LogGroup (--group-name='/aws/lambda/MyLambda_LogGroup') tel que défini dans la console AWS.

Une alerte CRITICAL sera déclenchée si des logs contenant la chaîne 'region' sont présents dans le contenu de la ligne de log ('%{message} =~ /region/i').

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

/usr/lib/centreon/plugins/centreon_aws_cloudwatchlogs_api.pl --plugin=cloud::aws::cloudwatchlogs::plugin --mode=get-logs --help

J'obtiens le message d'erreur suivant:​

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 monitoring.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 monitoring.us-east-1.amazonaws.com:443 |.

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

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'.