8 votes

Comment surveiller au mieux logstash ?

J'ai vu cette question sur la liste de diffusion à plusieurs reprises, mais je n'ai pas eu de réponse satisfaisante.

Comment contrôler au mieux que le pipeline n'est pas bloqué ? Clients -> logstash -> elasticsearch.

Logstash et surtout elasticsearch sont sujets à la privation de ressources. Ils sont tous deux fantastiques pour reprendre là où ils se sont arrêtés, mais comment, exactement, les gens surveillent-ils leurs surveillants ?

Les avis sont les bienvenus.

2voto

Sirex Points 5377

Personnellement, je vérifie que redis est toujours en train de mettre en file d'attente l'hôte central de journalisation, qui est en amont de LS+ES.

c'est-à-dire redis-cli llen logstash est inférieur à un nombre fixe.

Cela n'indique pas forcément que les journaux apparaissent dans redis, mais cela peut aussi être vérifié.

Quelque chose comme vérifier que redis-cli info | grep total_commands_processed continue d'augmenter, peut-être ?

2voto

Ragepotato Points 1060

J'utilise zabbix dans mon environnement, mais je suppose que cette méthode pourrait également fonctionner dans d'autres configurations. J'ai configuré la commande suivante que zabbix est autorisé à utiliser :

UserParameter=elasticsearch.commits,/usr/bin/curl -s 'localhost:9200/_cat/count?v' | /bin/sed -n '2p' | /bin/awk '{print $3}'

Cela renverra le nombre d'enregistrements elasticsearch engagés au total. Je prends cette valeur et la divise par le nombre de secondes écoulées depuis le dernier échantillon (je vérifie toutes les minutes), si ce nombre tombe en dessous d'une limite arbitraire, je peux lancer une alerte. J'utilise également zabbix pour vérifier si le PID de logstash est mort, et je lance une alerte pour cela aussi, et j'exécute la commande suivante :

UserParameter=elasticsearch.health,/usr/bin/curl -s 'http://localhost:9200/_cluster/health?pretty=true' | /bin/sed -n '3p' | /bin/awk -F'\"' '{print $4}' | /bin/sed s/yellow/0/ | /bin/sed s/green/0/ | /bin/sed s/red/1/

Cela retournera 1 si la santé de l'amas est passée au rouge (le jaune et le vert sont corrects), ce qui me permet également de déclencher une alerte.

0voto

dmourati Points 24230

Vérifiez que les journaux par seconde au niveau de votre point final (par exemple, elasticsearch) sont supérieurs à une ligne de base.

En d'autres termes, effectuez une vérification de bout en bout. Si votre résultat final fonctionne correctement, vous savez que toutes les étapes du pipeline fonctionnent correctement.

Si vous rencontrez fréquemment des problèmes, ou si vous avez besoin d'une meilleure introspection, commencez à instrumenter chaque élément du pipeline comme redis, comme suggéré ci-dessus.

0voto

Nous utilisons plusieurs approches :

  1. Monit pour écouter les ports Elastic et Logstash et les redémarrer
  2. Pour les cas où quelque chose de grave s'est produit, et que tout est en place depuis la prospective monit, mais que les journaux ne sont pas consommés/stockés, il y a un simple script, qui vérifie l'index actif toutes les heures et alerte au cas où le nombre de documents n'a pas changé dans la dernière heure.

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