Hello, dans cet article, nous allons voir ensemble comment mettre en place la supervision Microsoft SQL Server (MSSQL) installé sous Windows Server 2016. Nous allons utiliser Centreon et Centreon Plugin Pack…
Infrastructure requise :
- Microsoft SQL Server
- Windows Server 2012/2016
Solution de supervision :
- Centreon Server : installation-complete-centreon-2-8-26
- Centreon Plugin Pack : centreon-plugins-monitoring/
- Configuration SNMP : configuration-snmp-windows-linux-esxi-cisco/
Supervision Windows Server
Commençons par la supervision du système lui même (Windows Server 2016). Nous allons surveiller, la charge (cpu), la mémoire, le trafic, les disques et les services Microsoft SQL Server.
Afficher les modes :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --list-mode Plugin Description: Check Windows operating systems in SNMP. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. Modes Available: # cpu # interfaces list-interfaces list-storages # memory processcount # service # storage swap time uptime [root@centreon plugins]#
Check-CPU-Windows
Supervision du CPU. Utilisation et la charge moyenne :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=cpu --hostname=SQL-SERVER --warning-average=85 --critical-average=95 OK: 8 CPU(s) average usage is: 20.50% | 'cpu0'=30.00%;;;0;100 'cpu1'=17.00%;;;0;100 'cpu2'=54.00%;;;0;100 'cpu3'=14.00%;;;0;100 'cpu4'=14.00%;;;0;100 'cpu5'=13.00%;;;0;100 'cpu6'=11.00%;;;0;100 'cpu7'=11.00%;;;0;100 'total_cpu_avg'=20.50%;0:85;0:95;0;100 [root@centreon plugins]#
Avec le mode VERBOSE
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=cpu --hostname=SQL-SERVER --warning-average=85 --critical-average=95 --verbose OK: 8 CPU(s) average usage is: 20.38% | 'cpu0'=23.00%;;;0;100 'cpu1'=20.00%;;;0;100 'cpu2'=57.00%;;;0;100 'cpu3'=15.00%;;;0;100 'cpu4'=14.00%;;;0;100 'cpu5'=13.00%;;;0;100 'cpu6'=10.00%;;;0;100 'cpu7'=11.00%;;;0;100 'total_cpu_avg'=20.38%;0:85;0:95;0;100 CPU 0 Usage is 23.00% CPU 1 Usage is 20.00% CPU 2 Usage is 57.00% CPU 3 Usage is 15.00% CPU 4 Usage is 14.00% CPU 5 Usage is 13.00% CPU 6 Usage is 10.00% CPU 7 Usage is 11.00% [root@centreon plugins]#
Si vous avez l’erreur : Unknown option: warning at /usr/lib/centreon/plugins/centreon/plugins/alternative/Getopt.pm line 67.
Mettez plutôt : --warning-average=90 --critical-average=95
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-CPU-Windows
- Ligne de commande : sans le paramètre VERBOSE
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --mode=$_SERVICEMODE$ --warning-average=$_SERVICEWARNING$ --critical-average=$_SERVICECRITICAL$
- Ligne de commande : avec le paramètre VERBOSE
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --mode=$_SERVICEMODE$ --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_SERVICEOPTION$
$USER2$ = Centreon Plugin Path = /usr/lib/centreon/plugins
- Description des macros. Exemple :
- MACRO (SERVICE) PLUGIN : plugin windows
- MACRO (SERVICE) MODE : mode memory
- MACRO (SERVICE) WARNING : seuil warning
- MACRO (SERVICE) CRITICAL : seuil critical
- MACRO (HOST) SNMPCOMMUNITY : communauté SNMP
- MACRO (HOST) SNMPVERSION : version SNMP
- Modèle graphique : CPU
- Sauvegarder
Check-Memory-Windows
Supervision de la mémoire RAM
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=memory --hostname=SQL-SERVER --warning-memory=85 --critical-memory=95 OK: RAM Total: 63.99GB Used: 53.36GB (83.38%) Free: 10.63GB (16.62%) | 'used'=57291636736B;0:58402809446;0:65273728204;0;68709187584 [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-Memory-Windows
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --warning-memory=$_SERVICEWARNING$ --critical-memory=$_SERVICECRITICAL$
- Description des macros. Exemple :
- MACRO (SERVICE) PLUGIN : plugin
- MACRO (SERVICE) MODE : mode
- MACRO (SERVICE) WARNING : warning
- MACRO (SERVICE) CRITICAL : critical
- MACRO (HOST) SNMPCOMMUNITY : snmp
- MACRO (HOST) SNMPVERSION : version
- Modèle graphique : Memory
- Sauvegarder
Check-Storage-Windows
Supervision des disques. Tous les disques disponibles sans le paramètre VERBOSE (–verbose)
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=storage --hostname=SQL-SERVER --warning-usage=85 --critical-usage=95 OK: All storages are ok | 'used_C:\ Label: Serial Number 22573743'=60005175296B;0:61520369868;0:68758060441;0;72376905728 'used_D:\ Label:D Serial Number ec46c378'=763077656576B;0:934582206259;0:1044533054054;0;1099508477952 [root@centreon plugins]#
Tous les disques disponibles avec le paramètre VERBOSE (–verbose)
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=storage --hostname=SQL-SERVER --warning-usage=85 --critical-usage=95 --verbose OK: All storages are ok | 'used_C:\ Label: Serial Number 22573743'=59972947968B;0:61520369868;0:68758060441;0;72376905728 'used_D:\ Label:D Serial Number ec46c378'=763078377472B;0:934582206259;0:1044533054054;0;1099508477952 Storage 'C:\ Label: Serial Number 22573743' Usage Total: 67.41 GB Used: 55.85 GB (82.86%) Free: 11.55 GB (17.14%) Storage 'D:\ Label:D Serial Number ec46c378' Usage Total: 1024.00 GB Used: 710.67 GB (69.40%) Free: 313.32 GB (30.60%) [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-Storage-Windows
- Ligne de commande : sans le paramètre VERBOSE
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --warning-usage=$_SERVICEWARNING$ --critical-usage=$_SERVICECRITICAL$
- Ligne de commande : avec le paramètre VERBOSE
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --warning-usage=$_SERVICEWARNING$ --critical-usage=$_SERVICECRITICAL$ $_SERVICEOPTION$
- Modèle graphique : Storage
- Sauvegarder
- Voir également : /#Check_All_Disk
- Check tous les disque
- Check uniquement le disque C (ignore G et H)
- Check uniquement le disque G et H (ignore le C)
Afficher de l’aide --help
pour voir d’autres paramètres que vous pouvez utiliser.
Mode: --warning-usage Threshold warning. --critical-usage Threshold critical. --warning-access Threshold warning. --critical-access Threshold critical. Check if storage is readOnly: --critical-access=@2:2 --add-access Check storage access (readOnly, readWrite). --units Units of thresholds (Default: '%') ('%', 'B'). --free Thresholds are on free space left. --storage Set the storage (number expected) ex: 1, 2,... (empty means 'check all storage'). --name Allows to use storage name with option --storage instead of storage oid index. --regexp Allows to use regexp to filter storage (with option --name). --regexp-isensitive Allows to use regexp non case-sensitive (with --regexp). --reload-cache-time Time in minutes before reloading cache file (default: 180). --oid-filter Choose OID used to filter storage (default: hrStorageDescr) (values: hrStorageDescr, hrFSMountPoint). --oid-display Choose OID used to display storage (default: hrStorageDescr) (values: hrStorageDescr, hrFSMountPoint). --display-transform-src Regexp src to transform display value. (security risk!!!) --display-transform-dst Regexp dst to transform display value. (security risk!!!) --show-cache Display cache storage datas. --space-reservation Some filesystem has space reserved (like ext4 for root). The value is in percent of total (Default: none) (results like 'df' command). --filter-storage-type Filter storage types with a regexp (Default: '^(hrStorageFixedDisk|hrStorageNetworkDisk|hrFSBerkeleyFFS)$'). [root@centreon plugins]#
Check-Traffic-Windows
Supervision du trafic : afficher la liste des interfaces :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=list-interfaces --hostname=SQL-SERVER --name --oid-display=ifDesc --filter-status='up' List interfaces: 'Software Loopback Interface 1' [speed = 1073.74, status = up, id = 1] 'Broadcom BCM5709S NetXtreme II GigE (client NDIS VBD) #35' [speed = 1000, status = up, id = 12] 'Broadcom BCM5709S NetXtreme II GigE (client NDIS VBD) #36' [speed = 1000, status = up, id = 13] ... # 'Microsoft Network Adapter Multiplexor Driver' [speed = 2000, status = up, id = 16] ... 'Broadcom BCM5709S NetXtreme II GigE (client NDIS VBD) #35-WFP Native MAC Layer LightWeight Filter-0000' [speed = 1000, status = up, id = 21] 'Broadcom BCM5709S NetXtreme II GigE (client NDIS VBD) #36-WFP Native MAC Layer LightWeight Filter-0000' [speed = 1000, status = up, id = 23] ... 'Microsoft Network Adapter Multiplexor Driver-WFP Native MAC Layer LightWeight Filter-0000' [speed = 2000, status = up, id = 26] 'Microsoft Network Adapter Multiplexor Driver-Microsoft Load Balancing/Failover Provider-0000' [speed = 2000, status = up, id = 27] 'Microsoft Network Adapter Multiplexor Driver-QoS Packet Scheduler-0000' [speed = 2000, status = up, id = 28] 'Microsoft Network Adapter Multiplexor Driver-WFP 802.3 MAC Layer LightWeight Filter-0000' [speed = 2000, status = up, id = 29] ... [root@centreon plugins]#
Connectez-vous sur votre serveur pour identifier l’interface réseau utilisée. Dans mon cas, j’ai deux cartes réseau Broadcom en agrégation. L’interface utilisée est Microsoft Network Adapter… (id=16)
Supervision de l’interface en utilisant le nom :‘Microsoft Network Adapter Multiplexor Driver’
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=interfaces --hostname=SQL-SERVER --interface='^Microsoft Network Adapter Multiplexor Driver$' --name --add-traffic --add-status --oid-display=ifDesc --oid-filter=ifDesc OK: Interface 'Microsoft Network Adapter Multiplexor Driver' Status : up (admin: up), Traffic In : Buffer creation, Traffic Out : Buffer creation | [root@centreon plugins]#
Attendez quelques secondes pour la création du buffer et relancer la commande :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=interfaces --hostname=SQL-SERVER --interface='^Microsoft Network Adapter Multiplexor Driver$' --name --add-traffic --add-status --oid-display=ifDesc --oid-filter=ifDesc OK: Interface 'Microsoft Network Adapter Multiplexor Driver' Status : up (admin: up), Traffic In : 37.41Kb/s (0.00%), Traffic Out : 12.42Kb/s (0.00%) | 'traffic_in'=37409.59b/s;;;0;2000000000 'traffic_out'=12424.20b/s;;;0;2000000000 [root@centreon plugins]#
--interface='^Microsoft Network Adapter Multiplexor Driver$'
Explication : En utilisant les expressions régulères '^Microsoft Network Adapter Multiplexor Driver$'
on effectue une recherche précise. Sans ces expressions, le plugin retournera également les 4 autres interfaces commençant par « Microsoft Network… » :
Microsoft Network Adapter Multiplexor Driver-WFP…
Microsoft Network Adapter Multiplexor Driver-Microsoft…
Microsoft Network Adapter Multiplexor Driver-QoS Packet…
Microsoft Network Adapter Multiplexor Driver-WFP…
- Le
'^....'
= veut dire, commence strictement par Microsoft Network Adapter Multiplexor Driver - Le
'....$'
= veut dire, se termine strictement par Microsoft Network Adapter Multiplexor Driver
Vous pouvez également rajouter les paramètres suivants pour obtenir un joli graphique sous Centreon :
--warning-in-traffic=80 --warning-out-traffic=80 --critical-in-traffic=90 --critical-out-traffic=90
Supervision de l’interface en utilisant l’ID : 16
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=interfaces --hostname=SQL-SERVER --interface=16 --add-traffic --add-status --oid-display=ifDesc --oid-filter=ifDesc --warning-in-traffic=80 --warning-out-traffic=80 --critical-in-traffic=90 --critical-out-traffic=90 OK: Interface 'Microsoft Network Adapter Multiplexor Driver' Status : up (admin: up), Traffic In : 59.12Kb/s (0.00%), Traffic Out : 19.61Kb/s (0.00%) | 'traffic_in'=59121.14b/s;0:1600000000;0:1800000000;0;2000000000 'traffic_out'=19609.14b/s;0:1600000000;0:1800000000;0;2000000000 [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-Traffic-Windows
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --mode=$_SERVICEMODE$ --interface=$_SERVICEINTERFACE$ --warning-in-traffic=$_SERVICEWARNINGIN$ --warning-out-traffic=$_SERVICEWARNINGOUT$ --critical-in-traffic=$_SERVICECRITICALIN$ --critical-out-traffic=$_SERVICECRITICALOUT$ $_SERVICEOPTION$
- Modèle graphique : Traffic
- Sauvegarder
Check-Services-MSSQL
Supervision des services SQL Server : Avec le paramètre VERBOSE
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=service --hostname=SQL-SERVER --service='^SQL Server.*' --regexp --state --critical='4:' --verbose OK: All service states are ok | Service 'SQL Server (MSSQLSERVER)' match (pattern: 'SQL Server.*') [operating state = active, installed state = installed] Service 'SQL Server Reporting Services (MSSQLSERVER)' match (pattern: 'SQL Server.*') [operating state = active, installed state = installed] Service 'SQL Server Agent (MSSQLSERVER)' match (pattern: 'SQL Server.*') [operating state = active, installed state = installed] Service 'SQL Server CEIP service (MSSQLSERVER)' match (pattern: 'SQL Server.*') [operating state = active, installed state = installed] Service pattern 'SQL Server.*': service list SQL Server (MSSQLSERVER), SQL Server Reporting Services (MSSQLSERVER), Enregistreur VSS SQL Server, SQL Server Agent (MSSQLSERVER), SQL Server CEIP service (MSSQLSERVER) [root@centreon plugins]#
le '^SQL Server.*'
= on check les services commençant strictement par SQL Server… (il y a donc 4 services MSSQL). Sans le paramètre VERBOSE
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=service --hostname=SQL-SERVER --service='^SQL Server.*' --regexp --state --critical='4:' OK: All service states are ok | [root@centreon plugins]#
le --critical='4:'
= veut dire , au-dessous de 4 services, l’alerte critique se déclenche. Vous devez alors démarrer le ou les services manquants.
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-Services-MSSQL ou Check-Service-Windows
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --mode=$_SERVICEMODE$ --service=$_SERVICENAME$ --critical=$_SERVICECRITICAL$ $_SERVICEOPTION$
- Sauvegarder
Check-Hardware (Dell PowerEdge)
Si vous vous avez un serveur Dell PowerEdge, vous pouvez superviser le châssis de votre machine. Télécharger et installez Dell OpenManage Server Administrator sur votre serveur Windows : dell.com/support
Remarque : installer OMSA par défaut et redémarrer votre serveur Windows. N’oubliez pas de configurer le service SNMP.
[root@centreon plugins]# ./centreon_plugins.pl --list-plugin | grep dell | grep PLUGIN PLUGIN: storage::dell::TL2000::plugin PLUGIN: storage::dell::MD3000::cli::plugin PLUGIN: network::dell::sseries::snmp::plugin # PLUGIN: hardware::server::dell::openmanage::snmp::plugin PLUGIN: storage::dell::fluidfs::snmp::plugin PLUGIN: storage::dell::ml6000::snmp::plugin PLUGIN: network::dell::n4000::snmp::plugin PLUGIN: hardware::server::dell::idrac::snmp::plugin PLUGIN: storage::dell::compellent::local::plugin PLUGIN: storage::dell::equallogic::snmp::plugin PLUGIN: network::dell::6200::snmp::plugin PLUGIN: storage::dell::compellent::snmp::plugin PLUGIN: hardware::server::dell::cmc::snmp::plugin [root@centreon plugins]#
Il y a qu’un seul mode et c’est hardware :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=hardware::server::dell::openmanage::snmp::plugin --list-mode Plugin Description: Check Dell servers in SNMP thanks to Dell Openmanage. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. Modes Available: # hardware [root@centreon plugins]#
Afficher de l’aide :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=hardware::server::dell::openmanage::snmp::plugin --mode=hardware --hostname=SQL-SERVER --help
... Mode: Check Hardware (Global status, Fans, CPUs, Power Supplies, Temperature, Storage). # --component Which component to check (Default: '.*'). Can be: 'globalstatus', 'fan', 'cpu', 'psu', 'temperature', 'cachebattery', 'physicaldisk', 'logicaldrive', 'battery', 'controller', 'connector'. --exclude Exclude some parts (comma seperated list) (Example: --exclude=fan,cpu) Can also exclude specific instance: --exclude=fan#1#,cpu --no-component Return an error if no compenents are checked. If total (with skipped) is 0. (Default: 'critical' returns). --threshold-overload Set to overload default threshold values (syntax: section,status,regexp) It used before default thresholds (order stays). Example: --threshold-overload='temperature,CRITICAL,^(?!(ok)$)' --warning Set warning threshold for temperature, psu.power or fan (syntax: type,regexp,threshold) Example: --warning='temperature,.*,30' --critical Set critical threshold for temperature, psu.power or fan (syntax: type,regexp,threshold) Example: --critical='temperature,.*,40' [root@centreon plugins]#
On peut donc superviser :
- L’ensemble des composants : GlobalStatus
- Fan, cpu, temperature, cachebattery, physicaldisk, logicaldrive, battery, controller, connector
- Il permet donc de vérifier l’était du RAID et les disques physiques/virtuelles.
[root@centreon plugins]# ./centreon_plugins.pl --plugin=hardware::server::dell::openmanage::snmp::plugin --mode=hardware --hostname=SQL-SERVER --component WARNING: Chassis '1' global status is 'nonCritical' - Cache battery '1' status is 'nonCritical' - Controller 'PERC 6/i Integrated' status is 'nonCritical' | 'temp_1.1'=19C;;;0; [root@centreon plugins]#
J’ai une alerte WARNING et c’est normal :
Le résultat dépend bien sûr du modèle de votre serveur Dell PowerEdge. Voici un exemple avec un serveur Dell PowerEdge R730 :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=hardware::server::dell::openmanage::snmp::plugin --mode=hardware --hostname=EXCHANGE-SERVER --component='.*' OK: All 32 components are ok [1/1 batteries, 1/1 cache batteries, 2/2 connectors, 1/1 controllers, 2/2 CPUs, 1/1 ESM log, 6/6 fans, 1/1 global system status, 1/1 logical drives, 8/8 memory modules, 2/2 physical disks, 2/2 power supplies, 4/4 temperatures]. | 'fan_1.1'=3720rpm;;;0; 'fan_1.2'=3720rpm;;;0; 'fan_1.3'=3720rpm;;;0; 'fan_1.4'=3480rpm;;;0; 'fan_1.5'=3720rpm;;;0; 'fan_1.6'=3720rpm;;;0; 'psu_power_1.1'=750W;;;0; 'psu_power_1.2'=750W;;;0; 'temp_1.1'=16C;;;0; 'temp_1.2'=27C;;;0; 'temp_1.3'=43C;;;0; 'temp_1.4'=43C;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-Services-MSSQL ou Check-Service-Windows
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --mode=$_SERVICEMODE$ --component=$_SERVICECOMPONENT$
- Sauvegarder
Supervision SQL Server (CLI)
Passons maintenant à la supervision des bases de données Microsoft SQL Server.
Recherche de plugin :
[root@centreon plugins]# ./centreon_plugins.pl --list-plugin | grep database | grep PLUGIN PLUGIN: database::postgres::plugin PLUGIN: database::sap::hana::plugin PLUGIN: database::oracle::plugin # PLUGIN: database::mssql::plugin PLUGIN: database::mysql::plugin PLUGIN: database::sybase::plugin PLUGIN: database::firebird::plugin PLUGIN: database::informix::plugin [root@centreon plugins]#
Les modes disponibles :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --list-mode Plugin Description: Check MSSQL Server. --hostname Hostname to query. --port Database Server Port. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. --sqlmode Choose a sql mode (Default: "dbi"). --list-sqlmode List available sql modes. --multiple Multiple database connections (some mode needs it). Modes Available: backup-age blocked-processes cache-hitratio connected-users connection-time databases-size dead-locks failed-jobs locks-waits logs-size sql sql-string transactions [root@centreon plugins]#
Check-MSSQL-Cache-HitRatio
Permet de vérifier le Data Buffer Cache Hit Ratio du serveur :
Remarque : s’il y a un élément à prendre en compte pour évaluer les performances de vos bases de données, c’est le Cache Hit Ratio !
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=cache-hitratio --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 --critical='90:' OK: Buffer cache hit ratio is 100.00% | 'cache_hitratio'=100%;;90:;0;100 [root@centreon plugins]#
Plus la valeur est élevée (100%) plus les performances sont au top.
- Si la valeur est au-dessus de 90%, cela reste toujours acceptable
- Si la valeur est au-dessous de 90%, vous allez vous retrouver avec des performances médiocres.
Réglez donc la valeur --critical='90:'
qui veut dire, on dessous de 90%, l’alerte critical se déclenche.
Remarque : le compte et le mot de passe, c’est les identifiants utilisés pour vous connecter sur la console SQL Server Management.
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-HitRatio
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$ --critical=$_SERVICECRITICAL$
- Sauvegarder
Check-MSSQL-Database
Permet de vérifier l’espace utilisé des bases de données :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 --mode=databases-size OK: All databases are OK | 'db_master_used_master'=4718592B;;;0;4980736 'db_model_used_model'=12184453.12B;;;0;13694402.56 'db_msdb_used_msdb'=112145203.2B;;;0;118751232 'db_tempdb_used_tempdb'=2365786685.44B;;;0;20460475514.88 [root@centreon plugins]#
Une seule base de données : la base master
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 --mode=databases-size --filter-database='master' --warning-database=80 --critical-database=90 CRITICAL: Database 'master' Total: 4.75 MB Used: 4.50 MB (94.74%) Free: 256.00 KB (5.26%) | 'db_master_used'=4718592B;0:3984588;0:4482662;0;4980736 [root@centreon plugins]#
Remarque : il faut respectez les minuscules et les majuscules
Si vous avez l’erreur suivant :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=databases-size --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 --filter-database=master --warning-database=80 --critical-database=90 UNKNOWN: install_driver(Sybase) failed: Can't locate DBD/Sybase.pm in @INC (@INC contains: /usr/lib/centreon/plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 9) line 3. Perhaps the DBD::Sybase perl module hasn't been fully installed, or perhaps the capitalisation of 'Sybase' isn't right. Available drivers: DBM, ExampleP, File, Gofer, Oracle, Pg, Proxy, SQLite, Sponge, WMI, mysql. at /usr/lib/centreon/plugins/centreon/plugins/dbi.pm line 210 [root@centreon plugins]#
Solution :
[root@centreon plugins]# yum install perl-DBD-Sybase.x86_64
Si vous avez l’erreur suivant (CentOS 6.x) :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=connection-time --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 CRITICAL: Cannot connect: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (44) Server , database Message String: Server name not found in configuration files. OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (45) Server , database Message String: Unknown host machine name. | [root@centreon plugins]#
J’ai eu ce problème sous CentOS 6.x. Aucun problème sous CentOS 7.
Solution #1 : ce package est normalement installé déjà.
[root@centreon ~]# yum install freetds.x86_64
Modifier le fichier de configuration :
[root@centreon plugins]# nano /etc/freetds.conf
Modifier le dernier bloc comme ci-dessous :
# A typical Microsoft server [sql2012] host = SERVER-SQL // mettez l'adresse IP c'est mieux port = 1433 tds version = 7.0
Il faut ensuite supprimer et rajouter certains paramètres dans la commande. Exemple :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --username=USER --password=PASS --datasource='Sybase:server=sql2012' --mode=databases-size --filter-database='master' --warning-database=80 --critical-database=90 CRITICAL: Database 'master' Total: 4.75 MB Used: 4.50 MB (94.74%) Free: 256.00 KB (5.26%) | 'db_master_used'=4718592B;0:3984588;0:4482662;0;4980736 [root@centreon plugins]#
Vous n’avez pas besoin de mettre HOSTNAME et le PORT. Il faut ajouter --datasource='Sybase:server=sql2012'
Solution #2 : je n’ai pas essayé, il faut mettre à jour le package freetds.
Version sous CentOS 6.x
[root@centreon plugins]# tsql -C ... Version: freetds v0.91 ... ... ... [root@centreon plugins]#
Version sous CentOS 7.x
[root@centreon ~]# tsql -C ... Version: freetds v0.95.81 ... ... ... [root@centreon ~]#
Je suis sous CentOS 7. Je ne compte pas revenir en arrière. A vous de passer à la dernière version ou appliquer l’une des solutions ci-dessus.
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-Database
- Ligne de commande : Toutes les bases de données
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Ligne de commande : Une seule base de données :
- Allez dans : Configuration > Collecteurs > Ressources > Ajouter
- Nom de la ressource : $_SERVICEDATABASE$
- Valeur de la ressource : 0
- Lié au collecteur : Central
- Status : Activé
- Pour CentOS 6.x ajoutez également :
- Nom de la ressource : $_SERVICEDATASOURCE$
- Valeur de la ressource : 0
- Lié au collecteur : Central
- Status : Activé
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$ --filter-database=$_SERVICEDATABASE$ --warning-database=$_SERVICEWARNING$ --critical-database=$_SERVICECRITICAL$
- Sauvegarder
Check-MSSQL-BackupAge
Permet de vérifier les sauvegardes des bases données MSSQL. Ce temps est donné en minutes :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=backup-age --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 CRITICAL: No backup found for DB 'tempdb' | 'db_master_backup_age'=151085s;;;0; 'db_master_backup_duration'=1s;;;0; 'db_model_backup_age'=151163s;;;0; 'db_model_backup_duration'=1s;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-BackupAge
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Remarque : à partir d’ici, la commande ne change pas. Dupliquez la commande Check-MSSQL-BackupAge et modifier simplement le nom de la commande.
Check-MSSQL-BlockedProcess
Permet de vérifier les processus bloqués :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=blocked-processes --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: 0 blocked process(es). | 'blocked_processes'=0;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-BlockedProcess
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-ConnectedUsers
Permet de vérifier le nombre d’utilisateurs connectés à la base de données :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=connected-users --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: 43 Connected user(s). | 'connected_users'=43;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-ConnectedUsers
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-ConnectionTime
Permet de vérifier la durée de connexion au serveur. Ce temps est donné en secondes :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=connection-time --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: Connection established in 0.018s. | 'connection_time'=18ms;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-ConnectionTime
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-DeadLocks
Permet de vérifier le nombre de « deadlocks » par seconde du serveur :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=dead-locks --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: 0 dead locks/s. | 'dead_locks'=0/s;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-DeadLocks
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-FailedJobs
Permet de vérifier les jobs MSSQL en erreur :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=failed-jobs --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: All jobs are ok. | 'failed_jobs'=0;;;0;2 [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-FailedJobs
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-LockWaits
Permet de vérifier le nombre de « locks-waits » par seconde du serveur :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=locks-waits --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: 0 Locks Waits/s. | 'locks_waits'=0/s;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-LockWaits
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-Transactions
Permet de vérifier le nombre de transactions par seconde du serveur :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=transactions --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: 100.89 transactions/s. | 'tranUSERctions'=100.89/s;;;0; [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-Transactions
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Check-MSSQL-LogsSize
Permet de vérifier l’espace utilisé par les logs des bases de données :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::mssql::plugin --mode=logs-size --hostname=SQL-SERVER --username=USER --password=PASS --port=1433 OK: All logs are OK | 'log_master_used'=559103.975B;;;0;778240 'log_model_used'=1364480.01648438B;;;0;9428992 'log_msdb_used'=906752.0271875B;;;0;1564672 'log_tempdb_used'=380103137.195156B;;;0;2337660928 [root@centreon plugins]#
Commande Centreon UI : Configuration > Commandes >
- Nom de la commande : Check-MSSQL-LogsSize
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --mode=$_SERVICEMODE$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --port=$_SERVICEPORT$
- Sauvegarder
Supervision SQL Server (UI)
Je vous donne un exemple pour la création d’un service pour l’hôte SQL-SERVER (déjà créée).
Check-MSSQL-HitRatio
- Configuration > Services > Ajouter
- Description : Check-MSSQL-HitRatio
- Lié aux hôtes :SQL-SERVER
- Modèle : Service_template
- Commande de vérification : Check-MSSQL-HitRatio
- Sauvegarder
Check-Traffic-Windows
Voici un exemple pour le trafic en utilisant l’ID de l’interface :
- Configuration > Services > Ajouter
- Description : Check-Traffic-Windows
- Lié aux hôtes : SQL-SERVER
- Modèle : Service_template
- Commande de vérification : Check-Traffic-Windows
- Le champ OPTION contient :
--add-traffic --add-status --oid-display=ifDesc --oid-filter=ifDesc
- Sauvegarder
Rappel de la commande :
[root@centreon plugins]# ./centreon_plugins.pl --plugin=os::windows::snmp::plugin --mode=interfaces --hostname=SQL-SERVER --interface=16 --add-traffic --add-status --oid-display=ifDesc --oid-filter=ifDesc --warning-in-traffic=80 --warning-out-traffic=80 --critical-in-traffic=90 --critical-out-traffic=90 OK: Interface 'Microsoft Network Adapter Multiplexor Driver' Status : up (admin: up), Traffic In : 59.12Kb/s (0.00%), Traffic Out : 19.61Kb/s (0.00%) | 'traffic_in'=59121.14b/s;0:1600000000;0:1800000000;0;2000000000 'traffic_out'=19609.14b/s;0:1600000000;0:1800000000;0;2000000000 [root@centreon plugins]#
Check-MSSQL-BDD
Faisons pour une seule base :
- Configuration > Services > Ajouter
- Description : Check-MSSQL-BDD
- Lié aux hôtes : SQL-SERVER
- Modèle : Service_template
- Commande de vérification : Check-MSSQL-BDD
- Sauvegarder
Relancer le collecteur central pour prendre en compte la configuration. Voir #Demarrage_de_la_supervision
Après quelques secondes :
C’est terminé les amis. A vous de mettre en place les autres services. N’hésitez surtout pas en cas de besoin.
Bonne journée et à très bientôt.
Supervision Systèmes & Réseaux
Voir également mes projets sur la supervision : /supervision
- Supervision Certificat HTTPS/Windows : supervision-des-certificats-https-windows/
- Supervision Web HTTP(S) : supervision-https-response-expected-content-centreon/
- Supervision ORACLE BDD : oracle-database-monitoring-centreon-plugins/
- Supervision EMC VNX : vnx5300-vnx5200-monitoring-centreon/
- Supervision MSSQL : microsoft-sql-server-monitoring/
- Supervision Switch CISCO : switch-cisco-centreon-partie-1-2/
- Supervision VMWARE ESXi : vmware-esxi-6-7-monitoring/
- Supervision EXCHANGE Server : exchange-server-2016-monitoring-actif/
- Supervision Quotas Windows : supervision-des-quotas-windows-nrpe-nsclient/
- Supervision Skype for Business : supervision-microsoft-skype-for-business/
- Supervision HPE Proliant Gen10 : supervision-hpe-proliant-gen10-snmp-restapi/
- Supervision NETAPP SANTricity : supervision-netapp-santricity-storage-restapi/
Bonjour
Malgré la pléthore de mode disponible pour surveiller sa base SQL, je ne trouve malheureusement pas ce que je recherche : en effet j’aimerai surveiller la taille du journal de transaction.
Y aurait t il un moyen de surveiller cela ?
Merci !
Bonjour,
Dans ce cas, tu dois utiliser une requête SQL avec le mode SQL ou SQL-STRING.
Je ne maitrise pas MSSQL.
Quelques pistes :
https://www.wikihow.com/Check-Transaction-Log-Size-in-a-SQL-Server
https://stackoverflow.com/questions/198343/how-can-i-get-the-size-of-the-transaction-log-in-sql-2005-programmatically
Vérifies d’abord le bon fonctionnement de ta requêtes via la console SQL 🙂
N’hésites pas à me faire un retour.
Salut, c’est encore moi désolé!
Je Check-MSSQL-BlockedProcess fonctionne bien mais je voudrais lui ajouter un warning et critical, j’ai donc essayé d’ajouter
--critical=$_SERVICECRITICAL$
à la fin de la commande mais le plugin ne fonctionne plus et sa met en UNKNOW…Avez-vous une solution ? merci
Salut,
Il faut mettre plutôt :
--warning-blocked-processes=$_SERVICEWARNING$ --critical-blocked-processes=$_SERVICECRITICAL$
Tu peux voir plus d’information en affichant de l’aide :
Bonne journée 🙂
-sysadmin
au top merci! je viens comprendre l’utilité de la commande –help -‘
Bonjour,
Est-il possible de checker avec le plugin mssql, l’instance de la base de données ? Car mon problème est le suivant:
L’authentification sur mon management sql server fonctionne comme cela: srv-toto\NomDeLinstance
Du coup en mettant juste le
--hostname=srv-toto
, la connexion ne fonctionne pas :/Merci
Salut,
C’est quoi le résultat avec le paramètre
--hostname
?Salut,
J’ai un UNKNOW: Cannot connect: Adapative Server is unavailable or does not exist
Et ma connexion sur le serveur directement via SQL Management studio, je suis obligé de mettre l’instance après le nom du serveur sinon la connexion ne se fait pas.
Salut,
j’ai tenté pas mal de combine, mais ça ne fonctionne pas :-/
je ne sais pas si c’est lié à la configuration de ton serveur SQL, mais moi ça marche directement ou en passant par FREETDS :
Connexion direct :
Connexion via FREETDS :
ou
Je n’ai rien trouvé d’autres, désolé :-/
Bonne journée.
-sysadmin
Merci! j’ai réussi, en fait rien à voir… le port utilisé par SQL Server n’était pas celui par défaut, ils ont utilisé un port aléatoire! Ca fonctionne merci pour vos tuto super!
Salut,
C’est super 🙂
Bonne journée.
-sysadmin
Bonjour,
problème rencontrer avec cette commande
si vous avez une idée je suis preneur 😉
Bonne journée à tous
Salut,
(attention dans ta commande tu as mis deux fois le MODE )
As-tu testé la Solution citée dans l’article et de passer par le driver Sybase et freetds ? : https://pixelabs.fr/microsoft-sql-server-monitoring/#Check-MSSQL-Database
N’oublies pas également de mettre à jour les plugins Centreon.
Bonne journée.
-sysadmin.
Salut,
c’etait tout simplement les plugins centreon à mettre à jours 😉
c’est balo j’y avais même pas penser !
Merci
Bonjour,
Merci beaucoup pour ton tutoriel très bien détaillé au top!
J’ai 2 questions:
1. Avez-vous un script en cas de suppression d’une BDD, car j’ai essayé avec la commande Check-MSSQL-BDD sur une seule base de données et de la supprimer, le résultat après suppression est: ‘OK: All databases are OK’
2. Le script Check-MSSQL-BackupAge, check malheureusement aussi la ‘tempdb’ qui ne peut jamais etre sauvegarder donc il y a t-il un moyen que son statut ne soit pas tout le temps en CRITICAL et qu’il check toutes les autres bdd sauf ‘tempdb’.
Merci à vous
Salut Mickeal,
Pour ta première question, je ne comprends pas, si la base est supprimée, normalement l’état doit passé en Critical… as-tu bien supprimé la base (et relancer SQL peut être ?). Sinon, je ne sais pas désolé.
Pour ta deuxième question, il suffit d’ajouter dans le champs OPTION le paramètre suivant : –skip-no-backup
Sans ce paramètre :
—
Avec le paramètre –skip-no-backup
Bonne journée.
-Pixel.
Merci, pour le Check-MSSQL-BDD impossible, j’ai toujours ‘OK: All databases are OK’ :/
Pour le –skip-no-backup ça fonctionne parfaitement merci.
Désolé encore petit question sur le Check-MSSQL-LogsSize. Ça traduit bien la taille des bases mais peut-on y ajouter un warning et critical ?
Car j’ai une base pleine pour tester, mais aucune alerte >
‘log_test_bdd2_used’=752465592.3175B;;;0;754835456
J’ai essayé d’y ajouter –warning-database=80 mais option inconnu.
Le Check-MSSQL-BDD vérifie l’état de toutes les bases de données, mais tu peux filtrer en vérifiant base par base. Exemple ici, la base master :
Pour Check-MSSQL-LogsSize, il faut utiliser plutôt :
-Pixel.
Mise à jour de l’article