Suite au script d'espace disque j'ai voulu aller un peu plus loin avec une supervision plus Globale (Comme celle que nous utilisons au Travail, mais sans aller plus loin)
Donc voici un script a mettre sur vos serveurs WEB.
Fonctionnement :
- Un état par ce qu'on veut supervisé. Actuellement : Uptime , Memoire, CPU, et Disk.
- Un actionneur faisant appel au script avec les paramètres voulu.
De base
http://IP_SERVER_WEB/snmp.php?IP=XXXX&action=YY&id=ZZ
Optionnel
&disk=LL&type=GG
ou
IP_SERVER_WEB : Ben vous la connaissez mieux que moi, c'est IP de votre Serveur WEB
XXXX : IP du materiel que vous souhaiter superviser
YY : Action, soit uptime, cpu, mem, disk . Je pense que c'est assez parlant pour ne pas détailler.
ZZ : Code API de votre Etat ou vous voulez Stocker la donnée.
En cas d'action Disk o a en plsu
LL : Le lecteur souhaite (Exemple C:, HD_a2 (mon nas DLINK 320))
GG : Mettre Gb pour un retour en Gb et pourcent pour un retour en Pourcentage de votre utilsiation disk.
Pour que tous cela fonctionne, il faut les pré-Requis Suivant :
Sur la machine a superviser, activer le SNMP.
Pour Windows ca revient a installer la fonctionnalité.
Sur Linux, il me semble qu'il fait installer snmp-net (même chose normalement pour un serveur WEB en Linux)
Sur les NAS, il y a une option activer SNMP.
Puis configurer le SNMP pour recevoir les demandes SNMP de votre Serveur.
En cas de problème j'essayerais de détailler la partie SNMP.
Et voila ce que ca donne:
avec les Valeurs de l' actionneur
Les points de dysfonctionnements peuvent être :
- Appel a la fonction snmpget ( Je n'ai pas réussi a la faire fonctionne en PHP, mais sinon le script put le faire directement)
- OID SNMP qui est différente selon le matériel (J'ai essayer de prendre du générique)
En sachant que l'on peut aller plus loin en étant spécifique (Par exemple, surveillance de service sous Windows, de Ventilateur, etc...)
Pour le script c'est ici :
https://drive.google.com/folderview?id= ... sp=sharing
Dans celui-ci pensez a changer l'adresse IP ligne 15
$url = 'http://10.0.0.107/api/set?action=periph.value';
$url = $url.'&api_user='.$api_user;
$url = $url.'&api_secret='.$api_secret;
$url = $url.'&periph_id='.$Id;