cacti批量导入主机 监控服务

cacti的加主机及监控服务...繁琐...加一台机器点鼠标也很累...之前自己按照数据库,写了脚本可以批量加主机...但是要对主机增加监控的服务...实在搞不定了....要操作的表太多了。
昨天发现cacti官方文档上有介绍如何批量增加服务器的....详细见:http://www.cacti.net/downloads/docs/html/cli_add_graphs.html

官方的源码包中cli目录带php的操作脚本,执行脚本传入参数就可以加主机 服务,查询支持的模版的信息。
大体操作过程:
1.首先执行php   add_device.php增加一台主机,在这里设置snmp参数主机默认模版,默认模版可以随意,
2.执行php add_graphs.php --list-graph-templates获得可以增加的监控图
3.执行php add_graphs.php --list-snmp-queries 和 --list-query-types --list-snmp-fields --list-snmp-values几个参数一步一步查询要增加的data query需要哪些模版,字段
4.在执行php add_graphs.php --host-id= --graph-type=cg --graph-template-id= 和php   add_graphs.php --host-id=  --graph-type=ds  --graph-template-id= --snmp-query-id= --snmp-query-type-id=  --snmp-field=s --snmp-value=分别增加监控图和data query,如果data query对应一个图有多个snmp字段要增加,执行多次
5.最后执行php add_tree.php加菜单

我写了一个PHP脚本读取Ip列表根据制定的产品线名称,监控服务类型来批量操作cacti的这3个命令,如果哪位需要可以试试。
示例:
php xpdinitcacti.php -f server.txt -t linux -p xpd -g mysql
-f Ip列表,一行一个ip
-t 相当于主机模版的别名,主机使用linux模版,linux模版对应的主机id号,用--list-graph-templates获得,记id号不容易,记别名就容易多了
-p 产品线名称前缀,产生的主机名称就会是:产品线名称-服务-ip
-g 监控的服务,自己定义的服务别名,对应了一堆自己可用的监控服务模版Id号,比如mysql代表几个mysql监控服务常用的模版

下载地址http://code.google.com/p/cacti-add-device-script/downloads/list

1.首先在我的脚本中增加需要固定添加的主机模版对应id号,监控服务类型对应的要增加那些监控服务的id号。

$config=array("host_type"=>array("linux"=>"8","db"=>"9"),//主机模版对应的id号
"host_templates"=>array("snmp_community"=>"111","snmp_version"=>2,"snmp_port"=>161,"snmp_timeout"=>500),//snmp配置信息
"tree"=>array("xpd"=>8,//菜单名称对应的id号
"type"=>"node","node-type"=>"host"),
"graph_templates"=>array(
"normal"=>array(//默认监控服务模版
"cg"=>array(4,13),//list-graph-templates获得的监控模版id号,这里是cpu和load average
"ds"=>array(//data query的信息
array("graph-template-id"=>33,"snmp-query-id"=>1,"snmp-query-type-id"=>13,"snmp-field"=>"ifOperStatus",
"snmp-value"=>"Up",
),
array("graph-template-id"=>21,"snmp-query-id"=>6,"snmp-query-type-id"=>15,"snmp-field"=>"dskMount",
"snmp-value"=>"/",),
array("graph-template-id"=>21,"snmp-query-id"=>6,"snmp-query-type-id"=>15,"snmp-field"=>"dskMount",
"snmp-value"=>"/backup",),
array("graph-template-id"=>21,"snmp-query-id"=>6,"snmp-query-type-id"=>15,"snmp-field"=>"dskMount",
"snmp-value"=>"/boot",),
)
),
"normal2"=>array(
"cg"=>array(4,13),
"ds"=>array(
array("graph-template-id"=>33,"snmp-query-id"=>1,"snmp-query-type-id"=>13,"snmp-field"=>"ifOperStatus",
"snmp-value"=>"Up",
),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"/",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"/boot",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"Cached memory",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"Memory buffers",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"Physical memory",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"Swap space",),
array("graph-template-id"=>26,"snmp-query-id"=>8,"snmp-query-type-id"=>18,"snmp-field"=>"hrStorageDescr",
"snmp-value"=>"Virtual memory",),
)
),
"mysql"=>array(),
),
);

你可能感兴趣的:(linux,mysql,PHP,脚本,UP)