# Comment query les logs dans Loki ? Dans [Grafana](https://grafana.picasoft.net), on va dans la boussole, "Explore", puis tout en haut on sélectionne la *datasource* "**Loki**". On peut sélectionner les labels qui nous intéressent (exemple : `container=blog`, pour voir les logs du conteneur `blog`). Voici [un lien](https://grafana.picasoft.net/explore?orgId=1&left=%7B%22datasource%22%3A%22YY1sian4z%22%2C%22queries%22%3A%5B%7B%22refId%22%3A%22A%22%2C%22editorMode%22%3A%22builder%22%2C%22expr%22%3A%22%7Bcontainer%3D%5C%22blog%5C%22%7D+%7C%3D+%60%60%22%2C%22queryType%22%3A%22range%22%7D%5D%2C%22range%22%3A%7B%22from%22%3A%22now-1h%22%2C%22to%22%3A%22now%22%7D%7D) pour voir les logs du blog de Picasoft sur la dernière heure. Grafana/Loki permet de faire des requêtes bien plus complexes, en faisant de l'agrégation, un peu comme des opérateurs SQL (style `max()`). [Docs officielles](https://grafana.com/docs/loki/latest/logql/) ## Exemples de requêtes ### Récupérer les erreurs du service Mattermost ``` {container="mattermost-app"} |= `error` ``` ### Récupérer les requêtes ayant entraîné une réponse 401 sur Mattermost sur pica02 ``` {container="traefik", host="pica02"} | json status="OriginStatus", dockerService="ServiceName" | status = `401` | dockerService = `mattermost-app@docker` ``` ## Utilisation de LogCLI LogCLI est un petit utilitaire fourni par l'équipe de développement de Loki afin d’interagir avec une infrastructure de logs sous Loki. Il permet d'exécuter des requêtes LogQL et automatise le processus de récupération (gestion de la récupération de l'ensemble des pages sur un intervalle de temps, parallélisation du téléchargement, filtre, ...). [Installation de LogCLI](https://grafana.com/docs/loki/latest/query/logcli/#installation) ### Connexion au serveur de Loki ```bash export LOKI_ADDR=https://loki.picasoft.net export LOKI_USERNAME= export LOKI_PASSWORD= ``` On peut tester la connexion avec : ```bash logcli labels job ``` ### Récupérer l'ensemble des labels disponibles Lors de la construction des requêtes LogQL, on utilise des labels afin de filtrer les logs disponibles. On peut voir les labels présents avec : ```bash logcli labels ``` On peut voir l'ensemble des valeurs disponibles pour un label donné avec : ```bash logcli labels