Prometheus查询报错及Grafana模板异常求助
问题解决指南
一、Prometheus查询node_cpu_seconds_total时的JSON语法错误
问题原因
该错误是Prometheus配置文件(prometheus.yml)的scrape_configs模块存在JSON格式错误,比如数组元素未加逗号、引号不闭合、括号不匹配等,导致Prometheus解析配置失败。
解决步骤
- 打开
prometheus.yml,定位到node_exporter对应的scrape job配置,检查targets数组的格式是否正确,示例正确写法:
重点检查引号、逗号、括号是否完整匹配。scrape_configs: - job_name: 'node_exporter' static_configs: - targets: ["第二台EC2实例IP:9100"] - 用Prometheus自带工具验证配置语法:
工具会直接输出错误位置和原因,根据提示修正。promtool check config /path/to/prometheus.yml - 修正后重启Prometheus服务:
sudo systemctl restart prometheus
二、Grafana Node Exporter Full模板的Templating错误
问题原因
主要是模板版本与Grafana版本不兼容,老模板使用了已废弃的变量替换语法;其次可能是Prometheus数据源配置与模板预期不匹配。
解决步骤
- 替换为适配当前Grafana版本的官方模板:导入Grafana官方维护的Node Exporter Full模板(ID: 1860),导入时选择正确的Prometheus数据源。
- 若要修复现有模板变量:
- 进入Grafana的「变量」配置页面,找到
job和node变量。 - 将变量的查询语句中旧的
e.replace逻辑替换为Grafana支持的语法,比如将依赖e.replace的查询改为直接使用label_values(job)或label_values(instance)。
- 进入Grafana的「变量」配置页面,找到
- 检查Prometheus数据源配置:确保数据源名称与模板中引用的一致(默认模板引用名为「Prometheus」的数据源),若名称不同,需在模板变量的「数据源」下拉框中选择正确的数据源。
内容的提问来源于stack exchange,提问作者CapMarian
相关产品推荐
相关产品推荐

