Cacti自定义脚本,监测Docker信息(Script/Command方式)
一 环境背景
- 监控主机A:192.168.24.231;被监控主机B:192.168.24.233
- A/B主机,通过公私钥建立ssh连接 [操作B主机时不需要输入密码,详见笔记:http://app.yinxiang.com/l/ACQDOta4_v1IEr_WI6aufZVFEux9o1ou6ts/]
二 监控目标及测试结果
主机 A监测主机B上以下信息:
- 正在运行的容器数量 (黄)
- 已经定义的容器数量 (绿)
- 崩溃的容器数量 (红)
三 整体步骤
- B主机采集docker容器信息
- 监控主机A获取B主机上采集所采集信息
- 自定义cacti数据输入方式
- 自定义cacti数据模板
- 自定义cacti图形模板
- 应用Graph Template
四 具体实现
1 主机B,采集Docker信息脚本如下:DockerMonitor.sh
- # cd /home
- # vim DockerMonitor.sh
- # chmod +x DockerMonitor.sh
ps :
总容器数:ALL_FUNCTION_N
正在运行的容器数:RUNNING_FUNCTION
崩溃容器数据: CRASHED_FUNCTION
执行结果如下:
2 主机A,获取主机B上所采集信息
- #cd /var/www/html/cacti/scripts
- #vim testDocker.sh
运行结果:
ps:host为被监控主机ip:192.168.24.231
3 自定义Data Input Method
(1)Console->Collection Methods->Data Input Method->Add
ps
- 其中<ip> :被监控主机IP :192.168.24.233
- Input Type 应选择Script/Command ,因为是运行自定义脚本
- DockerMonitor.sh即为步骤2中所定义脚本
( 2 ) 弹出页面 Input Fields ==>Add
ps:
- hostname,也可以不填写,如果填写的话,ip参数默认为Device Id
- Field[Input] 为输入参数
(3)弹出页面 Output Fields ==>Add
ps:
- 框图图分应和脚本中输出参数相同,有多个输出参数,继续点Add 添加,且脚本中输出格式为:”RUNNING_FUNCTION:数量 CRASHED_FUNCTION:数量 ALL_FUNCTION:数量“
4 自定义Data Template
(1) Console->Templates->Data Templates =>Add
ps
- Name 即这个模板的名字
- Data Source里的Name是指这个数据源的名字,这里一般会采用“|host_description| - 名称”的格式,在应用模板时,host_description会被替换为监控机器的名字
- Data Input Method这里选我们刚才创建的Data Input Method即可,如果有多个的话,保存了以后,右上角会出一个New的链接,点击可以继续创建
- 如果有多个输入的话,下面会出现Custom Data 区域,这里是指输入参数区域,你可以在这里给输入的参数给一个值,也可以让它在应用模板时输入
- 至此,Data Input Method和Data Template联系起来了。
5 自定义Graph Template
(1) Console->Templates->Graph Templates =>Add
具体添加Graph Template Items如下:
ps
- Consolidation Function 应选择AVERAGE,否则会不出图形
- 这 里第一个是Data Source选择我们之前创建的Data Template,因为可能有多个输出,因此它也可能有多个,我们一一创建即可,注意这里Color是用于显示的颜色,Graph Item Type是显示的类型,比如Area就是显示成块即可,Text Format就是给这个输出一个名字
- 创建后,如果你还想为这个输出 创建一个Legend,那就是再Add选择Graph Item Type->Legend即可,注意上面的Graph Item Inputs是自动创建的,一般不用处理,到此,Graph Templates已经完成,接下来就是应用了。
6 应用Graph Templates
选择Console->Management->Devices创建你要应用到的机器,定义输入参数等,以下步骤,略