For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/manage-and-operate/observability/logs-data-platform/bonfire.md.

CLI - bonfire, interroger Graylog depuis une ligne de commande

Voir en Markdown

Interrogez vos recherches Graylog depuis une ligne de commande avec Bonfire.

Objectif

Bonfire est une interface open source en ligne de commande permettant d'interroger les recherches Graylog via l'API REST. Elle reproduit l'expérience de la commande tail sur un fichier local et ajoute d'autres options utiles.

Ce guide vous aidera Ă  interroger vos logs depuis l'outil en ligne de commande Bonfire.

Dans tous ces exemples, vous devrez remplacer <your_cluster>.logs.ovh.com par l'adresse de l'endpoint qui vous a Ă©tĂ© attribuĂ©. Cette information figure dans l'e-mail que vous avez reçu lors de la crĂ©ation de votre compte Logs Data Platform, ou sur la page Home du manager. De mĂȘme, vous devrez remplacer logs-username par l'utilisateur que vous utilisez pour vous connecter Ă  Graylog.

Prérequis

En pratique

Installation

$ pip install --user bonfire

tail -f

$ bonfire -h "<your_cluster>.logs.ovh.com" --port 443 --endpoint "/api" -u "<your_ldp_username>" --tls -f
Enter password for logs-username@<your_cluster>.logs.ovh.com/api:443:
Please select a stream to query:
0: Stream 'My stream' (id: 55210a04e4b09e9fa4fa0209)
Enter stream number: [0]:

Gestion du mot de passe

Vous pouvez éviter de saisir votre mot de passe en utilisant le commutateur -k, qui stocke votre mot de passe à l'aide du keyring Python ; celui-ci sera enregistré dans le trousseau de votre environnement de bureau.

Fichier de configuration

Pour Ă©viter de rĂ©pĂ©ter les arguments en ligne de commande, vous pouvez crĂ©er un fichier de configuration (./bonfire.cfg ou ~/.bonfire.cfg) indiquant oĂč vous souhaitez vous connecter :

[node:default]
host=`<your_cluster>`.logs.ovh.com
endpoint=/api
username=`<your_ldp_username>`
tls=True
port=443
default_stream=`<your_graylog_stream_id>`

Vous pouvez définir d'autres nodes nommés et les appeler avec le commutateur --node.

[node:sadev]
host=`<your_cluster>`.logs.ovh.com
enpoint=/api
username=`<your_ldp_username>`
tls=True
port=443
default_stream=`<your_graylog_stream_id>`

Vous pouvez maintenant appeler le node nommé sadev :

$ bonfire --node sadev -k
 NOTICE  [2015-07-27 12:11:38.13] [2015-07-27 10:11:37.137253Z][9a9b9759-60f5-4609-88c2-e809b5a361a8] search app.preprod.containers-ovh.io # source:172.17.42.1; facility:gelf-rb; line:; module:
 NOTICE  [2015-07-27 12:11:38.14] [2015-07-27 10:11:37.137610Z][9a9b9759-60f5-4609-88c2-e809b5a361a8] bash: dig: command not found # source:172.17.42.1; facility:gelf-rb; line:; module:
 NOTICE  [2015-07-27 12:11:38.14] [2015-07-27 10:11:37.173477Z][9a9b9759-60f5-4609-88c2-e809b5a361a8] 2015-07-27 10:11:37 URL:http://proof.ovh.net/ [2272/2272] -> "/dev/null" [1] # source:172.17.42.1; facility:gelf-rb; line:; module:
 NOTICE  [2015-07-27 12:11:38.14] [2015-07-27 10:11:37.230451Z][08bce56b-9e85-4daa-9c8d-5b39c0d75d69] nameserver 213.186.33.99 # source:172.17.42.1; facility:gelf-rb; line:; module:
 NOTICE  [2015-07-27 12:11:38.14] [2015-07-27 10:11:37.230451Z][08bce56b-9e85-4daa-9c8d-5b39c0d75d69] search app.preprod.containers-ovh.io # source:172.17.42.1; facility:gelf-rb; line:; module:
 NOTICE  [2015-07-27 12:11:38.14] [2015-07-27 10:11:37.230973Z][08bce56b-9e85-4daa-9c8d-5b39c0d75d69] bash: dig: command not found # source:172.17.42.1; facility:gelf-rb; line:; module:
 INFO    [2015-07-27 12:11:38.38] becfb0408cde # source:%{host}; facility:gelf-rb; line:; module:
 INFO    [2015-07-27 12:11:42.29] 58d24d1cb8e3 # source:%{host}; facility:gelf-rb; line:; module:
 INFO    [2015-07-27 12:11:43.38] becfb0408cde # source:%{host}; facility:gelf-rb; line:; module:
 WARNING [2015-07-27 12:11:44.66] libceph: mon0 10.99.176.46:6789 socket closed (con state CONNECTING) # source:172.17.42.1; facility:gelf-rb; line:; module:

Notez que le listing ne contiendra que vos propres logs.

RequĂȘtes enregistrĂ©es

Vous pouvez dĂ©finir des requĂȘtes nommĂ©es et les appeler depuis la ligne de commande.

Vous pouvez commencer par indexer quelques logs Ă  l'aide de la commande curl suivante. N'oubliez pas de remplacer <YOUR-WRITE-TOKEN> par le X-OVH-TOKEN de votre flux et <YOUR-CLUSTER> par l'adresse de votre cluster.

$ ubuntu@server:~$ echo -e '{"version":"1.1",  "_X-OVH-TOKEN":"`<YOUR-WRITE-TOKEN>`", "host": "example.org", "short_message": "A short message that helps you identify what is going on", "full_message": "Backtrace here\n\nmore stuff", "level": 1, "_user_id": 9001, "_some_info": "foo", "some_metric_num": 42.0 }\0' | \
openssl s_client -quiet -no_ign_eof -connect `<YOUR-CLUSTER>`.logs.ovh.com:12202

Répétez cette commande plusieurs fois pour générer plusieurs logs.

Ajoutez ce qui suit à votre fichier de configuration .bonfire.cfg précédent :

[query:ldp]
query=user_id:9001 AND some_metric_num:>40
limit=20

Voici comment appeler bonfire avec la requĂȘte ldp.

$ bonfire :ldp
Enter password for `<USERNAME>`@`<YOUR-CLUSTER>`.logs.ovh.com:443/api:
1[2024-08-05 18:56:40.81] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:42.30] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:42.69] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:43.62] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:44.69] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:44.67] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:
1[2024-08-05 18:56:45.70] A short message that helps you identify what is going on # source:example.org; facility:; line:; module:

RequĂȘtes paramĂ©triques

Vous pouvez Ă©galement dĂ©finir des requĂȘtes avec des paramĂštres et fournir ces paramĂštres depuis la ligne de commande.

Vous pouvez commencer par indexer quelques logs Ă  l'aide de la commande curl suivante. N'oubliez pas de remplacer <YOUR-WRITE-TOKEN> par le X-OVH-TOKEN de votre flux et <YOUR-CLUSTER> par l'adresse de votre cluster.

$ ubuntu@server:~$ echo -e '{"version":"1.1",  "_X-OVH-TOKEN":"`<YOUR-WRITE-TOKEN>`", "host": "example.org", "short_message": "A short message that helps you identify what is going on", "full_message": "Backtrace here\n\nmore stuff", "level": 1, "_user_id": 9001, "_some_info": "foo", "some_metric_num": 42.0 }\0' | \
openssl s_client -quiet -no_ign_eof -connect `<YOUR-CLUSTER>`.logs.ovh.com:12202

Répétez cette commande plusieurs fois pour générer plusieurs logs.

Si vous souhaitez utiliser une requĂȘte paramĂ©trique user_id pour un champ nommĂ© user_id, vous pouvez utiliser la forme suivante dans votre requĂȘte, au sein de votre .bonfire.cfg :

[query:user_id]
query=user_id:"${user_id}"
fields=short_message,user_id

Appel

$ bonfire :user_id -x user_id=9001
Enter password for `<USERNAME>`@`<YOUR-CLUSTER>`.logs.ovh.com:443/api:
1[2024-08-05 19:22:13.56] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:13.94] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:14.29] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:14.65] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:15.70] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:16.29] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:16.74] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:17.12] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:17.56] A short message that helps you identify what is going on # short_message:; user_id:9001
1[2024-08-05 19:22:17.93] A short message that helps you identify what is going on # short_message:; user_id:9001

Aller plus loin

Cette page vous a-t-elle aidé ?