Azure Policy States
Contenu du Pack​
Modèles​
Le connecteur de supervision Azure Policies States apporte un modèle d'hôte :
- Cloud-Azure-PolicyInsights-PolicyStates
Le connecteur apporte le modèle de service suivant :
- Cloud-Azure-PolicyInsights-PolicyStates
Alias | Modèle de service | Description |
---|---|---|
Compliance | Cloud-Azure-PolicyInsights-PolicyStates-Compliance-Api | Contrôle l'état de conformité des stratégies Azure |
Métriques & statuts collectés​
- Compliance
Métrique | Unité |
---|---|
policies.non_compliant.count | count |
compliance_state#compliance-state | N/A |
Prérequis​
Rendez-vous sur la documentation dédiée afin d'obtenir les prérequis nécessaires pour interroger les API d'Azure.
Installation​
Pack de supervision​
Si la plateforme est configurée avec une licence online, l'installation d'un paquet n'est pas requise pour voir apparaître le pack dans le menu Configuration > Gestionnaire de 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 paquet associé à sa distribution :
- Alma / RHEL / Oracle Linux 8
- Alma / RHEL / Oracle Linux 9
- Debian 11 & 12
- CentOS 7
dnf install centreon-pack-cloud-azure-policyinsights-policystates
dnf install centreon-pack-cloud-azure-policyinsights-policystates
apt install centreon-pack-cloud-azure-policyinsights-policystates
yum install centreon-pack-cloud-azure-policyinsights-policystates
Quel que soit le type de la licence (online ou offline), installez le Pack Azure Policies States depuis l'interface web et le menu Configuration > Gestionnaire de 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 pack. 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 :
- Alma / RHEL / Oracle Linux 9
- Alma / RHEL / Oracle Linux 8
- CentOS 7
- Debian 11 & 12
dnf install centreon-plugin-Cloud-Azure-PolicyInsights-PolicyStates-Api
dnf install centreon-plugin-Cloud-Azure-PolicyInsights-PolicyStates-Api
yum install centreon-plugin-Cloud-Azure-PolicyInsights-PolicyStates-Api
apt install centreon-plugin-cloud-azure-policyinsights-policystates-api
Configuration​
Hôte​
- Ajoutez un hôte à Centreon depuis la page Configuration > Hôtes.
- Remplissez le champ Adresse IP/DNS avec l'adresse 127.0.0.1.
- Appliquez le modèle d'hôte Cloud-Azure-PolicyInsights-PolicyStates-custom.
- Une fois le modèle appliqué, renseignez les macros correspondantes. Attention, certaines macros sont obligatoires. Elles doivent être renseignées selon le custom mode utilisé.
Deux méthodes peuvent être utilisées lors de l'assignation des macros :
- Utilisation de l'ID complet de la ressource (de type
/subscriptions/<subscription_id>/resourceGroups/<resourcegroup_id>/providers/XXXXXX/XXXXXXX/<resource_name>
) dans la macro AZURERESOURCE.- Utilisation du nom de la ressource dans la macro AZURERESOURCE et du nom du groupe de ressources dans la macro AZURERESOURCEGROUP.
Obligatoire | Macro | Description | Défaut |
---|---|---|---|
x | AZURECLIENTID | Set Azure client ID | |
x | AZURECLIENTSECRET | Set Azure client secret | |
AZURERESOURCEGROUP | Set resource group | ||
x | AZURESUBSCRIPTION | Set Azure subscription ID | |
x | AZURETENANT | Set Azure tenant ID | |
PROXYURL | Proxy URL | ||
EXTRAOPTIONS | Any extra option you may want to add to every command line (eg. a --verbose flag) |
Service​
Une fois le modèle appliqué, les macros ci-dessous indiquées comme requises (Obligatoire) doivent être renseignées.
- Compliance
Obligatoire | Macro | Description | Défaut |
---|---|---|---|
POLICYSTATES | The virtual resource under PolicyStates resource type. In a given time range, 'latest' represents the latest policy state(s), whereas 'default' represents all policy state(s) | default | |
RESOURCELOCATION | Set resource location (Optional) | ||
RESOURCETYPE | Set resource type (Optional) | ||
POLICYNAME | Set policy name (Optional) | ||
CRITICALCOMPLIANCESTATE | %{compliance_state} eq "NonCompliant" | ||
WARNINGCOMPLIANCESTATE | |||
WARNINGNONCOMPLIANTPOLICIES | |||
CRITICALNONCOMPLIANTPOLICIES | |||
EXTRAOPTIONS | Any extra option you may want to add to the command line (eg. a --verbose flag) |
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
) :
/usr/lib/centreon/plugins//centreon_azure_policyinsights_policystates_api.pl \
--plugin=cloud::azure::policyinsights::policystates::plugin \
--mode=compliance \
--resource-group='' \
--subscription='' \
--tenant='' \
--client-id='' \
--client-secret='' \
--proxyurl='' \
--policy-states='' \
--resource-location='' \
--resource-type='' \
--policy-name='' \
--warning-non-compliant-policies='' \
--critical-non-compliant-policies='' \
--warning-compliance-state='' \
--critical-compliance-state='' \
La commande devrait retourner un message de sortie similaire à :
OK: Number of non compliant policies: 0 - All compliances states are ok | 'policies.non_compliant.count'=0;;;0;
Modes disponibles​
Tous les modes disponibles peuvent être affichés en ajoutant le paramètre
--list-mode
à la commande :
/usr/lib/centreon/plugins//centreon_azure_policyinsights_policystates_api.pl \
--plugin=cloud::azure::policyinsights::policystates::plugin \
--list-mode
Le plugin apporte les modes suivants :
Mode | Modèle de service associé |
---|---|
compliance | Cloud-Azure-PolicyInsights-PolicyStates-Compliance-Api |
Options complémentaires​
Options des modes​
Les options spécifiques aux modes sont listées ci-dessus :
- Compliance
Option | Description | Type |
---|---|---|
--mode | Choose a mode. | Global |
--dyn-mode | Specify a mode with the path (separated by '::'). | Global |
--list-mode | List available modes. | Global |
--mode-version | Check minimal version of mode. If not, unknown error. | Global |
--version | Display plugin version. | Global |
--custommode | Choose a custom mode. | Global |
--list-custommode | List available custom modes. | Global |
--multiple | Multiple custom mode objects (required by some specific modes) | Global |
--pass-manager | Use a password manager. | Global |
--verbose | Display long output. | Output |
--debug | Display also debug messages. | Output |
--filter-perfdata | Filter perfdata that match the regexp. | Output |
--filter-perfdata-adv | Advanced perfdata filter. Eg: --filter-perfdata-adv='not (%(value) == 0 and %(max) eq "")' | Output |
--explode-perfdata-max | Put max perfdata (if it exist) in a specific perfdata (without values: same with '_max' suffix) (Multiple options) | Output |
--change-perfdata --extend-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target[,[newuom],[min],[m ax]] Common examples: Change storage free perfdata in used: --change-perfdata=free,used,invert() Change storage free perfdata in used: --change-perfdata=used,free,invert() Scale traffic values automaticaly: --change-perfdata=traffic,,scale(auto) Scale traffic values in Mbps: --change-perfdata=traffic_in,,scale(Mbps),mbps Change traffic values in percent: --change-perfdata=traffic_in,,percent() | Output |
--extend-perfdata-group | Extend perfdata from multiple perfdatas (methods in target are: min, max, average, sum) Syntax: --extend-perfdata-group=searchlabel,newlabel,target[,[newuom],[m in],[max]] Common examples: Sum wrong packets from all interfaces (with interface need --units-errors=absolute): --extend-perfdata-group=',packets_wrong,sum(packets_(discard |error)_(in|out))' Sum traffic by interface: --extend-perfdata-group='traffic_in_(.*),traffic_$1,sum(traf fic_(in|out)_$1)' | Output |
--change-short-output --change-long-output | Change short/long output display: --change-short-output=pattern~replace~modifier | Output |
--change-exit | Change exit code: --change-exit=unknown=critical | Output |
--range-perfdata | Change perfdata range thresholds display: 1 = start value equals to '0' is removed, 2 = threshold range is not display. | Output |
--filter-uom | Filter UOM that match the regexp. | Output |
--opt-exit | Optional exit code for an execution error (i.e. wrong option provided, SSH connection refused, timeout, etc) (Default: unknown). | Output |
--output-ignore-perfdata | Remove perfdata from output. | Output |
--output-ignore-label | Remove label status from output. | Output |
--output-xml | Display output in XML format. | Output |
--output-json | Display output in JSON format. | Output |
--output-openmetrics | Display metrics in OpenMetrics format. | Output |
--output-file | Write output in file (can be used with json and xml options) | Output |
--disco-format | Display discovery arguments (if the mode manages it). | Output |
--disco-show | Display discovery values (if the mode manages it). | Output |
--float-precision | Set the float precision for thresholds (Default: 8). | Output |
--source-encoding | Set encoding of monitoring sources (In some case. Default: 'UTF-8'). Microsoft Azure Rest API To connect to the Azure Rest API, you must register an application. Follow the 'How-to guide' in https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-cr eate-service-principal-portal The application needs the 'Monitoring Reader' role (See https://docs.microsoft.com/en-us/azure/azure-monitor/platform/roles-perm issions-security#monitoring-reader). This custom mode is using the 'OAuth 2.0 Client Credentials Grant Flow' For futher informations, visit https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth 2-client-creds-grant-flow | Output |
--subscription | Set Azure subscription ID. | Api |
--tenant | Set Azure tenant ID. | Api |
--client-id | Set Azure client ID. | Api |
--client-secret | Set Azure client secret. | Api |
--login-endpoint | Set Azure login endpoint URL (Default: 'https://login.microsoftonline.com') | Api |
--management-endpoint | Set Azure management endpoint URL (Default: 'https://management.azure.com') | Api |
--timeframe | Set timeframe in seconds (i.e. 3600 to check last hour). | Api |
--interval | Set interval of the metric query (Can be : PT1M, PT5M, PT15M, PT30M, PT1H, PT6H, PT12H, PT24H). | Api |
--aggregation | Set monitor aggregation (Can be multiple, Can be: 'minimum', 'maximum', 'average', 'total', 'count'). | Api |
--zeroed | Set metrics value to 0 if none. Usefull when Monitor does not return value when not defined. | Api |
--timeout | Set timeout in seconds (Default: 10). | Api |
--http-peer-addr | Set the address you want to connect (Useful if hostname is only a vhost. no ip resolve) | Http global |
--proxyurl | Proxy URL | Http global |
--proxypac | Proxy pac file (can be an url or local file) | Http global |
--insecure | Insecure SSL connections. | Http global |
--http-backend | Set the backend used (Default: 'lwp') For curl: --http-backend=curl | Http global |
--ssl-opt | Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). | Backend lwp |
--curl-opt | Set CURL Options (--curl-opt="CURLOPT_SSL_VERIFYPEER => 0" --curl-opt="CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_1" ). | Backend curl |
--memcached | Memcached server to use (only one server). | Retention |
--redis-server | Redis server to use (only one server). SYntax: address[:port] | Retention |
--redis-attribute | Set Redis Options (--redis-attribute="cnx_timeout=5"). | Retention |
--redis-db | Set Redis database index. | Retention |
--failback-file | Failback on a local file if redis connection failed. | Retention |
--memexpiration | Time to keep data in seconds (Default: 86400). | Retention |
--statefile-dir | Directory for statefile (Default: '/var/lib/centreon/centplugins'). | Retention |
--statefile-suffix | Add a suffix for the statefile name (Default: ''). | Retention |
--statefile-concat-cwd | Concat current working directory with option '--statefile-dir'. Useful on Windows when plugin is compiled. | Retention |
--statefile-format | Format used to store cache (can be: 'dumper', 'storable', 'json'). | Retention |
--statefile-key | Key to encrypt/decrypt cache. | Retention |
--statefile-cipher | Cipher to encrypt cache (Default: 'AES'). | Retention |
--policy-states | The virtual resource under PolicyStates resource type. In a given time range, 'latest' represents the latest policy state(s), whereas 'default' represents all policy state(s). | Mode |
--resource-group | Set resource group (Optional). | Mode |
--resource-location | Set resource location (Optional). | Mode |
--resource-type | Set resource type (Optional). | Mode |
--policy-name | Set policy name (Optional). | Mode |
--warning- --critical- | Thresholds. Can be: 'non-compliant-policies' ,'compliance-state'. | Mode |
Pour un mode, la liste de toutes les options complémentaires et leur signification peut être
affichée en ajoutant le paramètre --help
à la commande :
/usr/lib/centreon/plugins//centreon_azure_policyinsights_policystates_api.pl \
--plugin=cloud::azure::policyinsights::policystates::plugin \
--mode=compliance \
--help
Diagnostic des erreurs communes​
Rendez-vous sur la documentation dédiée des plugins basés sur HTTP/API.