Ceph Dashboard 中的集中式日志记录

免责声明:本文将 Loki 誉为英雄。
我们试图解决什么? ¶
Ceph 作为分布式系统,通常会生成大量的日志。这些日志可以来自 MON、MGR、OSD 或 Ceph 的任何其他客户端。
在大多数情况下,Ceph 都能很好地处理其问题。自愈是 Ceph 的一个有趣特性。除此之外,Ceph Dashboard 有助于集群的可观察性。它会立即提醒用户需要关注的问题,并利用 alertmanager。我们还有效地利用像 grafana 和 prometheus 这样的监控工具,以易于理解的图表展示所有与集群相关的指标。
最后,我们还有日志。如果我们发现集群中发生了一些不寻常的事情,或者如果你喜欢阅读,它是一个有趣的地方 😜。无论如何,我们希望能够查看来自不同客户端的日志,而这些日志无法从单个来源获取。正如其设计的那样,一切都是分布式的。
Loki 登场。 ¶
幸运的是,我们处理的 Loki 不是阿斯加德神(想象一下混乱)。我们的 Loki 是一个日志聚合系统,旨在存储和查询日志。事实上,它不仅仅是 Loki;它是 Grafana Loki。
我们还有 Promtail。

Promtail 是一个代理,用于将本地日志的内容发送到私有的 Grafana Loki 实例。
让我们简化一下。我们引入了一个名为集中式日志记录的功能,我们可以在 Ceph Dashboard 的特定部分查看来自所有客户端的日志,所有日志都在一个地方。很酷,不是吗?
如何设置? ¶
首先,我们必须确保 Grafana 已在我们的集群上配置。
然后,转到 集群 > 服务 页面,并 创建 两个服务 - Loki 和 Promtail。

如果成功,我们可以看到所有守护进程都在 运行 中。
Loki 守护进程状态 ¶

Promtail 守护进程状态 ¶

现在我们需要启用日志记录到文件。为此,我们可以转到 集群 > 配置,搜索 log_to_file 和 mon_cluster_log_to_file,在搜索区域

只需选择并 编辑 该选项。并将 global 的值设置为 true

我们还需要对 mon_cluster_log_to_file 执行相同的操作。

如果找不到你搜索的项目,则可以 清除过滤器,它会带你到你搜索的配置选项。 
查看日志 ¶
转到 集群 > 日志 并转到 守护进程日志 选项卡。这就是我们找到集中式日志的地方。
如果你看到如下图像的屏幕,则需要登录 Grafana 并重新加载页面。

如果你已登录,则可以直接查看日志视图。

我们可以使用日志浏览器查看日志。

选择文件并点击 显示日志 后,它将显示该文件的整个日志。

实时监控日志 ¶
Loki 中有一个选项可以实时查看日志。该选项称为 Live,当我们使其处于 Live 状态时,我们可以立即实时监控日志。

此外,如果我们想查看调试日志,则需要使用以下命令在 CLI 中显式启用调试日志:
ceph config set mgr mgr/cephadm/log_to_cluster_level debug
此功能在最新的 quincy (v17.2.z) 版本中可用。
要了解有关集中式日志记录的更多信息,请查看 cephadm 文档。
查看仪表板文档,了解有关 配置 的更多信息。
如果你有任何问题,请通过 ceph-users@ceph.io 或在 OFTC 频道 #ceph-dashboard 上与我们联系。