Logcli-loki 命令行工具如何使用?

2026-04-18 00:321阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计837个文字,预计阅读时间需要4分钟。

Logcli-loki 命令行工具如何使用?

logcli 是 Loki 的命令行工具,通过 logcli 可以在命令行中方便地进行日志查询与导出。安装步骤如下:安装 + 进入 /tmp 目录 + 下载 + 解压:wget https://github.com/grafana/loki/releases/download/v2.5.0/logcli-linux-amd64.zip + unzip logcli-linux-amd64.zip

logcli 一个loki 的命令行工具, 通过logcli 可以在命令行很好的进行日志查询与导出 安装

cd /tmp/ && \ wget github.com/grafana/loki/releases/download/v2.5.0/logcli-linux-amd64.zip && \ unzip logcli-linux-amd64.zip && \ mv logcli-linux-amd64 /usr/local/bin/ && \ ln -sv /usr/local/bin/logcli-linux-amd64 /usr/local/bin/logcli && \ rm -f ./logcli-linux-amd64.zip 配置

echo 'export LOKI_ADDR=localhost:3100' >> /etc/profile && \ source /etc/profile

如果loki 为非本机地址, 请将localhost 替换为对应ip 地址

执行命令logcli labels 出现类似以下内容时,表示配置成功

logcli labels localhost:3100/loki/api/v1/labels?end=1656311640897253757&start=1656308040897253757 __name__ 用法 query

query 中查询表达式可以使用任意logql 进行查询, 以下仅以{app="foo"} 做示例说明, 更多logql 语法请查询官方文档 LogQL

1. 查询app 为foo, 10条日志

logcli query '{app="foo"}' --limit 1 -o raw # --limit 限制日志条数, 默认30 # -o 输出格式, 有三种default, jsonl, raw. raw 相比default 会抑制日志标签与时间戳的输出

2. 查询app 为foo, 10条日志,每批次限制5条

logcli query '{app="foo"}' --limit 10 -o raw --batch 5 # --batch 限制每批次请求行数,范围 2-5000

3. 查询app 为foo, 时间为2022-06-26 09:00:00 到 2022-06-26 18:00:00 的日志

logcli query '{app="foo"}' -o raw --from="2022-06-26T01:00:00Z" --to="2022-06-26T10:00:00Z" --timezone=UTC # --from 日志起始时间 # --to 日志截止时间 # --timezone 时区, 二选一 Local 或UTC, 建议使用UTC 时区

有时可能会遇到这种情况-> 服务foo 在过去某一段时间明明有日志, 但是通过 logcli query '{app="foo"}' -o raw 未查询到结果, 这是因为 logcli 默认只在过去1小时的区间里查询日志(--since=1h), 如果没有查询到日志,则会返回空

4. 查询app 为foo, 过去8个小时最新的1000 条日志

logcli query '{app="foo"}' -o raw --limit 1000 --since=8h

5. 实时查询app 为iam 的日志

Logcli-loki 命令行工具如何使用?

logcli query '{app="foo"}' --limit 10 -o raw -t # -t 实时跟踪日志 labels

1. 查询loki 所有的标签

logcli labels -q # 同query 的时间区间,默认 --since=1h

2. 查询app 标签所有的值

logcli labels app series

series 命令将根据提供的标签匹配器 返回时间窗口内的所有日志流

1. 获取所有标签的摘要信息

logcli series '{}' -q --analyze-labels # 同query 的时间区间,默认 --since=1h

2. 获取app 为foo 的日志流信息

logcli series '{app="foo"}' -q


参考: grafana.com/docs/loki/latest/tools/logcli/

本文共计837个文字,预计阅读时间需要4分钟。

Logcli-loki 命令行工具如何使用?

logcli 是 Loki 的命令行工具,通过 logcli 可以在命令行中方便地进行日志查询与导出。安装步骤如下:安装 + 进入 /tmp 目录 + 下载 + 解压:wget https://github.com/grafana/loki/releases/download/v2.5.0/logcli-linux-amd64.zip + unzip logcli-linux-amd64.zip

logcli 一个loki 的命令行工具, 通过logcli 可以在命令行很好的进行日志查询与导出 安装

cd /tmp/ && \ wget github.com/grafana/loki/releases/download/v2.5.0/logcli-linux-amd64.zip && \ unzip logcli-linux-amd64.zip && \ mv logcli-linux-amd64 /usr/local/bin/ && \ ln -sv /usr/local/bin/logcli-linux-amd64 /usr/local/bin/logcli && \ rm -f ./logcli-linux-amd64.zip 配置

echo 'export LOKI_ADDR=localhost:3100' >> /etc/profile && \ source /etc/profile

如果loki 为非本机地址, 请将localhost 替换为对应ip 地址

执行命令logcli labels 出现类似以下内容时,表示配置成功

logcli labels localhost:3100/loki/api/v1/labels?end=1656311640897253757&start=1656308040897253757 __name__ 用法 query

query 中查询表达式可以使用任意logql 进行查询, 以下仅以{app="foo"} 做示例说明, 更多logql 语法请查询官方文档 LogQL

1. 查询app 为foo, 10条日志

logcli query '{app="foo"}' --limit 1 -o raw # --limit 限制日志条数, 默认30 # -o 输出格式, 有三种default, jsonl, raw. raw 相比default 会抑制日志标签与时间戳的输出

2. 查询app 为foo, 10条日志,每批次限制5条

logcli query '{app="foo"}' --limit 10 -o raw --batch 5 # --batch 限制每批次请求行数,范围 2-5000

3. 查询app 为foo, 时间为2022-06-26 09:00:00 到 2022-06-26 18:00:00 的日志

logcli query '{app="foo"}' -o raw --from="2022-06-26T01:00:00Z" --to="2022-06-26T10:00:00Z" --timezone=UTC # --from 日志起始时间 # --to 日志截止时间 # --timezone 时区, 二选一 Local 或UTC, 建议使用UTC 时区

有时可能会遇到这种情况-> 服务foo 在过去某一段时间明明有日志, 但是通过 logcli query '{app="foo"}' -o raw 未查询到结果, 这是因为 logcli 默认只在过去1小时的区间里查询日志(--since=1h), 如果没有查询到日志,则会返回空

4. 查询app 为foo, 过去8个小时最新的1000 条日志

logcli query '{app="foo"}' -o raw --limit 1000 --since=8h

5. 实时查询app 为iam 的日志

Logcli-loki 命令行工具如何使用?

logcli query '{app="foo"}' --limit 10 -o raw -t # -t 实时跟踪日志 labels

1. 查询loki 所有的标签

logcli labels -q # 同query 的时间区间,默认 --since=1h

2. 查询app 标签所有的值

logcli labels app series

series 命令将根据提供的标签匹配器 返回时间窗口内的所有日志流

1. 获取所有标签的摘要信息

logcli series '{}' -q --analyze-labels # 同query 的时间区间,默认 --since=1h

2. 获取app 为foo 的日志流信息

logcli series '{app="foo"}' -q


参考: grafana.com/docs/loki/latest/tools/logcli/