吉佳 发表于 2015-4-18 08:13:58

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上以下信息:

[*]正在运行的容器数量 (黄)
[*]已经定义的容器数量 (绿)
[*]崩溃的容器数量      (红)

   http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/9973a45c-bb80-4390-92f1-7b80e28c8954.png?resizeSmall&width=1304
三 整体步骤

[*]B主机采集docker容器信息
[*]监控主机A获取B主机上采集所采集信息
[*]自定义cacti数据输入方式
[*]自定义cacti数据模板
[*]自定义cacti图形模板
[*]应用Graph Template                                                                                       

四具体实现
1    主机B,采集Docker信息脚本如下:DockerMonitor.sh

[*]# cd /home
[*]# vim DockerMonitor.sh
[*]# chmod +x DockerMonitor.sh

      http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/d084c975-44d3-46c4-922a-521537622d88.png?resizeSmall&width=1304
   ps :
   总容器数:ALL_FUNCTION_N
   正在运行的容器数:RUNNING_FUNCTION
   崩溃容器数据: CRASHED_FUNCTION
   执行结果如下:
   http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/9386f5e0-f00b-4d03-ac41-d1bae3b7a04b.png?resizeSmall&width=1304

2 主机A,获取主机B上所采集信息

[*]#cd /var/www/html/cacti/scripts
[*]#vim testDocker.sh

   http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/7076db97-28e4-4291-9e91-23af2a93aca7/Image.png?resizeSmall&width=1304
   运行结果:
   http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/672c140e-43f1-4496-af8c-5e33f1975ac1.png?resizeSmall&width=1304
   ps:host为被监控主机ip:192.168.24.231

3 自定义Data Input Method
(1)Console->Collection Methods->Data Input Method->Add
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/6c12e2d5-c736-4bd2-ac3b-be89c64321f2.png?resizeSmall&width=1304
ps

[*]其中 :被监控主机IP :192.168.24.233
[*]Input Type 应选择Script/Command ,因为是运行自定义脚本
[*]DockerMonitor.sh即为步骤2中所定义脚本

( 2 ) 弹出页面 Input Fields ==>Add
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/1b8514c5-f358-43e2-a3b1-849a5728f6bc.png?resizeSmall&width=1304
ps:

[*]hostname,也可以不填写,如果填写的话,ip参数默认为Device Id
[*]Field 为输入参数

(3)弹出页面 Output Fields ==>Add
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/8d0d051c-8b75-4f95-9326-5fce0126c281.png?resizeSmall&width=1304
ps:

[*]   框图图分应和脚本中输出参数相同,有多个输出参数,继续点Add 添加,且脚本中输出格式为:”RUNNING_FUNCTION:数量CRASHED_FUNCTION:数量ALL_FUNCTION:数量“

4   自定义Data Template
(1)Console->Templates->Data Templates =>Add
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/8572fbdc-1168-47bd-9cea-5318f9c5e3df.png?resizeSmall&width=1304
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
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/19c536ac-f8d4-4854-a838-c0dd5521250f.png?resizeSmall&width=1304
具体添加Graph Template Items如下:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/cc4811f8-ad8a-4561-94c2-0da66fa95d46.png?resizeSmall&width=1304

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创建你要应用到的机器,定义输入参数等,以下步骤,略
页: [1]
查看完整版本: Cacti自定义脚本,监测Docker信息(Script/Command方式)