使用 LogCLI 查询 Percona Operator 的 MongoDB 日志

使用 LogCLI 查询 Percona Operator 的 MongoDB 日志

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

本文介绍了在Kubernetes中存储、查询、管理和下载数据库日志的方法,通过Grafana Loki和LogCLI实现。详细介绍了配置LogCLI查询MongoDB Pod日志的步骤和命令示例。

🔎

延伸解读

日志轮换与集中收集的必要性

Kubernetes 中的 Pod 日志会根据配置和工作负载在一定时间或大小后被轮换,这意味着历史日志可能丢失。对于数据库调试和故障排除,必须提前将日志收集到集中式存储中。本文介绍的 Grafana Loki 方案正是为了解决这一问题,确保日志可长期查询。

LogCLI 查询的关键配置步骤

使用 LogCLI 查询 MongoDB Pod 日志前,需要先找到 Loki Pod(如 loki-stack-0)和对应的 Service,然后通过 kubectl port-forward 将 Loki 的 3100 端口转发到本地,并设置 LOKI_ADDR 环境变量指向该地址。这些步骤是后续所有查询命令的基础。

灵活运用查询命令定位问题

LogCLI 支持按时间范围、输出格式和标签过滤日志。例如,可以查询特定 Pod 在最近两小时内的日志,或结合管道符搜索包含特定集合和 COLLSCAN 的慢查询记录。根据实际需求调整标签(如 pod 或 container)和过滤条件,能更高效地定位问题。

❓

Q&A

如何在Kubernetes中查询MongoDB Pod的日志?

可以通过配置LogCLI和Grafana Loki来查询MongoDB Pod的日志,首先需要找到相应的Loki Pod,然后使用kubectl命令转发端口,最后使用LogCLI命令查询日志。

LogCLI的基本使用命令是什么?

LogCLI的基本使用命令包括:`logcli query --timezone=UTC --from='<ISODate>' --to='<ISODate>' --output=raw --limit=N '{ pod="<podName>"}'`,可以根据需求调整参数。

为什么需要收集Pod日志?

收集Pod日志是为了进行调试和故障排除,因为Pod日志会根据配置和工作负载在一定时间或大小后被轮换。

如何设置Grafana Loki作为数据源?

设置Grafana Loki作为数据源需要在Percona Monitoring and Management (PMM)中进行配置,具体步骤可以参考相关文档。

如何导出LOKI_ADDR环境变量?

可以通过命令`export LOKI_ADDR=http://localhost:3100`来导出LOKI_ADDR环境变量,以供LogCLI查询日志使用。

如何查询特定MongoDB Pod的COLLSCAN日志?

可以使用命令`logcli query '{pod="<podName>"} |= `foo.demo` |= `COLLSCAN`'`来查询特定MongoDB Pod的COLLSCAN日志。

🏷️

标签

➡️

继续阅读