之前提到过我用Telegraf+InfluxDB+Grafana监控服务器性能,由于Telegraf监控不到硬件信息,我便在部署Telegraf的同时部署了OhmGraphite,但OhmGraphite写入InfluxDB的数据中,标签host的值全为大写,我的某个主机名为“Inspiron-3568”,Telegraf能正确反馈,但OhmGraphite反馈的host="INSPIRON-3568",这使得当我在Grafana中通过host区分信息来源的时候,将本是一个设备的信息,分成了两个。
具体原因是NetBIOS与DNS的区别,OhmGraphite使用的是通过NetBIOS 获取的主机名,所以是全为大写。
using System.Net; Environment.MachineName // NetBIOS Dns.GetHostName()
输出:
INSPIRON-3568 Inspiron-3568
解决方法就是下载OhmGraphite源代码,将Environment.MachineName更改为Dns.GetHostName()后重新编译生成OhmGraphite.exe
更新
已在0.8.3中添加了name_lookup参数用来选择NetBIOS或者DNS作为主机名
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="name_lookup" value="dns" /> </appSettings> </configuration>
https://github.com/nickbabcock/OhmGraphite/issues/53