我们要解决什么问题?
Ceph作为一个分布式系统,通常会产生大量的日志。这些日志可以来自 MON、MGR、OSD 或 Ceph 的任何其他客户端。
在大多数情况下,Ceph 都能很好地处理其问题。自我修复是 Ceph 的特性之一。除此之外,Ceph Dashboard 对集群的可观察性做的也是非常好的。它通过使用 alertmanager 对告警进行通知。
我们还可以利用 grafana 和 prometheus 等监控工具,以直观的图标方式查看 Ceph 集群的健康状态。
最后,如果我们发现集群中发生异常情况,我们可以通过日志获取集群的详细情况,这些日志可以来自 Ceph 集群的每个地方。
Loki
Loki 是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流配置一组标签。
项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs,类似于 Prometheus 的日志系统。
Promtail 是为 Loki 量身定做的。它的主要工作模式是发现存储在磁盘上的日志文件,并将其与一组标签关联的日志文件转发到 Loki。
Promtail 可以为在同一节点上运行的 Kubernetes Pods 做服务发现,作为 Docker 日志驱动,从指定的文件夹中读取日志,并对 systemd 日志不断获取。
下面。我们将在 Ceph Dashboard 上配置日志,将日志转接到 Loki中。
如何配置?
首先,我们必须确保在我们的集群上配置了 Grafana。
然后,转到Cluster > Services页面,并创建两个服务 - Loki 和 Promtail。
如果成功,我们可以看到所有守护进程都在运行。
Loki 守护进程的状态
Promtail 守护进程的状态
现在我们需要启用对文件的日志记录。为此,我们可以转到Cluster > Configurations,在搜索区域中搜索log_to_file和mon_cluster_log_to_file
只需选择并编辑选项。并选择global的值为true
我们也对mon_cluster_log_to_file做同样的配置。
如果您找不到您搜索的项目,那么您可以清除过滤器,它会为您带来您搜索的配置选项。
查看日志
转到Cluster > Logs并转到Daemon Logs选项卡。这就是我们找到集中日志的地方。
如果您看到如下图所示的内容,则必须登录 Grafana 并重新加载页面。
如果您已登录,则可以直接查看日志视图。
我们可以使用日志浏览器来查看日志。
选择文件并点击Show logs后,它将显示该文件的整个日志。
实时监控日志
Loki 中有一个选项可以实时查看日志。该选项称为Live,当我们将其设置为 Live 时,我们可以立即实时监控日志。
此外,如果我们想查看调试日志,则需要使用 CLI 显式启用调试日志
此功能在最新的 quincy (v17.2.z) 版本中可用。
要了解有关集中式日志记录的更多信息,请查看cephadm 文档(https://docs.ceph.com/en/quincy/cephadm/services/monitoring/#cephadm-monitoring-centralized-logs)。
*原文链接:Ceph.io — Centralized Logging on Ceph Dashboard (https://ceph.io/en/news/blog/2022/centralized_logging/)