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 标签。
阅读全文