Contexte
Cette page vous décris comment superviser un serveur de base Oracle :
- Les temps de connexions
- Un redémarrage récent
- Le nombre de connexion
- Les accès à la mémoire cache
- Surveiller les Dead lock
- ...
Vous devez suivre quelque étape pour mettre en place la supervision d'une nouvelle machine servant de serveur de base de données :
- Comprendre ce qui est mis à disposition dans le pack de supervision
- Tester la connexion à la base de données
- Définissez votre l’hôte qui utilisera les modèles de supervision de la base Oracle
Ce qui est déjà disponible dans l'installation de Shinken
Pour vous faciliter un peu la vie, quelques tâches de configuration ont déjà été effectuées pour vous :
Installation d'Oracle instant Client
Installation du plugin check_oracle_health : /var/lib/shinken/libexec/check_oracle_health
Plusieurs modèles d'hôtes sont prêts à être utilisés
Note
La machine que nous allons surveiller pour les exemples s'appelle srv-lin-1 et est un un serveur Oracle sur un OS linux.
Mise en place d'un compte de supervision Oracle
Note
Il va falloir configurer l'utilisateur pour toutes les bases de données oracle.
Il faut se connecter à la base de données en tant que sysadmin sur le serveur oracle :
srv-lin-1:oracle# sqlplus "/ as sysdba" |
Et ensuite créer un compte shinken sur la base de données :
CREATE USER shinken IDENTIFIED BY shinkenpassword; GRANT CREATE SESSION TO shinken; GRANT SELECT any dictionary TO shinken; GRANT SELECT ON V_$SYSSTAT TO shinken; GRANT SELECT ON V_$INSTANCE TO shinken; GRANT SELECT ON V_$LOG TO shinken; GRANT SELECT ON SYS.DBA_DATA_FILES TO shinken; GRANT SELECT ON SYS.DBA_FREE_SPACE TO shinken; |
Et pour l'ancienne base de données 8.1.7 seulement :
---- if somebody still uses Oracle 8.1.7... GRANT SELECT ON sys.dba_tablespaces TO shinken; GRANT SELECT ON dba_temp_files TO shinken; GRANT SELECT ON sys.v_$Temp_extent_pool TO shinken; GRANT SELECT ON sys.v_$TEMP_SPACE_HEADER TO shinken; GRANT SELECT ON sys.v_$session TO shinken; |
Tester la connexion
Pour voir si la connexion à la base de données nommée PROD est correcte, il suffit de lancer la commande suivante :
/var/lib/shinken/libexec/check_oracle_health --connect "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = srv-lin-1)(PORT = 1521)))(CONNECT_DATA =(SID = PROD)))" --user "shinken" --password "shinkenpassword" --mode connection-time | |
Tip
Les données DATABASES que trouvé dans le modèle d'hôte correspondent au SID de la base de données Oracle.
Gérer plus d'une base de données sur le même hôte
Tous les checks présents dans les modèles Oracle fournis par Shinken Entreprise utilisent la fonctionnalité "Duplicate ForEach".
Pour chaque nom de base de données listé dans la rubrique "DATABASES", le check sera dupliquée. Un hôte, ayant 2 bases de données, aura donc en double chaque check avec le nom de la base de données dans la vérification.
Exemple
Prenons un exemple : un hôte a les caractéristiques suivantes :
- Les données "DATABASES" sont "DB1,DB2,DB3"
- Le modèle oracle y est attaché.
- Considérons les checks Oracle-$KEY$-corrupted-blocks. Il y aura alors 3 checks :
- Oracle-DB1-corrupted-blocks
- Oracle-DB2-corrupted-blocks
- Oracle-DB3-corrupted-blocks
Si vous avez besoin de définir un port de connexion spécifique pour une base de données, vous pouvez le fournir comme paramètre de la base de données :
Exemple
Regardons l'image de la DB2 qui n'utilise pas le port 1521 défini par défaut :
- Modifier la donnée "DATABASES" dans ce sens "DB1,DB2$(5000)$,DB3".
- Pour la duplication sur DB2, alors la valeur1 5000 sera fournie à chaque check et surchargera le port par défaut.
Modèles d'hôtes disponibles dans le pack Oracle
Modèles d'hôtes publics
oracle
Il s'agit du modèle Oracle très basique permettant de savoir si votre base de données Oracle fonctionne et est utilisable.
Tous les modèles Oracle (sauf Oracle-connection-method) l'utilisent comme modèle parent.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| tnsping | listener | |||
| process-usage | Pourcentage du maximum de processus possibles | 0% à 100% | 80 | 90 |
| sga-shared-pool-free | Mémoire libre dans Shared Pool | 0% à 100% | 10: | 5: |
| tablespace-usage | Espace disque utilisé dans le tablespace | 0% à 100% | 90 | 98 |
| corrupted-blocks | Nombre de block corrompu dans la base de données | 0 à n | 1 | 10 |
| invalid-objects | Somme des objets, indices, partitions défectueux | 0 à n | 0.1 | 0.1 |
oracle-full
Contient tous les modèles d'hôte Oracle répertoriés dans les modèles de l'administrateur Shinken.
Avertissement
L'utilisation du modèle oracle-full nécessitera beaucoup de ressources sur votre démon Poller. Nous vous conseillons d'utiliser uniquement les modèles nécessaires.
Modèles d'hôtes réservés aux administrateurs Shinken (ne peuvent pas être vus par les autres utilisateurs)
oracle-connection-method
Ce modèle décrit la méthode de connexion à une base de données Oracle. Tous les modèles Oracle l'utilisent comme modèle parent.
Note
Les paramètres communs à tous les serveurs Oracle surveillés doivent être définis dans le modèle d'hôte oracle-connection-method.
Si vous avez plusieurs méthodes de connexion, créez votre propre modèle et attachez-le à l'hôte.
oracle-availability
Ce modèle donne des informations sur la disponibilité de la base de données.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| connection-time | Temps de connexion à la base de données Oracle | 0 à n secondes | 0.5 | 1 |
Oracle-datafile
Ce modèle donne des informations sur la disponibilité du fichier de données.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| datafile-io-traffic | Somme des opérations d'entrée/sortie des fichiers de données par seconde | n/sec | 1000 | 5000 |
| datafiles-existing | Pourcentage des fichiers de données maximum possibles | 0% à 100% | 80 | 90 |
Oracle-flash-recovery-area
Ce modèle permet de connaître l'espace disque utilisé dans la zone de récupération flash.
À utiliser uniquement si vous utilisez la zone de récupération flash.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| flash-recovery-area-usage | Espace disque utilisé dans la zone de récupération flash | 0% à 100% | 90 | 98 |
Oracle-pga
Ce modèle permet de connaître le pourcentage de tris qui sont effectués sur disque par rapport à ceux effectués en mémoire.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| pga-in-memory-sort-ratio | Pourcentage de tris dans la mémoire | 0% à 100% | 99: | 90: |
Oracle-redo
Ce modèle donne des informations complètes sur le redolog.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| switch-interval | Intervalle entre les changements de fichiers RedoLog | 0 à n | 600: | 60: |
| retry-ratio | Taux de réessai dans le tampon RedoLog | 0% à 100% | 1 | 10 |
| redo-io-traffic | Redolog IO en MB/sec | n/sec | 199 | 200 |
Oracle-rman
Ce modèle indique s'il y a un problème de sauvegarde RMAN dans les 3 derniers jours.
À utiliser uniquement si vous utilisez RMAN.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| rman-backup-problems | Nombre d'erreurs RMAN au cours des trois derniers jours. | 0 à n | 1 | 2 |
Oracle-rollback-segment
Ce modèle donne des informations sur le segment Rollback. Le segment Rollback enregistre les actions des transactions dans le cas où une transaction est annulée.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| roll-header-contention | Contestation de l'en-tête du segment Rollback | 0% à 100% | 1 | 2 |
| roll-block-contention | Contestation de bloc de segment Rollback | 0% à 100% | 1 | 2 |
| roll-hit-ratio | Rollback Segment gets/waits Ratio | 0% à 100% | 99: | 98: |
| roll-extends | Le segment Rollback s'étend n | n/sec | 1 | 100 |
| roll-wraps | Enveloppes de segments Rollback n | n/sec | 1 | 100 |
Oracle-sga
Ce modèle donne des informations complètes sur la SGA (System Global Area).
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| sga-data-buffer-hit-ratio | Hitrate dans le cache du tampon de données | 0% à 100% | 98: | 95: |
| sga-library-cache-gethit-ratio | Hitrate dans le cache de la bibliothèque (Gets) | 0% à 100% | 98: | 95: |
| sga-library-cache-pinhit-ratio | Hitrate dans le cache de la bibliothèque (pins) | 0% à 100% | 98: | 95: |
| sga-library-cache-reloads | Taux de rechargement dans le cache de la bibliothèque | n/sec | 10 | 10 |
| sga-dictionary-cache-hit-ratio | Hitrate dans le cache du dictionnaire | 0% à 100% | 95: | 90: |
| sga-latches-hit-ratio | Hitrate des verrous | 0% à 100% | 98: | 95: |
| sga-shared-pool-reloads | Taux de rechargement dans le pool partagé | 0% à 100% | 1 | 10 |
Oracle-soft-parse
Ce modèle donne des informations sur le soft parse. Il peut vous donner une idée si une application et les instructions SQL correspondantes sont utilisées de manière inefficace.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| soft-parse-ratio | Pourcentage du soft-parse-ratio | 0% to 100% | 90: | 98: |
Oracle-stale-statistics
Ce modèle permet de connaître les statistiques périmées.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| stale-statistics | Somme des objets avec des statistiques d'optimiseur obsolètes | n | 10 | 100 |
Oracle-tablespace
Ce modèle donne des informations sur le tablespace comme la fragmentation, s'il est possible d'allouer la prochaine étendue et potentiellement quand un tablespace sera plein.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| tablespace-fragmentation | Indice de fragmentation de l'espace libre | 100 à 1 | 30: | 20: |
| tablespace-can-allocate-next | Vérifie s'il y a assez de tablespace libre pour le prochain Extent. | |||
| tablespace-remaining-time | Somme des jours restants jusqu'à ce qu'un tablespace soit utilisé à 100%. Le taux d'augmentation sera calculé avec les valeurs des 30 derniers jours. (Avec le paramètre -lookback, différentes périodes peuvent être spécifiées). | Jours | 90: | 30: |
Oracle-usage
Ce modèle indique le pourcentage de sessions maximales possibles et le nombre d'utilisateurs connectés.
| Check | Détail | Seuil avertissement | Seuil critique | |
|---|---|---|---|---|
| session-usage | Pourcentage des sessions maximales possibles | 0% à 100% | 80 | 90 |
| Connected users | Nombre d'utilisateurs actuellement connectés | 0 à n | 50 | 100 |
Comment utiliser les modèles du pack Oracle
Configuration du modèle d'hôte Oracle-connection-method
Cliquez sur Hôtes puis sur Modèles d'hôtes dans le menu Éléments. | |
Dans le champ Nom, tapez oracle. Puis cliquez sur Oracle-connection-method | |
| Cliquez sur l'onglet Données | |
Vous pouvez configurer les données suivantes :
|
Les paramètres spécifiques à chaque serveur, comme le nom de la base de données (AKA SID) par exemple, doivent être effectués dans les données de l'hôte lui-même.
Tip
Une bonne pratique consiste à utiliser le même utilisateur de surveillance de base de données sur chaque serveur Oracle surveillé. Ainsi, vous pouvez configurer l'utilisateur/mot de passe de la base de données une seule fois dans le modèle d'hôte oracle-connection-method.
Important (Changer le port de connexion par base de données)
Attachez un modèle oracle à votre hôte
| Cliquez sur Hôtes dans le menu Éléments | |
Ajoutez le modèle d'hôte Oracle choisi dans le champ Modèles d'hôte à hériter. Par exemple, le modèle d'hôte Oracle. | |
Cliquez sur l'onglet Données | |
Recherchez le champ DATABASES dans les données des modèles. | |
Tapez le nom de la base de données à surveiller | |
| Vérifiez si les données suivantes sont correctes. |
Tip
Vous pouvez surveiller plusieurs bases de données sur le même hôte en tapant le nom du SID de la base de données séparé par une virgule.
Exemple : DB1,DB2,DB3
Version des scripts livrés
check_oracle_health : 3.2.1.8






