批量添加主机到 Cacti 的命令行工具

 

有时我们要加入大量的机器到 Cacti ,直接修改 Cacti 还是很复杂的。所以最好还是通过他本身提供的工具来实现。 Cacti 早就为我们想到过这个问题了。这些工具就在 cacti/cli 目录中。简单的记录一下使用的方法。

1. 增加主机配置

php add_device.php --description=cdn118 --ip=121.22.x.x --template=3 --version=2 --community=public
# description 是对主机的描述
例如:

php add_device.php --description=cdn118 --ip=121.22.x.x --template=3 --version=2 --community=public

2. 增加监控图模板和图的数据来源
对加入的主机加入图象的生成,这有二种数据需要添加,一种是监控图使用的模板,一种是这个图的数据从 snmp 之类那个信息取得。下面就分别来取操作这二步.
(1. 增加 cacti 的监控图使用的模板

php add_graphs.php --host-id=[] --graph-type=cg --graph-template-id=[]
php add_graphs.php --list-graph-templates # 查看存在的图象模板
php add_graphs.php --list-hosts # 查看存在的主机
例如:

php add_graphs.php --host-id=11 --graph-type=cg --graph-template-id=32

(2. 增加data query的信息
如果data query对应一个图有多个snmp字段要增加,执行多次

php add_graphs.php --host-id=[] --graph-type=ds --graph-template-id=[] --snmp-query-id=[] --snmp-query-type-id=[] --snmp-field=[s] --snmp-value=[s]
在这步很麻烦,需要使用下面这些东西来查 data query 的参数,需要执行下面一步一步查询要增加的data query需要哪些模版,字段和相关的信息

php add_graphs.php --list-snmp-queries
查询 snmp 的询问的类型,是指使用什么方法去查询远程的数据例如: 1 SNMP - 接口统计

php add_graphs.php --list-query-types --snmp-query-id=[]
询问的类型中对应的 type 是什么,简单来讲,就是根据协议(snmp-query-id),可以查到什么东西例如: 14 输入/输出 位(64位计数)

php add_graphs.php --list-snmp-fields --host-id=[] --snmp-query-id=[]
根据host-id和snmp-query-id 来查,这个是指,当使用这个 snmp 查这个信息是,有那些相关的信息,例如: ifName

php add_graphs.php --list-snmp-values --host-id=3 --snmp-query-id=1 --snmp-field=ifName
# 这个是指,查这个信息上的数据中还有那些指定的子字段的值。

例如:

php add_graphs.php --host-id=11 --graph-type=ds --graph-template-id=32 --snmp-query-id=1 --snmp-query-type-id=14 --snmp-field=ifName --snmp-value=eth0

3. 添加树状显示菜单
这个需要使用到 add_tree.php加到菜单中显示
注意这个地方可以添加二种类型,一种是树,一种是节点,如果给一台主机加进去,就是加入一节点

php add_tree.php --type=node --node-type=host --tree-id=[] --host-id=[]
上面的数据需要通过下面的信息来查询:

php add_graphs.php --list-hosts # 查看存在的主机
php -q add_tree.php --list-trees # 查看树的 ID
例如

php add_tree.php --type=node --node-type=host --tree-id=2 --host-id=5