4132w 发表于 2016-3-1 09:14:39

Cacti 系统批量添加Device脚本

Cacti 系统批量添加Device脚本

【功能】:

[*]自动添加设备,自动生成模板图像;

[*]自动生成远程抓取的数据图像;

[*]自动添加到相应的组。


【准备工作】:
1.启动客户端snmpd服务,并设置snmpd.conf文件:
/etc/init.d/snmpdstart ;chkconfig snmpd on
# cat /etc/snmp/snmpd.conf
com2sec notConfigUserdefault      public
groupnotConfigGroup v1          notConfigUser
groupnotConfigGroup v2c          notConfigUser
view   systemview    included   .1.3.6.1.2.1.1
view   systemview    included   .1.3.6.1.2.1.25.1.1
access notConfigGroup ""   any       noauth    exact all none none
group MyRWGroup any      local
group MyROGroup any      mynetwork
view all   included.1                               80
access MyROGroup ""      any      noauth    0      all   none   none
access MyRWGroup ""      any      noauth    0      all   all    all
syslocation ser02 (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure/etc/snmp/snmp.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

2.在cacti服务器验证客户端snmp通讯:
snmpwalk -v 2c -c public 172.30.10.1 (若异常请将上面配置替换客户端snmpd.conf配置)

3.熟悉cacti提供的添加device、graphs等php脚本:
cacti提供了一些php脚本,通过调用就能完成添加批量工作。
脚本存放路径如下:/var/www/html/cli
-rw-r--r--.1 apache apache7372 Apr 232012 add_data_query.php
-rw-r--r--.1 apache apache 11403 Apr 232012add_device.php
-rw-r--r--.1 apache apache 18738 Apr 232012add_graphs.php
-rw-r--r--.1 apache apache5940 Apr 232012 add_graph_template.php
-rw-r--r--.1 apache apache6876 Apr 232012 add_perms.php
-rw-r--r--.1 apache apache9887 Apr 232012 add_tree.php

【脚本说明】:
[存放路径]:/var/www/html/cli
:/var/www/html/cli/ips.txt

[文件格式]:
cat ips.txt
ser01 172.30.10.1
ser02 172.30.10.2

[脚本文件]:/var/www/html/cli/addhost.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
#cacti批量加监控
#读取IP列表
MYFILE=/var/www/html/cli/ips.txt
while read host_info
   do
host_name=$(echo $host_info |awk '{print $1}')
host_ip=$(echo $host_info |awk '{print $2}')
   #添加cacti设备
   phpadd_device.php --description="$host_name" --ip="$host_ip"--ping_method=icmp --template=8 --version=2 --community="public"
   #读取设备ID(gerp -w为精确匹配,否则会列出所有包含要查询ip的关键字,导致获取多个host-id,程序无法正常执行)
host_ids=`php add_graphs.php --list-hosts |grep -w $host_ip |awk '{print$1}'`
   #创建模板图像
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=4
   php add_graphs.php--host-id="$host_ids" --graph-type=cg --graph-template-id=7
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=8
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=9
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=10
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=11
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=12
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=21
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=41
   phpadd_graphs.php --host-id="$host_ids" --graph-type=cg--graph-template-id=271
   #创建网卡数据图像
   phpadd_graphs.php --host-id="$host_ids" --graph-type=ds--graph-template-id=2 --snmp-query-id=1--snmp-query-type-id=16 --snmp-field=ifDescr --snmp-value="eth0"
   #创建分区数据图像
   phpadd_graphs.php --host-id="$host_ids" --graph-type=ds--graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="/"
   phpadd_graphs.php --host-id="$host_ids" --graph-type=ds--graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Memory buffers"
   phpadd_graphs.php --host-id="$host_ids" --graph-type=ds--graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Physicalmemory"
   phpadd_graphs.php --host-id="$host_ids" --graph-type=ds--graph-template-id=26 --snmp-query-id=8--snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Swapspace"
   #添加设备到相应的组
   phpadd_tree.php --host-id="$host_ids" --type=node --node-type=host--tree-id=9
done < $MYFILE   
##--脚本结束--##





参数说明:
php add_device.php用法说明:
这个是添加device 其中--templates是应用的主机模板,可以通过add_device.php –list-host-templates来查看,后面的是snmp参数


add_graphs.php用法说明:
这个是绘图脚本,可以通过add_graphs.php--list-templates来查看有哪些图形模板,可以从手动添加监控绘图里面查看绘图的模板,然后确认模板id



执行程序:
Notice和Warning忽略,看到下面有成功添加信息即可。


到cacti系统Devices下确认,是否添加成功。

到这里批量添加的工作基本结束,请再根据实际情况检查确认每台主机。

页: [1]
查看完整版本: Cacti 系统批量添加Device脚本