Categraf 监控采集器常见问题都有哪些解决方法?
摘要:总结一下社区常见的问题,供大家参考。不过在描述具体问题之前,请先了解 Categraf 的核心职能: 采集监控指标 在即时查询里可以看到机器各个指标的历史趋势图,就是 Categraf 采集的监控指标。比如: 如果这个页面查不到机器的历史监
总结一下社区常见的问题,供大家参考。不过在描述具体问题之前,请先了解 Categraf 的核心职能:
采集监控指标
在即时查询里可以看到机器各个指标的历史趋势图,就是 Categraf 采集的监控指标。比如:
如果这个页面查不到机器的历史监控数据,说明采集、上报、存储链路出了问题。
上报机器元信息
机器列表里的机器,会呈现一些字段,比如更新时间、时间偏移、内存、CPU 等字段,都是通过 Categraf 上报的元信息拿到的。
点击某个机器,会展开侧拉板,侧拉板里会呈现机器的元信息:
执行自愈脚本
一些日常运维工作需要批量对一批机器执行脚本,或者某个机器报警了,想要自动去机器上跑一个脚本。
hostname 配置
Categraf 要想达成上面所述的功能,需要有一个唯一标识,用以区分不同的机器。这个唯一标识就是 conf/config.toml 配置文件中的 hostname 配置。
# add label(agent_hostname) to series
# "" -> auto detect hostname
# "xx" -> use specified string xx
# "$hostname" -> auto detect hostname
# "$ip" -> auto detect ip
# "$hostname-$ip" -> auto detect hostname and ip to replace the vars
hostname = ""
上面的注释其实也说得很清楚了,我这里也再啰嗦一下。
hostname 字段用户配置成啥,就以啥作为机器标识。所以,不同机器一定要配置为不同的字符串。
但是每个机器都要配置一个不同的字符串,有点费劲,能否自动设置为本机的机器名?可以的,这个字段如果留空,就会自动获取本机的机器名。
有些公司机器名可能会重复,想要自动设置为本机 IP,也可以,那就配置为:
hostname = "$ip"
Categraf 发现用户配置的是 $ip,就会自动探测本机 IP 填充进去,不过你要检查一下最终探测到的 IP 是不是对的,怎么检查?测试采集一下指标,看看输出即可:
[root@iZ2ze4oi71k3qgdxwsyn07Z categraf-v0.4.20-linux-amd64]# ./categraf --test --inputs mem 2>/dev/null| grep mem_
1762167444 18:57:24 mem_high_free agent_hostname=10.99.1.107 0
1762167444 18:57:24 mem_huge_pages_free agent_hostname=10.99.1.107 0
hostname 的信息会体现为指标里的 agent_hostname 标签,如上,我的本机 IP 自动探测为 10.99.1.107。
有时想从环境变量里获取,也可以,也是使用 $ 符号引用环境变量的名称即可,比如:
[root@iZ2ze4oi71k3qgdxwsyn07Z categraf-v0.4.20-linux-amd64]# export HOST=hello007
[root@iZ2ze4oi71k3qgdxwsyn07Z categraf-v0.4.20-linux-amd64]# grep HOST conf/config.toml
hostname = "$HOST"
[root@iZ2ze4oi71k3qgdxwsyn07Z categraf-v0.4.20-linux-amd64]# ./categraf --test --inputs mem 2>/dev/null| grep mem_
1762167642 19:00:42 mem_active agent_hostname=hello007 1265184768
1762167642 19:00:42 mem_huge_page_size agent_hostname=hello007 2097152
如上,我设置了一个环境变量 HOST=hello007,然后在配置文件里通过 hostname="$HOST" 做了引用。最终通过 --test 看到的就是 agent_hostname=hello007 标签。
