You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中展示域名对应的IP地址?

如何在Grafana中展示域名对应的IP地址?

我来给你几个实用的方案,刚好匹配你要实时查询域名IP、不需要历史记录的需求,都是实操性很强的:

方案一:用Prometheus Textfile Exporter + 自定义脚本

这个方法适合已经在用Prometheus的场景,步骤很简单:

  1. 写一个简单的shell脚本,用来获取指定域名的IP并生成Prometheus格式的指标文件。比如脚本内容可以是:
#!/bin/bash
DOMAIN="dns.google.com"
IP=$(dig +short $DOMAIN | head -n1)
# 生成Prometheus指标,把IP存在标签里,值设为1(因为Prometheus指标需要数值)
echo "dns_domain_info{domain=\"$DOMAIN\",ip=\"$IP\"} 1" > /var/lib/node_exporter/textfile_collector/dns_metrics.prom
  1. 用cron定期执行这个脚本,比如每分钟跑一次,保证IP是实时的:
* * * * * /path/to/your/script.sh
  1. 配置Prometheus的Textfile Exporter(或者如果用Node Exporter的话,它本身就支持textfile采集),让Prometheus能读取这个指标文件。
  2. 在Grafana里用Prometheus数据源,写查询语句:dns_domain_info{domain="dns.google.com"},然后用Stat或者Table面板,设置展示内容为标签ip的值,就能看到实时的IP了。

方案二:用Grafana Exec Datasource插件

这个方法更直接,不需要经过Prometheus,直接在Grafana里执行命令获取IP:

  1. 在Grafana插件市场安装Exec Datasource插件(这个插件专门用来执行系统命令并返回结果)。
  2. 配置这个数据源:指定允许执行的命令路径,或者直接开启命令执行权限(注意安全,只允许可信的命令)。
  3. 在Grafana面板里新建查询,选择Exec数据源,输入命令:
dig +short dns.google.com | head -n1

或者用nslookup(如果服务器没有dig的话):

nslookup dns.google.com | grep -oP 'Address: \K[0-9.]+' | head -n1
  1. 选择合适的面板类型(比如Stat、Text面板),就能直接展示实时解析的IP了,完全符合你要“实时检查DNS条目”的需求。

为什么你之前的尝试没成功?

  • MySQL确实没有内置的DNS解析函数,它的IP相关函数都是针对数据库连接的客户端或服务器本身,没法做外部域名解析;
  • Grafana Agent的DNS发现组件是用来自动发现监控目标的,不是用来在面板展示解析结果的,方向不对;
  • 专门的DNS查询数据源插件确实比较少,所以用自定义脚本/命令的方式反而更灵活;
  • 没法执行PHP的话,用shell脚本或者Python脚本就够了,大多数服务器默认都有这些环境。

备注:内容来源于stack exchange,提问作者Elikill58

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:34:52