如何描述显示 systemd 单位的 grafana 仪表板

问题描述 投票:0回答:3

我正在运行 node_exporter 并想创建一个 grafana 仪表板,但我不确定要搜索文档的哪些概念。我想显示一个主机列表,其中包含一个 systemd 单元列表,其状态由标签“活动”、“非活动”或“失败”表示,颜色为绿色、灰色和红色。

  • 我应该搜索哪些概念?
  • 如何描述我正在尝试做的事情?

我一直在寻找使用 systemd 管理 grafana 或 prometheus 的方法,例如 here 或者我发现了一个没有代码存储库链接的旧仪表板 here

这是我要构建的图片:

这是我从 node_exporter 获得的与给定服务相关的指标类型的示例,在本例中为 foo.service:

vagrant@srv0:~$ curl -s localhost:9100/metrics | grep systemd | grep foo.servicenode_systemd_unit_state{name="foo.service",state="activating",type="simple"} 0
node_systemd_unit_state{name="foo.service",state="active",type="simple"} 1
node_systemd_unit_state{name="foo.service",state="deactivating",type="simple"} 0
node_systemd_unit_state{name="foo.service",state="failed",type="simple"} 0
node_systemd_unit_state{name="foo.service",state="inactive",type="simple"} 0
grafana prometheus systemd
3个回答
1
投票

Status Panel 插件可能会帮助您实现您想要的。我正在使用它(连同 Discrete,用于警报历史记录)来显示每个环境(生产、阶段和测试)中所有服务的状态。

我有 2 个模板变量,

$environment
$service
,我正在重复一行,其中包含一个离散面板和每个
$environment
值的多个状态面板。在行内,我为每个值重复状态面板
$service
。在状态面板本身,颜色取决于是否有警报触发(类似于您的状态集),我还列出了一些指标,例如 QPS 和中值延迟。


0
投票

如您的示例所示,节点导出器为 {name,state,instance}(和其他字段)的每个组合创建一个唯一的时间序列。

使用最新版本的 Grafana (8.4),使用“表格”面板类型和过滤很容易完成接近您的目标的事情。要创建仅包含失败作业的表,请使用像

node_systemd_unit_state{state="failed"}
这样的“即时”查询。添加转换以按值过滤以大于或等于
1
,使用字段覆盖隐藏您不关心的任何列,然后为
state
列设置“单元格显示模式”覆盖.这将导致失败的单元列表。

要显示所有单元,即使是那些没有失败的单元,您可能需要进行一些其他类型的转换……也许是“分组依据”或“减少”?我不确定。


0
投票

这就是我如何在没有插件的情况下实现类似的东西(Grafana v9.4.3):

  • 将查询设置为当前等于 1 的系统状态(您可以在查询中添加任意数量的服务):
node_systemd_unit_state{name=~"nginx.service|fail2ban.service|meilisearch.service|node_exporter.service|promtail.service",instance="$source"} == 1
  • 在查询选项中,将格式设置为
    Table
    并键入
    Instant
    .
  • 这将显示很多我们不需要的列,因此使用字段覆盖来隐藏您不需要的任何列。除了
    name
    status
    之外,我隐藏了所有内容。我还为
    name
    列添加了覆盖以将类型更改为
    auto
    所以它会保持默认颜色。
  • 使用值映射来添加颜色。

最终结果:

© www.soinside.com 2019 - 2024. All rights reserved.