2 votes

Notification facile d'événements arbitraires sur un ordinateur Linux/Unix distant

Je cherche un moyen de définir facilement des notifications ponctuelles de certains événements qui se produisent sur une machine Linux. Les événements peuvent inclure des choses comme : file /tmp/my.lock is unlinked o process 666 finished ou, peut-être, quelque chose de plus compliqué, comme process 'backup.sh' closed file 'backup.tgz' AND process 'backup.sh' exited with return code 0 .

Les notifications doivent également être flexibles. Comme, notify 192.168.0.100 via org.freedesktop.Notifications.Notify o notify me@gmail.com via email .

En fait, c'est quelque chose comme Nagios, mais conçu pour des événements non répétitifs, avec un coût de création de tâches minimal, presque nul. Suis-je un rêveur ? Devrais-je l'écrire moi-même ? Ou devrais-je simplement utiliser le script Shell ?

1voto

PiL Points 1581

Nagios ne peut notifier les événements qu'une seule fois.
Nous l'utilisons pour ouvrir des tickets.
Il suffit de mettre notification_interval = 0 (pour le service et l'hôte) et vous recevrez le courriel/sms une seule fois.

1voto

jabirali Points 191

Juste pour ajouter un peu plus de contribution à la Je devrais l'écrire moi-même question, vous pourriez créer un fichier FIFO ou plat à utiliser comme journal personnalisé, et ajouter des commandes à vos scripts personnalisés qui écrivent des sorties importantes dans ce fichier journal. Ou alternativement, vous pourriez créer un simple scripts qui vérifie périodiquement l'état des fichiers et processus importants, et envoie sa sortie à ce journal.

Pour créer le FIFO sur le serveur :

mkfifo /var/log/mylog

Pour lire les journaux du serveur :

ssh user@host "tail -f /var/log/mylog"

Sourcez ces fonctions dans vos scripts personnalisés pour écrire facilement dans le journal :

function warning { echo -e "\e[33;1m :: \e[0m$@" > /var/log/mylog; };
function error { echo -e "\e[31;1m :: \e[0m$@" > /var/log/mylog; };
function information { echo -e "\e[32;1m :: \e[0m$@" > /var/log/mylog; };

Et ensuite écrire des entrées dans le journal en envoyant ces commandes :

information "Some text"
warning "Some more text"
error "Some important text"

Vous pouvez de la même manière ajouter une fonction Shell qui utilise les éléments suivants sendmail (ou similaire) pour vous envoyer un courrier.

0voto

jason saldo Points 5036

Je pense qu'une combinaison de inotifywatch , ps , logger y syslog dans certains scripts personnalisés pourrait faire l'affaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X