Sommaire

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 :

  1. Installation d'Oracle instant Client

  2. Installation du plugin check_oracle_health : /var/lib/shinken/libexec/check_oracle_health

  3. 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.

CheckDétail
Seuil avertissementSeuil critique
tnspinglistener


process-usagePourcentage du maximum de processus possibles0% à 100%8090
sga-shared-pool-freeMémoire libre dans Shared Pool0% à 100%10:5:
tablespace-usageEspace disque utilisé dans le tablespace0% à 100%9098
corrupted-blocksNombre de block corrompu dans la base de données0 à n110
invalid-objectsSomme des objets, indices, partitions défectueux0 à n0.10.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.

CheckDétail
Seuil avertissementSeuil critique
connection-timeTemps de connexion à la base de données Oracle0 à n secondes0.51

Oracle-datafile

 Ce modèle donne des informations sur la disponibilité du fichier de données.

CheckDétail
Seuil avertissementSeuil critique
datafile-io-trafficSomme des opérations d'entrée/sortie des fichiers de données par seconden/sec10005000
datafiles-existingPourcentage des fichiers de données maximum possibles0% à 100%8090

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.


CheckDétail
Seuil avertissementSeuil critique
flash-recovery-area-usageEspace disque utilisé dans la zone de récupération flash0% à 100%9098

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.

CheckDétail
Seuil avertissementSeuil critique
pga-in-memory-sort-ratioPourcentage de tris dans la mémoire0% à 100% 99:90:

Oracle-redo

Ce modèle donne des informations complètes sur le redolog.

CheckDétail
Seuil avertissementSeuil critique
switch-intervalIntervalle entre les changements de fichiers RedoLog0 à n600: 60:
retry-ratioTaux de réessai dans le tampon RedoLog0% à 100%110
redo-io-trafficRedolog IO en MB/secn/sec199200

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.


CheckDétail
Seuil avertissementSeuil critique
rman-backup-problemsNombre d'erreurs RMAN au cours des trois derniers jours.0 à n2

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.


CheckDétail
Seuil avertissementSeuil critique
roll-header-contentionContestation de l'en-tête du segment Rollback0% à 100% 12
roll-block-contentionContestation de bloc de segment Rollback0% à 100%12
roll-hit-ratioRollback Segment gets/waits Ratio0% à 100%99:98:
roll-extendsLe segment Rollback s'étend nn/sec1100
roll-wrapsEnveloppes de segments Rollback nn/sec1100

Oracle-sga

Ce modèle donne des informations complètes sur la SGA (System Global Area).

CheckDétail
Seuil avertissementSeuil critique
sga-data-buffer-hit-ratioHitrate dans le cache du tampon de données0% à 100% 98:95:
sga-library-cache-gethit-ratioHitrate dans le cache de la bibliothèque (Gets)0% à 100%98:95:
sga-library-cache-pinhit-ratioHitrate dans le cache de la bibliothèque (pins)0% à 100%98:95:
sga-library-cache-reloadsTaux de rechargement dans le cache de la bibliothèquen/sec1010
sga-dictionary-cache-hit-ratioHitrate dans le cache du dictionnaire0% à 100%95:90:
sga-latches-hit-ratioHitrate des verrous0% à 100%98:95:
sga-shared-pool-reloadsTaux de rechargement dans le pool partagé0% à 100%110

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.

CheckDétail
Seuil avertissementSeuil critique
soft-parse-ratioPourcentage du soft-parse-ratio0% to 100% 90:98:

Oracle-stale-statistics

Ce modèle permet de connaître les statistiques périmées.

CheckDétail
Seuil avertissementSeuil critique
stale-statisticsSomme des objets avec des statistiques d'optimiseur obsolètesn10 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.

CheckDétail
Seuil avertissementSeuil critique
tablespace-fragmentationIndice de fragmentation de l'espace libre100 à 130:20:
tablespace-can-allocate-nextVérifie s'il y a assez de tablespace libre pour le prochain Extent.


tablespace-remaining-timeSomme 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).Jours90:30:

Oracle-usage

Ce modèle indique le pourcentage de sessions maximales possibles et le nombre d'utilisateurs connectés.

CheckDétail
Seuil avertissementSeuil critique
session-usagePourcentage des sessions maximales possibles0% à 100%8090
Connected usersNombre d'utilisateurs actuellement connectés0 à n50100

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 : 

  • DATABASES : le(s) nom(s) de la (des) base(s) de données Oracle SID à surveiller.
  • ORACLE_CONNECTION_STRING : Il s'agit de la chaîne de connexion Oracle qui permet de se connecter et d'effectuer des requêtes vers les bases de données.
    À moins que vous ne sachiez ce que vous faites, vous aurez rarement besoin de le modifier.
  • ORACLE_PASSWORD : le mot de passe oracle de l'utilisateur utilisé pour se connecter à la base de données
  • ORACLE_USER : le nom d'utilisateur oracle utilisé pour se connecter à la base de données
  • ORACLE_PORT : le port d'écoute du serveur de la base de données Oracle







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