一、 简介
考虑到后期监控告警监控指标的多样化应用,需要agent的采集指标能够动态的添加和移除来增强监控的灵活度,通过动态配置监控指标和指定agent角色来有选择的进行监控信息的采集和归档,减少垃圾数据,增强监控指标的灵活性。目前HBS和Agent进行定时交互,可以通过两者的交互机制来实现只需要配置HBS,就行动态设置与之通信的所有agent的监控指标和监控角色。
二、 动态设置监控项
原理分析:由于HBS和Agent间存在定时上报的机制,借用该机制来实现通过HBS来动态设置监控项,然后在Agent端会获取并缓存在内存中,通过缓存的监控项来过滤数据。具体通过在HBS端配置文件中的usedmetric项中添加需要下发到Agent的监控项,重启HBS即可完成动态设置监控项,后期可以完善到下发指定的agent监控项。
架构图:
使用配置:
在HBS端修改配置cfg.json配置文件:
{
"debug": true,
"database":"root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
"hosts": "",
"maxIdle": 100,
"listen": ":6030",
"trustable": [
""
],
"http": {
"enabled": true,
"listen": "0.0.0.0:6031"
},
"usedmetric": [“cpu.busy”,”mem.used.percent”], //在该处配置需要动态添加的监控项
"agentroles": {
"hostrole":"",
"instancerole":""
}
}
然后重启HBS端即可将添加的监控项下发到所有与之通信的(后期可以考虑指定)agent。
三、 动态指定Agent采集角色
目前角色分为云主机角色和物理主机角色,具体解释为:
物理主机角色:agent只采集物理主机资源监控项信息
云主机角色:agent只采集云主机资源监控项信息
混合角色:agent既采集云主机资源监控项信息又采集物理主机资源监控项信息。
原理分析:由于HBS和Agent间存在定时上报的机制,借用该机制来实现通过HBS来动态指定Agent的角色类型,然后在Agent端会获取并缓存在内存中,通过改监控项来过滤数据。具体通过在HBS端配置文件中的agentroles项中添加角色,重启HBS即可完成动态下发agent采集角色。没有配置的资源角色既是物理主机角色也是云主机角色。
架构图:
使用配置:
在HBS端修改配置cfg.json配置文件:
{
"debug": true,
"database":"root:@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true",
"hosts": "",
"maxIdle": 100,
"listen": ":6030",
"trustable": [
""
],
"http": {
"enabled": true,
"listen": "0.0.0.0:6031"
},
"usedmetric":[“cpu.busy”,”mem.used.percent”],
"agentroles": { //在该处配置需要动态指定的Agent的角色
"hostrole":"compute-192-168-6-30 ", //物理主机角色,只采集物理主机信息
"instancerole":"compute-192-168-6-33 " //云主机角色,只采集虚拟机信息
}
}
目前角色只有两种,分别是物理主机角色和云主机角色,通过在hostrole中可以指定某个资源名称上agent角色为物理主机角色,在instancerole中可以指定某个资源名称上agent角色为云主机角色,需要在在对应项上配上资源名称即可。