机器列表(对象列表)数据异常是为什么?

采集器使用 categraf

如果采集器用的 categraf,需要在 conf/config.toml 中打开 heartbeat 的配置。

  1. # 心跳上报(附带资源信息,对象列表中使用)给夜莺v6
  2. # 如果是v5版本,这里不需要保留
  3. [heartbeat]
  4. enable = true
  5. # report os version cpu.util mem.util metadata
  6. url = "http://127.0.0.1:17000/v1/n9e/heartbeat"

上例中,categraf 直接向中心端的 n9e 上报心跳。如果采用边缘机房的部署方式,categraf 也可以向 n9e-edge 心跳。那个 url 配置项就需要改成 n9e-edge 的地址,同时 urlpath 改成 /v1/n9e/edge/heartbeat

使用其他采集器

如果使用其他采集器,比如 grafana-agent、telegraf、datadog-agent 等,正常情况是机器列表会出现机器,但是 cpu、内存 等其他字段都是 unknown。这些采集器和夜莺的协同稍差。

数据流没有经过夜莺

如果数据流压根就没有经过夜莺,那夜莺就没法从监控数据中解析出机器信息,所以对象列表就是空的。

此时不影响核心的告警和看图功能,只是会丧失机器列表的功能(自然无法为机器监控数据打标签、对机器划分业务组控制权限),也没法使用告警自愈的功能。

比如使用 vmagent 作为采集器,采集了数据之后直接推给 VictoriaMetrics,没有流经夜莺;或者直接使用 Prometheus 抓取各类 exporter 的数据,也没有流经夜莺。此时就把夜莺仅作为看图 + 告警引擎就可以了。