grafana与influxdb对接需确保版本兼容、服务运行及数据源正确配置:influxdb 1.8须配grafana influxdb(influxql)数据源,禁用认证或手动适配;服务需active且8086端口监听;grafana需改domain和allow_embedding;数据源选influxdb类型、填对库名、用influxql语法并加$timefilter和group by。

grafana 和 InfluxDB 对接不是“装完就能用”的流程,关键在版本兼容性、服务状态和数据源配置三处。Grafana 9+ 默认支持 InfluxDB 2.x 的 token 认证方式,但如果你用的是 InfluxDB 1.8(目前最稳定的生产版本),必须禁用认证或手动降级 Grafana 的数据源类型——否则会卡在“Data source is not working”且无明确报错。
确认 InfluxDB 版本并启动服务
别跳过这步:InfluxDB 1.x 和 2.x 的 API 完全不兼容,Grafana 数据源类型必须匹配。
- 查版本:
influxd version或influx --version;若输出含v1.8.10或类似,就是 1.x - 确保服务已运行:
systemctl status influxdb,看到active (running)才算真正启动 - 检查端口是否监听:
ss -tuln | grep :8086,没输出说明 HTTP API 没开(常见于配置里[http] enabled = false) - 如果刚装完但没建库,进 CLI 手动建一个:
influx -precision rfc3339→CREATE DATABASE telegraf
Grafana 安装后必须改的两处配置
直接 apt install grafana 或 rpm -i 装完,grafana-server 默认监听 localhost:3000,但默认配置不开放外部访问,也不适配 InfluxDB 1.x。
- 编辑
/etc/grafana/grafana.ini,找到[server]段,改这两行:domain = your-host-ip-or-domain(不能留 localhost)allow_embedding = true(否则 iframe 嵌入面板会失败) - 重启服务:
systemctl restart grafana-server,再用curl -v http://localhost:3000/api/health验证 API 可达 - 首次登录账号密码都是
admin,登录后立刻改密码——否则后续 InfluxDB 数据源测试会因安全策略被拒
添加 InfluxDB 数据源时选对类型和参数
Grafana 界面里新建 Data Source,下拉菜单选 InfluxDB(不是 InfluxDB (InfluxQL) 或 InfluxDB v2)——这是关键判断点。
- URL 填
http://localhost:8086(不要加/query或/write) - Database 填你之前建的库名,比如
telegraf;如果填错,测试连接会成功但查不到表 - 如果 InfluxDB 开了 auth,这里要填用户名密码;若没开,保持空白即可(
auth-enabled = false在influxdb.conf中) - Query Language 选
InfluxQL(不是 Flux),否则写SELECT * FROM cpu会报错error parsing query: expected SELECT or VALUES - 点
Save & test,返回Data source is working才算真正连通
测试查询语句必须带时间过滤和 GROUP BY
InfluxDB 写入的数据自带时间戳,但 Grafana 面板默认时间范围是最近 6 小时,如果查询没加时间条件或聚合,会返回空或超时。
- 在 Explore 页面选刚建的数据源,试这条最小可行语句:
SELECT mean("usage_idle") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval) -
$timeFilter是 Grafana 自动注入的时间范围变量,不能手敲成time > now() - 1h -
GROUP BY time($__interval)必须有,否则折线图无法渲染(InfluxDB 1.x 不支持无聚合的原始点直接绘图) - 如果提示
no data,先确认 Telegraf 是否在往该数据库写数据:influx -database telegraf -execute "SELECT * FROM cpu LIMIT 1"
InfluxDB 的 wal-dir 路径性能影响远大于 data 目录,但 Grafana 本身不关心这个——它只管连上、查到、画出来。很多人卡在“连得上但查不出”,问题八成出在数据库名拼错、表名大小写不一致(InfluxDB 表名区分大小写)、或者忘了 GROUP BY。











