Aller au contenu principal

Alyvix Server

Vue d'ensemble​

Alyvix Server est un logiciel APM permettant une supervision visuelle et une exécution automatisée de scénarios. La solution permet de créer des robots émulant le comportement d'utilisateurs finaux, en interagissant visuellement avec n'importe quelle application Windows ou n'importe quel site ouvert depuis votre navigateur préféré.

Le connecteur de supervision Centreon Alyvix Server permet (par l'interrogation de l'API Rest) de récupérer le statut et le temps d’exécution d'un ou de multiples scénarios (testcases) lancés par Alyvix Server, ainsi que le détail de chaque étape (transaction) du scénario élaboré.

Le connecteur de supervision Alyvix Server n'est pas compatible avec la version Open-Source d'Alyvix, la fonctionnalité API Rest étant exclusive à la version commerciale de la solution. N'hésitez pas à contacter votre représentant Commercial afin de pouvoir discuter des conditions d'accès.

Contenu du connecteur de supervision​

Objets supervisés​

  • Testcases et détail des transactions Alyvix Server

Règles de découvertes​

Rule nameDescription
App-Monitoring-Alyvix-Restapi-Testcase-NameDiscover all the testcases handled by Alyvix Server

Métriques collectées​

  • Global (pour chaque testcase)
Metric nameDescriptionUnit
testcase_alias#testcase-stateStatus of the case job execution
testcase_alias#testcase-durationTotal time of the case job executionms
testcase_alias#testcase-freshnessLast execution time of the case jobs
  • Par testcase (pour chaque transaction)
Metric nameDescriptionUnit
testcase_alias~transaction_alias#transaction-stateStatus of the the transaction job execution
testcase_alias~transaction_alias#transaction-durationTotal time of the transaction job executionms

Prérequis​

Pour intégrer la solution Alyvix Server avec Centreon, celle-ci doit être installée et configurée sur un serveur Windows dédié. Le collecteur Centreon en charge de la supervision des ressources doit également pouvoir joindre l'API Rest d'Alyvix Server sur le(s) port(s) TCP/80 ou TCP/443.

Pour plus d'informations sur la configuration d'Alyvix Server et l'implémentation des testcases, vous pouvez consulter la documentation officielle: https://www.alyvix.com/learn/.

Installation​

  1. Installer le Plugin sur chaque collecteur Centreon devant superviser les ressources Alyvix Server:
yum install centreon-plugin-Applications-Monitoring-Alyvix-Restapi
  1. Sur l'interface Web de Centreon, installer le connecteur de supervision Alyvix Server depuis la page Configuration > Gestionnaire de connecteurs de supervision

Configuration​

  • Ajoutez un nouvel Hôte depuis la page "Configuration > Hôtes"
  • Complétez les champs "Nom","Alias" & "IP Address / DNS" correspondant à votre serveur Alyvix Server
  • Appliquez le Modèle d'Hôte App-Monitoring-Alyvix-Restapi-custom

Les Macros d'Hôte ci-après doivent être renseignées le cas échéant:

MandatoryNameDescription
XALYVIXAPIPORTRestAPI port of the Alyvix Server (Default: '80')
XALYVIXAPIPROTOCOLProtocol used to reach the Alyvix Server (Default: 'http')
XALYVIXAPIURLPATHURL path of the API (Default: '/v0/')
ALYVIXAPIUSERNAMEUsername to authenticate against the API (not available yet)
ALYVIXAPIPASSWORDPassword to authenticate against the API (not available yet)
EXTRAOPTIONSAny extra option you may want to add to every command_line (eg. a --verbose flag)

Par défaut, un Service de type "Global" sera déployé, supervisant l'ensemble des testcases. Utilisez la fonctionnalité Service Discovery si vous souhaitez obtenir un Service par testcase.

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 un collecteur Centreon en vous connectant avec l'utilisateur centreon-engine:

/usr/lib/centreon/plugins/centreon_monitoring_alyvix_restapi.pl \
--plugin=apps::monitoring::alyvix::restapi::plugin \
--mode=testcases \
--hostname='10.0.0.1' \
--proto='http' \
--port='80' \
--proxyurl='http://myproxy.mycompany.org:8080' \
--filter-testcase='case_app1|case_app2' \
--critical-testcase-state='%{state} eq "FAILED"' \
--critical-transaction-state='%{state} eq "FAILED"' \
--warning-testcase-duration='40000' \
--critical-testcase-duration='60000' \
--critical-testcase-freshness='600' \
--verbose

La commande devrait retourner un message de sortie de la forme ci-dessous:

OK: All test cases are ok | 'case_app1#testcase.duration.milliseconds'=3883ms;;;0; 'case_app1~1_openapp1#transaction.duration.milliseconds'=77ms;;;0;
'case_app2#testcase.duration.milliseconds'=30658ms;;;0; 'case_app2~1_open_app1#transaction.duration.milliseconds'=3ms;;;0;
'case_app2~2_open_app2#transaction.duration.milliseconds'=4ms;;;0; 'case_app2~3_delay#transaction.duration.milliseconds'=76ms;;;0;
'case_app2~4_open_app1_explorer#transaction.duration.milliseconds'=0ms;;;0; 'case_app2~5_open_file#transaction.duration.milliseconds'=10000ms;;;0;
'case_app2~6_close_app1#transaction.duration.milliseconds'=104ms;;;0; 'case_app2~7_close_app2#transaction.duration.milliseconds'=0ms;;;0;
'case_app2~8_check_picture#transaction.duration.milliseconds'=0ms;;;0;
checking test case 'case_app1'
duration: 3883 ms, state: OK, last execution: 2020-12-11T15:22:40 (1m 16s ago)
transaction '1_openapp1' state: OK, duration: 77 ms
checking test case 'case_app2'
duration: 30658 ms, state: OK, last execution: 2020-12-11T15:20:39 (3m 18s ago)
transaction '1_open_app1' state: OK, duration: 3 ms
transaction '2_open_app2' state: OK, duration: 4 ms
transaction '3_delay' state: OK, duration: 76 ms
transaction '4_open_app1_explorer' state: OK, duration: 0 ms
transaction '5_open_file' state: OK, duration: 10000 ms
transaction '6_close_app1' state: OK, duration: 104 ms
transaction '7_close_app2' state: OK, duration: 0 ms
transaction '8_check_picture' state: OK, duration: 0ms

Dans cet exemple, le Plugin récupère les statuts et temps d'éxecution des testcases (--plugin=apps::monitoring::alyvix::restapi::plugin --mode=testcases) du serveur Alyvix ayant l'adresse IP 10.0.0.1 (--hostname='10.0.0.1'). On choisit ci-desus de n'afficher que les testcases nommés case_app1 et case_app2 (--filter-testcase='case_app1|case_app2').

Une alarme WARNING sera ainsi déclenchée si la durée d'éxecution d'un testcase est supérieure à 40s -40000ms- (--warning-testcase-duration='40000').

Une alarme CRITICAL sera quant à elle déclenchée dans les cas suivants:

  • la durée d'éxecution d'un testcase est supérieure à 60s -60000ms- (--critical-testcase-duration='60000')
  • le statut général d'un testcase exécuté est renvoyé comme "FAILED" (--critical-testcase-state='%{state} eq "FAILED"')
  • le statut d'au moins une transaction du testcase exécuté est renvoyé comme "FAILED" (--critical-transaction-state='%{state} eq "FAILED"')

La liste de toutes les métriques, seuils associés et options complémentaires peut être affichée en ajoutant le paramètre --help à la commande:

/usr/lib/centreon/plugins/centreon_monitoring_alyvix_restapi.pl \
--plugin=apps::monitoring::alyvix::restapi::plugin \
--mode=testcases \
--help

J'obtiens le message d'erreur suivant: UNKNOWN: 500 Can't connect to 10.0.0.1:80 |​

Lors du déploiement de mes contrôles, j'obtiens le message suivant: UNKNOWN: 500 Can't connect to 10.0.0.1:80 |.

Cette erreur signifie que Centreon n'a pas réussi à se connecter à l'API du serveur Alyvix Server. Vérifiez que la requête n'est pas bloquée par un outil externe (un pare-feu par exemple). Si vous utilisez un proxy, renseignez son URL dans la Macro EXTRAOPTIONS de l'Hôte ou directement dans la commande avec l'option --proxyurl.

J'obtiens le message d'erreur suivant: UNKNOWN: 501 Protocol scheme 'connect' is not supported |​

Dans certains cas, et plus spécifiquement lors de l'usage d'un proxy d'entreprise, le protocole de connexion n'est pas supporté par la libraire lwp utlisée par défaut par le Plugin Centreon.

Cette erreur peut être résolue en utilisant le backend HTTP curl. Pour ce faire, ajoutez l'option --http-backend='curl' la Macro EXTRAOPTIONS de l'Hôte ou directement à la commande.