B2PWeb/Services/Monitoring/TopClient
Installation
Engine
Le moteur est situé sur sql2-cogent dans le répertoire <path>/root/scripts/monitoring/topclient</path>. Il est lancé par un cron.
# crontab -l | grep -i 'top\s*client'
# Monitoring - Top client engine */15 8-20 * * 1-5 /root/scripts/monitoring/topclient/engine-topclient.php 1>>/var/log/monitoring-engine-topclient.log 2>&1
En éditant le fichier <path>/root/scripts/monitoring/topclient/vars.php</path>, on peut voir le nom du fichier de lock utilisé: <path>/var/lock/b2p/topclient.lock</path>
Le fichier de log est spécifié dans le crontab : <path>/var/log/monitoring-engine-topclient.log</path>
La base de données monitoring est placé sur sql2-cogent.
DROP TABLE IF EXISTS `topclient`;
CREATE TABLE `topclient` (
`client_id` int(11) NOT NULL,
`client_name` varchar(50) NOT NULL,
`cur_hour_act` int(11) DEFAULT NULL,
`cur_day_act` int(11) DEFAULT NULL,
`last_week_day_act` int(11) DEFAULT NULL,
`last_check` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`client_id`),
KEY `last_check` (`last_check`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Webservice
Le moteur est situé sur tous les WSR dans le répertoire <path>/home/b2pweb.com/services.b2pweb.com/monitoring</path>
monitoring
|-- class
| |-- bdd.class.php
| |-- fault.class.php
| `-- monitoring.class.php
|-- conf
| `-- config.conf.php
|-- include
| `-- fonctions.php
|-- index.php
`-- wsdl
`-- monitoring.wsdl
Client
Le client est situé sur les virtual machine monitoring ( ns1 et ns2 ) du LAN. Il est installé via un paquet RPM dans le répertoire <path>/usr/share/webservice-monitoring/client/</path>.
De plus le fichier de configuration pour Apache est <path>/etc/httpd/conf.d/webservice-monitoring-client.conf</path>
Fonctionnement
- La partie Engine : Sur sql2-cogent, un script enrichit la base de données, moteur qui est lancé via un cron tous les quart d'heure.
- Requêtes mysql sur sql2-cogent
- Mise en base des résultats synthétisés
- La partie serveur du topclient est installé sur tous les WSR et interroge la base monitoring
- La partie cliente fait une requête HTTP sur le webservice http://services.b2pweb.com/monitoring des WSR.
Interface
La date de dernière mise à jour apparait au survol de la souris sur le champs ClientID.
- Lorsque le champs ClientID est vert, les informations sont à jour.
- Lorsque le champs ClientID est orange, les informations commence à être obsolètes ( entre 15 et 20 minutes ).
- Lorsque le champs ClientID est rouge, les informations sont obsolètes ( supérieures à 20 minutes ).
F.A.Q.
Le top client ne se met plus à jour !
- Si la dernière ligne du fichier de log contient:
Previous process is still running!
- C'est qu'une exécution antérieure ne s'est pas bien terminée et que le fichier de lock est encore présent. Il suffit juste de supprimer ce fichier
rm -f /var/lock/b2p/topclient.lock
- L'engine a planté suite à une erreur
Fatal error: Uncaught exception 'Bdf_Db_Exception' with message 'Erreur d'execution' in /home/common/Bdf/Bdf/Db/Adapter/MySQLi.class.php:99
Il faut augmenter les paramètres wait_timeout et interactive_wait_timeout dans le fichier <path>/etc/my.cnf</path> et relancer MySQL.
- C'est qu'une exécution antérieure ne s'est pas bien terminée et que le fichier de lock est encore présent. Il suffit juste de supprimer ce fichier
