这一节来讲解下cacti批量导入主机.
原理:通过cacti提供的脚本批量操作数据库.
思路:首先找到与数据库有关的表,然后再执行批量插入数据库.前提也要有一个格式一致的列表文件.最后再编写脚本文件来循环执行插入数据.

开始
1)创建一个列表文件.
测试1##test one##10.10.8.100##12345678
这个是我的其中一行.
2)查看mysql,获取相关的值,可以先手动添加一台主机,然后观察数据库与哪几个表有关.
host表存储主机相关信息
php add_device.php这个文件来操作
graph_local表存储模板图像信息
php add_graphs.php这个文件来操作
graph_tree_items表存储组信息
php add_tree.php这个文件来操作

3)创建SHELL脚本文件来循环执行

 

vi cacti.sh
#!/bin/bash
#可以在iplist.txt文件里面输入两三个值,用来测试.
host_ips=`grep -v "^S" iplist.txt | awk -F"##" '{print $3}'`
#这里获取主机IP
for host_ip in $host_ips
do
host_name=`grep -v "^S" iplist.txt | grep $host_ip |awk -F"##" '{print $1}'`
#获取主机名子
php /usr/share/cacti/cli/add_device.php --description="$host_name" --ip="$host_ip" --template=0 --version=0 --avail=p
ing --ping_method=icmp --community="public"
#插入主机,这里的值可以看host表.
host_ids=`php /usr/share/cacti/cli/add_graphs.php --list-hosts | grep $host_ip | awk -F " " '{print $1}'`
#获取上一步插入主机的ID
php /usr/share/cacti/cli/add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=7
php /usr/share/cacti/cli/add_graphs.php --host-id="$host_ids" --graph-type=cg --graph-template-id=73
#插入图像模板,这里的值可以看graph_local表.
php /usr/share/cacti/cli/add_tree.php --host-id="$host_ids" --type=node --node-type=host --tree-id=2
#插入分组,这里的值可以看graph_tree_items表.

 

#echo $host_ids
#echo $host_ip
#echo "name is $host_name"
#这里用来测试是否有正确的数据输出.实际用不到.
done

chmod a+x cacti.sh
./cacti.sh
可以先再iplist.txt文件中添加少量的主机做测试,等几分钟看是否出图,如没问题再正式批量导入.

 

这是我导入后的cacti.它可以正式上线工作了.

下一节讲解cacti汉化.