Surveillance de la disponibilité toutes les secondes - mauvaise pour le serveur?

11

Je me demande s'il y a des avantages à vérifier si un serveur est UP en faisant une "requête HTTP GET" chaque seconde?

Tout serveur peut-il le gérer?

donald
la source
Une autre option fait le contraire: plutôt que de surveiller le serveur de l'extérieur, surveillez le serveur de l'intérieur, comme avec ru-on.com . Vous installez essentiellement un petit script sur votre serveur qui envoie très souvent un ping à un autre serveur, afin que vous puissiez surveiller votre temps de disponibilité sans compliquer la vie de votre serveur Web.
Maxim Zaslavsky
3
@Maxim, votre suggestion présente plusieurs problèmes. Tout d'abord, il ne vérifie pas que le service HTTP fonctionne sur le serveur. Deuxièmement, il y a le problème de ce qui se passe lorsque le serveur lui-même est en panne. Cela doit encore être surveillé. En outre, le même résultat pourrait être obtenu par un simple wget contre la machine locale.
John Gardeniers

Réponses:

26

"Tout" serveur peut-il le gérer? Probablement.

Devriez-vous le faire? Probablement pas.

Posez-vous quelques questions:

  1. À quelle vitesse serez-vous pour répondre à une panne?
  2. Combien de pages vues recevez-vous normalement par seconde?
  3. Combien d'erreurs consécutives êtes-vous prêt à voir avant de l'appeler "Down" et d'envoyer une alerte?
  4. Avez-vous un SLA avec des clients internes ou externes qui doit être honoré?
  5. Sur la base des questions énumérées ci-dessus, ce qui semble être un temps de surveillance et de réponse raisonnable?

Quand j'ai appris à programmer, j'ai décidé de faire un chronomètre. Quand j'ai finalement obtenu une application fonctionnelle, j'ai remarqué que l'utilisation du processeur sur mon ordinateur portable était à 100% chaque fois que je l'exécutais.

Ma boucle d'exécution n'avait pas de cycle d'attente. Il a juste continué à s'exécuter sur la fonction de temps.

Ce jour-là, j'ai appris une leçon précieuse: une mesure infiniment précise n'existe pas.

Joseph Kern
la source
6

Alors que moi, comme à peu près tout le monde, je m'interroge sur la raison de vouloir surveiller si souvent le côté technique n'est pas un problème. Une demande GET par seconde est absolument insignifiante par rapport à un chargement de page typique.

Votre serveur peut-il le gérer? Nous n'avons rien sur quoi répondre à une telle question, mais si votre serveur a un problème à gérer, je dirais qu'il serait complètement inadéquat pour tout ce qu'il sert.

John Gardeniers
la source
3

Nagios ou munin peuvent probablement gérer l'exécution du test toutes les secondes, mais c'est un peu obsessionnel. Y a-t-il une raison pour laquelle vous devez vérifier si fréquemment? Si votre serveur est instable, vous avez probablement des problèmes plus profonds.

slillibri
la source
1

La plupart des logiciels de surveillance commerciaux offrent un intervalle de 1 ou 5 minutes par défaut. Cela semble être un bon intervalle de vérification.

sapguy
la source
Pingdom, par exemple, vous permet de définir un intervalle, puis lors de la détection de la première panne, augmentez la fréquence à laquelle il envoie une requête ping au serveur pour voir s'il est sauvegardé.
Ankur Banerjee
>, augmentez la fréquence .. => mais le minimum est toujours de 1 min, ou?
sapguy
Sur les comptes gratuits, je pense que le plus bas que Pingdom offre est de 1 minute. Je n'ai pas de compte premium, je ne peux donc pas dire s'ils proposent une option pour des contrôles encore plus fréquents.
Ankur Banerjee du
1

Il n'y a rien de mal à surveiller le serveur toutes les secondes, ce n'est tout simplement pas très efficace, en particulier sur les serveurs à forte charge où une requête Apache peut se bloquer pendant quelques secondes, entraînant la sauvegarde ou l'émission de fausses alertes pour ce moment particulier, mais c'est pas faux'. Les contrôles d'une seconde ne vous permettront pas de répondre plus rapidement, et dans 99,9% de toutes les circonstances, un contrôle de 10 ou 30 secondes est tout aussi important.

Richard
la source
0

Je suis d'accord à 100% avec Joseph ici. Si vous souhaitez toujours effectuer une sorte de surveillance en temps réel, vous pouvez envisager de renifler le journal du serveur Web pour les erreurs de serveur et l'absence de nouvelles entrées dans le journal pendant un certain temps. Cela ne mettra pas de charge sur le serveur, mais déclencher des alertes en fonction de cela est un défi :)

pors
la source
0

Une seconde résolution est vraiment élevée et probablement pas nécessaire. Cependant, je préfère collectd car il a été conçu pour une résolution beaucoup plus élevée (jamais 10 secondes) que d'autres outils OSS comme munin (5 minutes).

n8whnp
la source