SYSMon

sysmon est un programme linux relativement ancien qui permet de faire du monitoring “simple”.

Celui-ci gère des “dépendances”, ce qui permet d'avoir des alertes simple sur un élement dont dépend d'autre élément.

sysmon.conf

root="routeur1";
;config showupalso;
config nologconnects;
config html refresh 60;
config statusfile html "/path/to/page.html";
set queuetime = "60";
config numfailures 5;
config from "mail@domain.ext";
 
config subject "[SYSMON] %h %s %U at %d";
 
config pmesg "Sysmon Report\nHost : %h\nIP: %I\nService: %s\nPort: %p\nHeure: %T\n%U since %d";
 
object routeur1 {
        ip "192.168.0.254";
        type ping;
        desc "Mon premier routeur traversé";
};
 
include "/etc/sysmon/inclusion.conf";

Nous allons voir tout ca en détail.

root=“routeur1”;

Ici nous indiquons quel est le tout premier segment a monitorer, ce parametre est tres important, si vous n'indiquez rien ou l'oubliez (ou faite une faute de frappe), il ne monitorera rien du tout.

;config showupalso;

Cette ligne permet d'avoir la liste, sur la page html généré, des éléments “en ligne”.

config nologconnects;

Ne log pas les connexion effectuée par le client sysmon.

config html refresh 60;

Definit le temps de rafraichissement de la page HTML généré.

config statusfile html ”/path/to/page.html”;

Permet de définir le repertoire et le nom de la page HTML généré.

set queuetime = “60”;

Sysmond dispose d'une file d'attente, cette valeur permet de dire combien de temps restent les “objets” (tests) dans la file d'attente.

config numfailures 5;

Cette variable indique combien de tests doivent être echoué pour indiquer qu'un élement est “down”.

config from “mail@domain.ext”;

Indique le mail de l'expediteur pour les alertes.

config subject ”[SYSMON] %h %s %U at %d”;

Configure le “sujet” de l'email envoyé.

  • %h : hostname
  • %s : service
  • %U : état (up/down)
  • %d : Heure du down

D'autre valeur sont listé ici

config pmesg “Sysmon Report\nHost : %h\nIP: %I\nService: %s\nPort: %p\nHeure: %T\n%U since %d”;

Le “corps” du mail envoyé avec les variables :

  • %h : hostname
  • %I : IP de l'hote “down”
  • %s : Service
  • %p : Port du Service
  • %T : Heure courante
  • %U : état (Up/Down)
  • %d : Heure du down

D'autre valeur sont listé ici

object routeur1 {
ip “192.168.0.254”;
type ping;
desc “Mon premier routeur traversé”;
};

Cette partie défini un “hote” ou “objet” a monitorer.

object routeur1 {

Dans l'exemple “routeur1” sera le nom de l'objet, il sera utilisé notamment pour les dépendances.

ip “192.168.0.254”;

Comme son nom l'indique, n'indiquez pas un FQDN, seule une IP sera prise en compte.

type ping;

Le type de test a effectuer, nous verrons plus bas les differents tests possible.

desc “Mon premier routeur traversé”;

La description tel qu'elle apparaitra dans la page HTML

include ”/etc/sysmon/inclusion.conf”;

Permet d'inclure un ou plusieurs fichier de configuration, le “wildcard” (*) n'est pas possible (hélas).

Differente configuration

Test a base de ping

object Machine1 {
        ip "192.168.0.1";
        type ping;
        desc "Machine numéro 1";
        contact "destinataire@domain.ext";
        dep "Routeur1";
};

Dans ce monitoring nous testons la machine nommé “Machine1”. Sa dépendance (variable “dep”) est “Routeur1” En cas de “panne”, un mail sera envoyé a celle indiqué par la variable “contact”, soit “destinataire@domain.ext” dans l'exemple.

Test TCP

object Machine1-SSH {
        ip "192.168.0.1";
        type tcp;
        port 22.
        desc "Machine numéro 1 SSH";
        contact "destinataire@domain.ext";
        dep "Machine1";
};

C'est un peu cochon mais sysmon ne sait pas faire un test SSH, on doit donc lui faire faire une connexion TCP, si ca répond, c'est bon. On définit donc le “type” par “TCP” et le “port” pour effectuer un test TCP. L'UDP est possible mais un peu buggé.

Test SMTP

object smtp1 {
        ip "192.168.0.25";
        type smtp;
        desc "Serveur SMTP numéro 1";
        contact "destinataire@domain.ext";
        dep "routeur1";
};

Très simple, le monitoring d'un serveur SMTP n'a que peu de configuration à indiquer.

Test POP

object pop1 {
        ip "192.168.0.110";
        type pop3;
        username "mailbox";
        password "password";
        desc "Serveur POP numéro 1";
        contact "destinataire@domain.ext";
        dep "Routeur1";
};

Ce test essaye de se connecter a une boite au lettre. Il faut définir les variables “username” et “password”.

Test IMAP

object imap1 {
        ip "192.168.0.143";
        type imap;
        username "mailbox";
        password "password";
        desc "Serveur IMAP numéro 1";
        contact "destinataire@domain.ext";
        dep "Routeur1";
};

Même chose que pour le test POP3, il faut un “username” et un “password”.

Test HTTP

object web1 {
        ip "192.168.0.80";
        type www;
        url "/";
        urltext "HTML";
        desc "Serveur Web numéro 1";
        contact "destinaraire@domain.ext";
        dep "Routeur1";
};

Ce test dispose de variable interessante.

url ”/”;

Permet d'indiquer un chemin a suivre sur l'ip Il appellera donc “http://192.168.0.80/” dans ce test Vous pouvez specifier un “fichier”, qui pourra etre un script renvoyant un résultat qui sera vérifié par la variable suivante.

urltext “HTML”;

sysmond cherchera le “mot” spécifié dans la page qu'il va récuperer. ici il cherchera “HTML”. Si vous avez un script qui effectue des tests, vous pouvez par exemple dire au script de renvoyer “OK” et de chercher ce “mot” afin de considerer le test réussi ou non.

Test DNS

object dns1 {
        ip "192.168.0.53";
        type dns;
        dns-query "domain.ext";
        desc "Serveur DNS numéro 1";
        dep "Routeur1";
};

Ce test interrogera le serveur DNS pour l'entrée “dns-query” qui dans le cas présent est “domain.ext”

D'autre tests sont répértorié dans la Documentation officielle

Dépendances

Dans les exemples précedent, nous suivons les dépendances en cascades.

Par exemple, “Machine1-SSH” dépend de “Machine1” qui dépend de “Routeur1”. Si “Routeur1” tombe en panne, vous n'aurez l'alerte que pour celui-ci, et non pour les services qui en dependent.

Ceci évite d'être “bombardé” d'alerte.

Vous pouvez aussi avoir plusieurs dépendances, il suffira des mettre plusieurs variables “dep”.

wiki/sysmon.txt · Dernière modification: Friday 29 May 2009 par kathryl
Flux RSS du Blog Driven by DokuWiki Gentoo Powered Valid XHTML1.0 Powered by Apache PHP Powered Coffee Powered