Ceph Dashboard 中的集中式日志记录

Nizamudeen A

免责声明:本文将 Loki 誉为英雄。

我们试图解决什么?

Ceph 作为分布式系统,通常会生成大量的日志。这些日志可以来自 MON、MGR、OSD 或 Ceph 的任何其他客户端。

在大多数情况下,Ceph 都能很好地处理其问题。自愈是 Ceph 的一个有趣特性。除此之外,Ceph Dashboard 有助于集群的可观察性。它会立即提醒用户需要关注的问题,并利用 alertmanager。我们还有效地利用像 grafana 和 prometheus 这样的监控工具,以易于理解的图表展示所有与集群相关的指标。

最后,我们还有日志。如果我们发现集群中发生了一些不寻常的事情,或者如果你喜欢阅读,它是一个有趣的地方 😜。无论如何,我们希望能够查看来自不同客户端的日志,而这些日志无法从单个来源获取。正如其设计的那样,一切都是分布式的。

Loki 登场。

幸运的是,我们处理的 Loki 不是阿斯加德神(想象一下混乱)。我们的 Loki 是一个日志聚合系统,旨在存储和查询日志。事实上,它不仅仅是 Loki;它是 Grafana Loki

我们还有 Promtail。

tony_stark_promtail

Promtail 是一个代理,用于将本地日志的内容发送到私有的 Grafana Loki 实例。

让我们简化一下。我们引入了一个名为集中式日志记录的功能,我们可以在 Ceph Dashboard 的特定部分查看来自所有客户端的日志,所有日志都在一个地方。很酷,不是吗?

如何设置?

首先,我们必须确保 Grafana 已在我们的集群上配置。

然后,转到 集群 > 服务 页面,并 创建 两个服务 - Loki 和 Promtail。

services_list

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

Loki 守护进程状态

loki_daemon

Promtail 守护进程状态

promtail_daemon

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

log_to_file

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

config_form

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

mon_cluster_log_to_file

如果找不到你搜索的项目,则可以 清除过滤器,它会带你到你搜索的配置选项。 filter

查看日志

转到 集群 > 日志 并转到 守护进程日志 选项卡。这就是我们找到集中式日志的地方。

如果你看到如下图像的屏幕,则需要登录 Grafana 并重新加载页面。

not_signed_in_view

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

signed_in_view

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

log_browser

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

showing_logs

实时监控日志

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

live_logs

此外,如果我们想查看调试日志,则需要使用以下命令在 CLI 中显式启用调试日志:

ceph config set mgr mgr/cephadm/log_to_cluster_level debug

此功能在最新的 quincy (v17.2.z) 版本中可用。

要了解有关集中式日志记录的更多信息,请查看 cephadm 文档

查看仪表板文档,了解有关 配置 的更多信息。

如果你有任何问题,请通过 ceph-users@ceph.io 或在 OFTC 频道 #ceph-dashboard 上与我们联系。