Aller au contenu principal

3CX Rest API

Compatibilité

Ce connecteur a été conçu pour être compatible avec les produits suivants.

ProduitModèlesVersions
3CX-20.0.0.1620

La version 18 de 3CX n'est plus supportée et devrait être mise à jour en version 20.

Contenu du pack

Modèles

Le connecteur de supervision 3CX Rest API apporte un modèle d'hôte :

  • App-VoIP-3cx-Restapi-custom

Le connecteur apporte le modèle de service suivant (classé selon le modèle d'hôte auquel il est rattaché) :

AliasModèle de serviceDescription
SystemApp-Voip-3cx-System-Restapi-customContrôle l'état du système

Les services listés ci-dessus sont créés automatiquement lorsque le modèle d'hôte App-VoIP-3cx-Restapi-custom est utilisé.

Métriques & statuts collectés

Voici le tableau des services pour ce connecteur, détaillant les métriques rattachées à chaque service.

MétriqueUnité
system.calls.active.usage.countcount
system.calls.active.free.countcount
system.calls.active.usage.percentage%
system.extensions.registered.countcount
service#statusN/A

Prérequis

En fonction du type de compte administrateur dont vous disposez, vous trouverez les informations nécessaires dans la documentation officielle de 3CX.

Installer le connecteur de supervision

Pack

La procédure d'installation des connecteurs de supervision diffère légèrement suivant que votre licence est offline ou online.

  1. Si la plateforme est configurée avec une licence online, l'installation d'un paquet n'est pas requise pour voir apparaître le connecteur dans le menu Configuration > Connecteurs > Connecteurs de supervision. Au contraire, si la plateforme utilise une licence offline, installez le paquet sur le serveur central via la commande correspondant au gestionnaire de paquets associé à sa distribution :
dnf install centreon-pack-applications-voip-3cx-restapi
  1. Quel que soit le type de la licence (online ou offline), installez le connecteur 3CX Rest API depuis l'interface web et le menu Configuration > Connecteurs > Connecteurs de supervision.

Plugin

À partir de Centreon 22.04, il est possible de demander le déploiement automatique du plugin lors de l'utilisation d'un connecteur. Si cette fonctionnalité est activée, et que vous ne souhaitez pas découvrir des éléments pour la première fois, alors cette étape n'est pas requise.

Plus d'informations dans la section Installer le plugin.

Utilisez les commandes ci-dessous en fonction du gestionnaire de paquets de votre système d'exploitation :

dnf install centreon-plugin-Applications-Voip-3cx-Restapi

Utiliser le connecteur de supervision

Utiliser un modèle d'hôte issu du connecteur

  1. Ajoutez un hôte à Centreon depuis la page Configuration > Hôtes.
  2. Complétez les champs Nom, Alias & IP Address/DNS correspondant à votre ressource.
  3. Appliquez le modèle d'hôte App-VoIP-3cx-Restapi-custom. Une liste de macros apparaît. Les macros vous permettent de définir comment le connecteur se connectera à la ressource, ainsi que de personnaliser le comportement du connecteur.
  4. Renseignez les macros désirées. Attention, certaines macros sont obligatoires.
MacroDescriptionValeur par défautObligatoire
3CXUSERNAMEDefine the username for authenticationUSERLOGINX
3CXPASSWORDDefine the password associated with the usernameUSERPASSWORDX
3CXPROTODefine the protocol to reach the API (default: 'https')https
3CXPORTDefine the port to connect to (default: '443')443
3CX_AUTH_MODEDefine the authentication mode. oauth2: for 3CX Enterprise edition. Uses OAuth2 client_credentials flow via POST /connect/token. Requires an API client created in 3CX admin console (/#/office/integrations/api). The API client must have at least the 'Admin' role. login: for 3CX Pro edition. Uses username/password login via POST /webclient/api/Login/GetAccessToken. Requires a System Owner account with 2FA disabled. IMPORTANT: The poller IP must be whitelisted in 3CX admin console under Security > Console Restrictions > Allow access from specific IP addresses. Without this, 3CX returns a degraded token causing 403 errors on all API endpointsoauth2
3CXEXTRAOPTIONSAny extra option you may want to add to every command (a --verbose flag for example). Toutes les options sont listées ici.
  1. Déployez la configuration. L'hôte apparaît dans la liste des hôtes supervisés, et dans la page Statut des ressources. La commande envoyée par le connecteur est indiquée dans le panneau de détails de l'hôte : celle-ci montre les valeurs des macros.

Utiliser un modèle de service issu du connecteur

  1. Si vous avez utilisé un modèle d'hôte et coché la case Créer aussi les services liés aux modèles, les services associés au modèle ont été créés automatiquement, avec les modèles de services correspondants. Sinon, créez les services désirés manuellement et appliquez-leur un modèle de service.
  2. Renseignez les macros désirées (par exemple, ajustez les seuils d'alerte). Les macros indiquées ci-dessous comme requises (Obligatoire) doivent être renseignées.
MacroDescriptionValeur par défautObligatoire
DND_PROFILE_NAMEName of the profile to consider as DND (Do Not Disturb). Default: DND. In 3CX version 20, the DND boolean field no longer exists. DND status is derived from the CurrentProfileName field. Use this option to specify the exact profile name configured in your 3CX instance for DND. Example: --dnd-profile-name='Do not disturb'DND
INCLUDE_EXTENSIONFilter extension (by number, first name or last name)
EXCLUDE_EXTENSIONExclude extension (by number, first name or last name)
WARNING_COUNTThreshold for extensions count
CRITICAL_COUNTThreshold for extensions count
WARNING_STATUSDefine the conditions to match for the status to be WARNING. You can use the following variables: extension, registered, dnd, profile, status, duration
CRITICAL_STATUSDefine the conditions to match for the status to be CRITICAL. You can use the following variables: extension, registered, dnd, profile, status, duration
EXTRA_OPTIONSAny extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées ici.
  1. Déployez la configuration. Le service apparaît dans la liste des services supervisés, et dans la page Statut des ressources. La commande envoyée par le connecteur est indiquée dans le panneau de détails du service : celle-ci montre les valeurs des macros.

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 en vous connectant avec l'utilisateur centreon-engine (su - centreon-engine). Vous pouvez tester que le connecteur arrive bien à superviser une ressource en utilisant une commande telle que celle-ci (remplacez les valeurs d'exemple par les vôtres) :

/usr/lib/centreon/plugins/centreon_3cx_restapi.pl \
--plugin=apps::voip::3cx::restapi::plugin \
--mode=system \
--hostname='10.0.0.1' \
--port='443' \
--proto='https' \
--api-username='USERLOGIN' \
--api-password='USERPASSWORD' \
--unknown-status='' \
--auth-mode='' \
--warning-status='' \
--critical-status='%\{error\} =~ /true/' \
--warning-calls-active-usage='' \
--critical-calls-active-usage='' \
--warning-calls-active-free='' \
--critical-calls-active-free='' \
--warning-calls-active-usage-prct='' \
--critical-calls-active-usage-prct='' \
--warning-extensions-registered='' \
--critical-extensions-registered=''

La commande devrait retourner un message de sortie similaire à :

OK: extensions registered: 70 All services are ok | 'system.calls.active.usage.count'=63;;;0;1000 'system.calls.active.free.count'=53;;;0;1000 'system.calls.active.usage.percentage'=44%;;;0;1000 'system.extensions.registered.count'=70;;;0;70

Diagnostic des erreurs communes

Rendez-vous sur la documentation dédiée des plugins basés sur HTTP/API.

Modes disponibles

Dans la plupart des cas, un mode correspond à un modèle de service. Le mode est renseigné dans la commande d'exécution du connecteur. Dans l'interface de Centreon, il n'est pas nécessaire de les spécifier explicitement, leur utilisation est implicite dès lors que vous utilisez un modèle de service. En revanche, vous devrez spécifier le mode correspondant à ce modèle si vous voulez tester la commande d'exécution du connecteur dans votre terminal.

Tous les modes disponibles peuvent être affichés en ajoutant le paramètre --list-mode à la commande :

/usr/lib/centreon/plugins/centreon_3cx_restapi.pl \
--plugin=apps::voip::3cx::restapi::plugin \
--list-mode

Le plugin apporte les modes suivants :

ModeModèle de service associé
extension [code]App-Voip-3cx-Extension-Restapi-custom
license [code]App-Voip-3cx-License-Restapi-custom
system [code]App-Voip-3cx-System-Restapi-custom

Options disponibles

Options des modes

Les options disponibles pour chaque modèle de services sont listées ci-dessous :

OptionDescription
--include-extensionFilter extension (by number, first name or last name).
--exclude-extensionExclude extension (by number, first name or last name).
--dnd-profile-nameName of the profile to consider as DND (Do Not Disturb). Default: DND. In 3CX version 20, the DND boolean field no longer exists. DND status is derived from the CurrentProfileName field. Use this option to specify the exact profile name configured in your 3CX instance for DND. Example: --dnd-profile-name='Do not disturb'
--unknown-statusDefine the conditions to match for the status to be UNKNOWN. You can use the following variables: extension, registered, dnd, profile, status, duration
--warning-statusDefine the conditions to match for the status to be WARNING. You can use the following variables: extension, registered, dnd, profile, status, duration
--critical-statusDefine the conditions to match for the status to be CRITICAL. You can use the following variables: extension, registered, dnd, profile, status, duration
--warning-countThreshold for extensions count.
--critical-countThreshold for extensions count.

Pour un mode, la liste de toutes les options disponibles et leur signification peut être affichée en ajoutant le paramètre --help à la commande :

/usr/lib/centreon/plugins/centreon_3cx_restapi.pl \
--plugin=apps::voip::3cx::restapi::plugin \
--mode=system \
--help