ccfos / nightingale

An all-in-one observability solution which aims to combine the advantages of Prometheus and Grafana. It manages alert rules and visualizes metrics, logs, traces in a beautiful web UI.
https://flashcat.cloud/docs/
Apache License 2.0
9.55k stars 1.39k forks source link

仪表盘疑似无法正确显示机器标识(hostname)中带有英文括号的机器 #2052

Closed nyable closed 4 weeks ago

nyable commented 1 month ago

Question and Steps to reproduce

问题描述

在hostname中带有英文括号后,该机器能够正常采集、上报信息,并且在N9E的机器列表、即时查询中可以正确查询到信息和指标,也可以正常按照预警规则触发预警和推送。 但是,在仪表盘中无法显示该机器。 例如默认的机器台账模板,表现为表格中不显示该机器的行,上方选择条件中可以显示并选取该机器,但是单选后依然无值。 详情模板同理,均提示无数据。

我在两套不同版本的环境中进行了测试,都复现了该结果。 在仪表盘查看相关HTTP请求,发现参数应该是正常的,但是响应结果都是空数组,如{"dat":[[]],"err":""}。 疑似hostname中的英文括号在后端被转义/替换导致匹配不到实际的机器字符串?似乎也没看到说不能用英文括号... 中文括号无此问题。

复现步骤

修改采集器主配置config.tomlhostname项,将其修改为带英文括号的值。如:hostname = "本机测试(Test1)-$ip",然后启动采集器。

Relevant logs and configurations

未看到相关异常信息...

Version

环境1

  1. N9E v7.0.0-beta.14.3
  2. 采集器 categraf-v0.3.27-windows-amd64
  3. 采集器服务器 Windows Server 2008

环境2

  1. N9E v7.0.0-beta.1
  2. 采集器 categraf-v0.3.52-linux-amd64
  3. 采集器服务器 CentOS Linux release 7.6.1810 (Core)
UlricQin commented 1 month ago

v7 正式版解决了,可以升级试试

nyable commented 1 month ago

v7 正式版解决了,可以升级试试

你好,目前已升级至v7.0.0,发现仍存在一些相关的问题。

前端版本:v7.0.0 后端版本:v7.0.0-17dbb3ec778f84aa8687ac4fda91b7370ba32c7c

主要表现为:

  1. 查询条件中变量ident 查询 (Query) label_values(system_load1,ident)单选(或多选情况仅选中)名字带括号的机器时,不显示数据。
  2. 查询条件中变量ident修改为ident 机器标识 (Host ident)时,此时正常情况下应该显示业务组内的所有机器,但是实际上一直不显示名字带括号的机器数据。

复现过程

为了确认问题,我额外又完全重新部署了一套v7.0.0的N9E,两台测试采集器的机器分别为CentOS7和Win11,采集器版本均为最新的v0.3.76。 将CentOS的hostname修改为测试机器(Demo)-$ip。 将Win11的hostname修改为名字不带括号的-$ip。 启动所有程序后,在机器列表中,可以正常显示两条机器的数据,将这两台机器分配到默认的业务组Default Busi Group中。

问题1

以常用的模板中心中Linux-机器台账表格视图为例:

  1. 在模板中心中导出Linux-机器台账表格视图至默认业务组。
  2. 打开该仪表盘,此时上方的查询条件是ident:All,下方所有图表正常显示所有机器的数据(此前版本不能正常显示带括号的机器,该问题已解决) Clip_2024-07-28_09-21-03
  3. 点击上方的ident,在下拉框中单选名字带括号的机器,此时下方图表全部显示No Data(异常)。 Clip_2024-07-28_09-23-51
  4. 点击上方的ident,在下拉框多选(不使用All)一台名字带括号的机器和不带括号的机器,此时图表能够正常显示选中的机器(正常显示)。 Clip_2024-07-28_09-24-10

使用其他仪表盘如:Linux-Linux Host by Categraf v2存在相同问题。 Clip_2024-07-28_09-31-55 Clip_2024-07-28_09-32-19

问题2

将仪表盘变量列表中的变量ident修改从查询Query修改为机器标识Host ident,目的是为了仅展示该业务组内的所有机器。 同样以常用的模板中心中Linux-机器台账表格视图为例:

  1. 在模板中心中导出Linux-机器台账表格视图至默认业务组,然后重命名。
  2. 打开该仪表盘,修改上方的变量为Host ident,并保存。 Clip_2024-07-28_09-35-26
  3. 此时正常情况下应该显示该业务组内的所有机器,但实际上仅显示所有标识不带括号的机器(异常)。 Clip_2024-07-28_09-36-38
  4. 此时无论在上方ident的下拉框中单选或多选名字带括号的机器,均无法正常显示(异常)。 Clip_2024-07-28_09-38-10 Clip_2024-07-28_09-38-30
nyable commented 4 weeks ago

v7.2.1中被修复了,升级后均可正常显示。