Transmettre le paquet d’interruption SNMP à un démon PHP sur Ubuntu

J’ai un serveur Ubuntu qui collecte les traps SNMP entrants. Actuellement, ces pièges sont gérés et consignés à l’aide d’un script PHP.

fichier /etc/snmp/snmptrapd.conf

 traphandle default /home/svr/00-VHOSTS/nagios/scripts/snmpTrap.php 

Ce script est assez long et contient de nombreuses opérations de firebase database. Habituellement, le serveur reçoit des milliers de traps par jour et ce script prend donc trop de temps processeur. D’après ce que j’ai compris, cela est dû au coût de démarrage élevé du script php chaque fois qu’un piège est reçu.

J’ai reçu une demande pour ré-écrire ceci et je pensais à exécuter ce script en tant que démon. Je peux créer un démon Ubuntu. Ma question est la suivante: comment puis-je transmettre le gestionnaire de traps à ce démon en utilisant le fichier snmptrapd.conf ?

Merci d’avance.

Une suggestion est d’utiliser le support mysql qui est intégré à 5.5 de snmptrapd. De cette façon, vous pouvez utiliser mysql comme une queue et traiter les traps en bloc.

les détails de ceci sont sur la page snmptrapd: http://www.net-snmp.org/wiki/index.php/Snmptrapd

Si vous n’utilisez pas mysql, une autre option consiste à utiliser un canal nommé.

Do mkfifo snmptrapd.log Changez maintenant snmptrapd pour écrire dans ce journal. Ce n’est pas un fichier mais il en a l’air. Vous écrivez ensuite un autre démon pour regarder le canal nommé pour les nouvelles données.

Vous pouvez probablement utiliser php-fpm / php-fcgi pour minimiser les coûts de démarrage des scripts PHP.

Cependant, vous aurez probablement besoin d’écrire un script shell wrapper pour transmettre la demande du protocole snmptrapd au protocole fcgi.

Mais au début, je vous recommande de vérifier le script PHP. Le coût de démarrage de PHP n’est pas si élevé que peu de requêtes par minute devraient augmenter l’utilisation du processeur, notamment.