Ceph Pacific: 利用 CLI 从 Prometheus 获取数据

Paul Cuzner

Ceph 现在直接支持 Prometheus 监控和告警环境,通过 mgr/prometheus 模块。事实上,从 Ceph Octopus 版本开始,ceph orchestrator 就可以为您安装 Prometheus 和 Alertmanager,处理所有部署配置任务,包括 ceph-dashboard 集成。这本身就很酷。

通常,可视化数据由 ceph-dashboard、Grafana 甚至 Prometheus 服务器 UI 本身等 GUI 前端完成。但是,mgr/prometheus 模块提供的所有数据都可以通过简单的 GET 请求供任何应用程序使用。现在,并非每个 Ceph 用户都是 GUI 用户,所以我开始考虑一个 CLI 用户可以使用的工具,该工具使用相同的数据。毕竟,mgr 模块已经为 Prometheus “组合”了数据,这使其成为“免费”的,并且访问它也很简单!

这是 cmon 工具背后的想法和动机。在进一步介绍之前,首先声明:'cmon' 不是官方 Ceph 项目,它是一个概念验证,旨在了解该想法是否对更广泛的用户社区有意义。

话虽如此,让我们看看 'cmon' 提供了什么;

  • 涵盖库存、容量、性能和健康状况的核心面板集
  • 可以通过命令键在界面内打开/关闭的可选面板;
    • 使用从 Prometheus 服务器(i)提取的数据的 IO 负载图(IOPS 和吞吐量)
    • 由 Prometheus 告警规则触发的活动告警 (a)
    • 池配置和性能 (p)
    • RBD 镜像性能,类似于 rbd-top (r)
    • RGW 性能 (g)
    • Ceph CLI 集成 (c) - 目前在 devel 分支上
  • 集成帮助
  • 基于容器的部署 - 无需安装,没有依赖项!
  • 15 秒刷新间隔

我可以深入探讨这些选项中的每一个,但也许您更愿意观看视频!

  重用 mgr/prometheus 提供的有一些好处;

  1. cmon 没有 Ceph 负担 或在 Ceph 堆栈中引入任何新组件。
  2. mgr/prometheus 提供的的数据格式维护和控制得很好。事实上,cmon 不仅适用于 Ceph Pacific 集群,也适用于 Octopus 和 Nautilus 版本!
  3. cmon 可以轻松容器化,并且至少从理论上讲,可以针对任何 Ceph Nautilus 或更高版本的集群工作,无论操作系统或 Ceph 发行版类型如何

有兴趣?测试 cmon 的最简单方法是获取容器,并定义一个别名来像这样运行它;

docker pull docker.io/pcuzner/cmon:latest
alias cmon="podman run --interactive --tty --net=host -e TERM \
  -e CEPH_URL=http://192.168.122.92:9283/metrics \
  -e PROMETHEUS_URL=http://192.168.122.92:9095 \
  --entrypoint='/cmon.py' docker.io/pcuzner/cmon:latest"

请记住更改 CEPH_URL 和 PROMETHEUS_URL 参数以匹配您的环境。此示例使用的是“最新”稳定代码 - 在撰写本文时(2021 年 9 月),它将不包括 CLI 集成。如果您想尝试它,您需要为 cmon 提供一些 Ceph 凭据。

  1. 创建一个包含您的密钥环和 conf 的目录,如下所示;
[root@mydesktop ~]# tree etc_ceph
etc_ceph
├── ceph.client.admin.keyring
└── ceph.conf

  1. 使用将目录绑定到卷的别名,并使用 devel 镜像标签来获取正确的 cmon 镜像。例如:
docker pull docker.io/pcuzner/cmon:devel
alias cmon='podman run --interactive --tty --net=host -e TERM \
  -e CEPH_URL=http://192.168.122.92:9283/metrics \
  -e PROMETHEUS_URL=http://192.168.122.92:9095 \
  -v /root/etc_ceph:/etc/ceph:ro,z \
  --entrypoint='\''/cmon.py'\'' docker.io/pcuzner/cmon:devel'

无论哪种方式,一旦定义了别名,您就可以运行 'cmon',应该会显示核心面板视图。显示每 15 秒刷新一次(在右下角有一个倒计时指示器)。按 'h',会将帮助页面覆盖在显示上,告诉您有关切换可选面板的命令键。

您甚至可以创建多个指向不同 Ceph 集群的别名,并且由于可选面板是 cmon 的参数,您可以根据集群的角色定制显示...例如 RGW 或 rbd。

如果您是 Ceph 用户,并且更喜欢使用 CLI,那么像这样的工具可能会有所帮助。但是,不要指望它会在下一个 Ceph 版本中神奇地出现。请记住 - 目前,cmon 是一个概念验证,旨在衡量社区兴趣。如果您认为此实用程序将是您 Ceph “工具箱”中的一个有用的补充,请前往项目的 仓库。您可以简单地 ⭐ 该项目,或在 讨论中评论/投票。