Aller au contenu

Graylog

Le serveur de logs et le cluster de recherche derrière lui : si Graylog traite les messages, combien attendent dans son journal, à quel point ses buffers sont pleins, ce qui entre et ce qui sort, la santé d’OpenSearch ou Elasticsearch telle que Graylog la voit, les inputs qui n’ont pas démarré, et les messages qui n’ont pas pu être indexés.

Du serveur DumbMonit (ou de son agent relais) vers l’équipement :

PortProtocoleUsage
9000TCPAPI REST de Graylog (par défaut)

DumbMonit lit l’API REST de Graylog avec un utilisateur dédié portant le rôle intégré Reader. Il ne cherche jamais de messages, ne démarre ni n’arrête jamais un input et n’acquitte jamais une notification.

La panne à surveiller : le cluster de recherche qui ne tient plus le rythme. Graylog continue d’accepter les messages et les écrit sur son journal disque ; l’interface web s’ouvre, les recherches fonctionnent, et montrent simplement rien de récent. Le journal grandit jusqu’à être plein, puis les messages sont abandonnés. Le retard du journal, la santé du cluster de recherche et les échecs d’indexation le disent bien avant.

Toutes les métriques sont préfixées dumbmonit_graylog_. Le journal, les buffers et le débit sont ceux du nœud auquel DumbMonit parle : dans un cluster Graylog, ajoutez chaque nœud comme sa propre surveillance.

MétriqueQuoiLabels
processing1 tant que le nœud traite des messages, 0 quand le traitement est en pause
running, lb_alivele cycle de vie du nœud est running ; il se rapporte vivant aux répartiteurs de charge
version_infovaleur 1version
journal_uncommitted_entriesmessages écrits dans le journal et pas encore traités
journal_size_bytes, journal_size_limit_bytes, journal_used_percent
journal_append_per_second, journal_read_per_second
buffer_used_percentà quel point les buffers d’entrée, de traitement et de sortie sont pleinsbuffer
messages_in_total, messages_out_totalmessages reçus, et écrits vers le cluster de recherche
indexer_statussanté du cluster de recherche : 0 vert, 1 jaune, 2 rouge, 3 inaccessible depuis Graylog
indexer_shardsshards par état : active, initializing, relocating, unassignedstate
inputs_running, inputs_failedinputs sur ce nœud
input_failedvaleur 1 par input qui n’a pas démarréinput (son titre)
output_failures_total, processing_failures_total, invalid_timestamps_totalécritures vers le cluster de recherche en échec, messages dont le traitement ou l’indexation a échoué, messages avec un horodatage invalide
notifications, notifications_urgent, notificationpropres notifications de Graylog (permission optionnelle, voir ci-dessous)type, severity
cluster_nodesnœuds dans le cluster Graylog
scrape_errorsappels qui ont échoué à la dernière sonde

Le cluster de recherche est lu via Graylog, une surveillance OpenSearch ou Elasticsearch séparé n’est donc pas nécessaire pour savoir s’il est vert ; quand Graylog ne peut pas l’atteindre du tout, indexer_status lit 3.

Les règles intégrées qui s’appliquent : Graylog ne traite pas, cluster de recherche Graylog en panne, cluster de recherche Graylog jaune, journal Graylog qui se remplit, input Graylog en échec, échecs d’indexation Graylog, plus Surveillance inaccessible.

Le panneau au-dessus des graphiques lit ce que la sonde a stocké ; ouvrir la page n’interroge jamais Graylog. Il dit ce qui ne va pas en une phrase (traitement, cluster de recherche, retard du journal, inputs en échec par nom, échecs d’indexation, notifications urgentes), puis les messages entrants et sortants par seconde, le retard du journal et le nombre de nœuds, puis les buffers, les shards par état et les propres notifications de Graylog.

Créer un utilisateur et un jeton en lecture seule dans Graylog

Section intitulée « Créer un utilisateur et un jeton en lecture seule dans Graylog »
  1. Ouvrez System → Users and Teams → Create user, nommez-le comme suit, donnez-lui un mot de passe long et aléatoire et attribuez-lui uniquement le rôle Reader.

    dumbmonit
  2. Ouvrez la page Edit tokens de cet utilisateur, créez un jeton nommé d’après DumbMonit et copiez-le : Graylog ne le montre qu’une fois.

  3. Facultatif, pour les notifications propres à Graylog : avec un compte qui peut gérer les rôles, créez un rôle ne contenant que notifications:read et donnez-le à l’utilisateur dumbmonit.

    curl -u YOUR_USER -H 'X-Requested-By: cli' -H 'Content-Type: application/json' -X POST https://graylog.lan/api/roles -d '{"name":"DumbMonit Notifications","description":"Read system notifications","permissions":["notifications:read"],"read_only":false}'
    curl -u YOUR_USER -H 'X-Requested-By: cli' -X PUT 'https://graylog.lan/api/roles/DumbMonit%20Notifications/members/dumbmonit'
  4. Dans DumbMonit, saisissez l’adresse du nœud Graylog (par exemple graylog.lan, port 9000) et collez le jeton. Dans un cluster, ajoutez chaque nœud.

  • Reader (rôle intégré) — État du nœud, journal, tampons, débit, entrées, santé du cluster de recherche
  • notifications:read — Facultatif : les notifications propres à Graylog

Documentation du fournisseur : Manage users in Graylog.

Reader peut lire l’état du nœud, le journal, les tampons, le débit, les entrées et la santé du cluster de recherche, et aucun message tant qu’aucun flux n’est partagé avec lui. notifications:read sert aux notifications propres à Graylog (une entrée qui n’a pas démarré, des seuils de disque, un journal presque plein) ; aucun rôle intégré ne l’accorde seul. Sans elle, les notifications sont ignorées et rien d’autre ne change. DumbMonit ne fait que lire : il ne cherche jamais de messages, ne démarre ni n’arrête jamais une entrée et n’acquitte jamais une notification.

Ce que couvre chaque permission de Reader : system:read l’état du nœud et les nœuds du cluster, journal:read le journal, metrics:read et throughput:read le débit et les buffers, inputs:read les inputs, indexercluster:read la santé du cluster de recherche. Le rôle Reader porte aussi messages:read, qui ne lui laisse lire des messages que depuis des flux explicitement partagés avec lui : n’en partagez aucun. Les détails d’échec d’indexation (indices:failures) ne sont pas nécessaires : DumbMonit compte les échecs depuis les propres métriques de Graylog.

IdentifiantChamps
Jeton d’accès (recommandé)Un jeton de l’utilisateur dédié. Graylog l’attend en authentification HTTP basique avec le jeton comme nom d’utilisateur et le mot token comme mot de passe ; DumbMonit le fait pour vous.
Nom d’utilisateur / mot de passeL’utilisateur dédié lui-même.

Adresse : un nom d’hôte ou une IP (graylog.lan), host:port, ou une URL complète (https://graylog.lan) ; un /api final est accepté. Options : protocole (HTTP par défaut), port (9000), vérification du certificat et délai de requête (10 s).