Surveiller la queue d’un Kerio Connect

Kerio Connect, le serveur de messagerie de Kerio disponible sous forme d’appliance, ne permet pas nativement de récupérer via SNMP la taille de sa queue, ce qui peut être bien gênant pour détecter un éventuel problème.

Heureusement, il est possible de contourner cette limitation en utilisant l’API PHP proposée par l’éditeur. Voyons sa mise en place.

Télécharger l’API PHP

Tout d’abord, il faut se connecter sur le serveur et télécharger l’archive ZIP avec les fichiers :

wget http://download.kerio.com/dwn/kerio-api-php.zip

Décompresser ensuite l’archive :

unzip kerio-api-php.zip

J’ai choisi de placer le dossier dans /usr/local/share :

mv kerio-api-php /usr/local/share/

PHP doit bien entendu être installé si ce n’est pas encore le cas :

yum install -y php

Création du script

Créer un fichier kerio-connect-queue.php dans /usr/local/bin :

#!/usr/bin/env php
<?php

///////////////////////////////////////////////////////////////////////////////
// PARAMETRAGE DU SCRIPT
///////////////////////////////////////////////////////////////////////////////

// Emplacement de l'API
define('KERIO_API_PATH', '/usr/local/share/kerio-api-php');

// Nom d'hôte du serveur
define('KERIO_HOSTNAME', 'localhost');

// Compte Kerio (si possible en lecture seule)
define('KERIO_API_USER', 'admin');

// Mot de passe du compte
define('KERIO_API_PWD', 'admin');

///////////////////////////////////////////////////////////////////////////////
// DEBUT DU SCRIPT - NE PAS EDITER CI-DESSOUS
///////////////////////////////////////////////////////////////////////////////

// Chargement de l'API
require_once(KERIO_API_PATH . '/src/KerioConnectApi.php');

// Déclaration de l'application
$api = new KerioConnectApi('Surveillance de la Queue', 'Simon', '1.0');

// Authentification
$api->login(KERIO_HOSTNAME, KERIO_API_USER, KERIO_API_PWD);

// Requête pour récupérer la queue
$queryParams = array('query' => array('orderBy' => array(array('column' => 'nextTry', 'direction' => 'Asc'))));
$queue = $api->sendRequest('Queue.get', $queryParams);

// Affiche la taille de la queue
echo $queue['totalItems'];

// Déconnexion
$api->logout();

Lui donner les droits en exécution :

chmod +x /usr/local/bin/kerio-connect-queue.php

Sonde SNMP

Ouvrir /etc/snmp/snmpd.conf (sous CentOS) et ajouter :

extend queue /usr/local/bin/kerio-connect-queue.php

Ne reste plus qu’à récupérer l’OID avec snmpwalk.

Attention cependant à ne pas l’exécuter trop souvent, passer par une API HTTP reste assez lourd.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s