Bonjour,
J'ai un vieux serveur sous Debian Lenny qui fait tourner Apache en reverse proxy pour accéder à un démon Anyterm qui tourne sur le localhost:8888.
Depuis quelques jours Anyterm se votre comme une merde pour une raison encore obscure.
Le error.log d'Apache contient ceci :
[Wed Oct 16 17:39:13 2013] [error] [client 192.168.1.3] (20014)Internal error: proxy: error reading status line from remote server localhost, referer: https://xxxx
[Wed Oct 16 17:39:13 2013] [error] (111)Connection refused: proxy: HTTP: attempt to connect to [::1]:8888 (localhost) failed
[Wed Oct 16 17:39:13 2013] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Wed Oct 16 17:39:13 2013] [error] proxy: HTTP: disabled connection for (localhost)
Le contournement actuel est le redémarrage de Anyterm suivi du redémarrage d'Apache.
Outre le fait que j'aimerais comprendre l'erreur, je souhaiterais quand cette erreur survient : soit recevoir un mail soit exécuter un script shell (en root).
J'avoue que j'ai regardé dans la doc de rsyslog, mais j'ai rien compris et la doc d'Apache ne semble traiter que des erreurs rencontrées côté utilisateur.
Tout aide est la bienvenue.
a+
# Erreur Apache "banale"
Posté par NeoX . Évalué à 2.
ton anyterm se vautre,
apache ne peut plus le joindre et te le dit dans les logs.
un redemarrage de anyterm pourrait suffire
pour un redemarrage sur script, dans un premier temps je ferais bourrin dans ce style
en gros ca regarde en permanence ce qui se passe dans error.log, ca filtre sur 8888
si ca trouve 8888, ca renvoie 1 et demande donc le redemarrage de anyterm
evidemment ca peut s'ameliorer
# inotify
Posté par tetraf . Évalué à 3.
Je ne crois pas qu'Apache propose ce genre de chose (ou alors peut-être avec une extension).
Par contre en utilisant inotify/incron, un bout de script et la méthode La RACHE, tu devrais pouvoir faire ce que tu veux.
[^] # Re: inotify
Posté par mekare . Évalué à 2.
De toutes les réponses, j'ai retenu la tienne : facile et rapide à mettre en oeuvre.
J'ai fait un script bash lancé via la incrontab. Le script n'est pas parfait mais c'est suffisamment fonctionnel.
Je le met ici, ça peut servir à d'autres. Je suis bien évidement ouverts au remarques.
Merci à tous !
# logwatch, tail|grep ou SystemTap
Posté par Krunch (site web personnel) . Évalué à 3.
Il existe plusieurs systèmes d'analyse de log qui permettent ce genre de chose mais typiquement ils se lancent à intervalle fixe (toutes les heures par exemple). Le premier qui me vient à l'esprit est logwatch mais il y en a d'autres.
Pour réagir en « temps réel » tu peux soit le faire toi même avec tail | grep par exemple. Alternativement il doit exister des trucs tout fait pour ça mais sans chercher je vois pas.
Une autre méthode pour remonter ces erreurs en temps réel est d'intercepter directement l'appel système qui pose problème soit via auditd (mais ça ne résoud pas le problème d'effectuer une action une fois que c'est remonté dans les logs), soit via SystemTap qui permet d'effectuer des actions arbitraires lorsqu'un événement spécifique (qui, du coup, n'est pas forcément un appel système) se produit.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# fail2ban
Posté par Tonton Benoit . Évalué à 4.
C'est surement un peu overkill, mais fail2ban fonctionne de cette façon (il lis un log et effectue une action quand un pattern est trouvé), en plus il est hautement configurable, y'a donc surement moyen…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.