通过 traceid、关键词、pod、namespace、标签或时间范围查询 Loki 日志,通过API 调试和分析 Kubernetes 应用问题。
Loki Log 查询程序使用捆绑的脚本.是一项面向实际任务的技能,主要用于Two Access Modes.;Direct URL Access( 建议). 当 Loki 通过网络( 云服务、 远程服务器等) 访问时使用。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用内置脚本从 Grafana Loki 查询日志。
适用于 Loki 可通过网络访问的场景(例如云服务、远程服务器等):
# 使用远程 Loki URL
python scripts/query_loki.py
--loki-url "https://loki.example.com:3100"
--query "{namespace=\"default\"}"
--start "now-1h"
--limit 50
适用于仅能通过 kubectl 访问 Loki 的场景:
# 终端 1:为 Loki 建立端口转发
kubectl port-forward -n prometheus svc/loki 3100:3100
# 终端 2:查询日志
python scripts/query_loki.py
--loki-url "http://localhost:3100"
--query "{namespace=\"default\"}"
或者使用内联方式结合 kubectl exec 进行端口转发:
kubectl exec -n prometheus-- curl -s "http://localhost:3100/loki/api/v1/query_range?query={namespace=\"default\"}&limit=50"
使用 scripts/query_loki.py 查询日志:
python scripts/query_loki.py
--loki-url "http://localhost:3100"
--query '{namespace="default"}'
--start "now-1h"
--end "now"
--limit 100
默认值:若未指定 --loki-url,则默认使用 http://localhost:3100。
{namespace=""}
{namespace="", pod=""}
{namespace="", app=""}
{namespace=""} |= "ERROR"
{namespace=""} |= "traceid="
{namespace=""} |= "Exception"
now-1hnow-30m2026-03-27T10:00:00Z 至 2026-03-27T11:00:00Zloki-url:Loki API 端点(默认值:http://localhost:3100)query:LogQL 查询字符串(必需)start:起始时间(ISO 8601 格式或相对时间表达式如 now-1h,默认值:now-1h)end:结束时间(ISO 8601 格式或相对时间表达式如 now,默认值:now)limit:最大返回结果数(默认值:100)direction:查询方向,可选 "forward" 或 "backward"(默认值:backward)--json:以原始 JSON 格式输出,而非格式化文本返回格式化的日志条目,每条记录包含时间戳和日志内容。
python scripts/query_loki.py --query '{namespace="production"} |= "ERROR"'
python scripts/query_loki.py --query '{namespace="default"} |= "traceid=abc123"'
python scripts/query_loki.py --query '{namespace="default",pod="my-app-0"}' --json
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章