公司的发展,到各地机房上机器。上完就要涉及cacti添加监控,正是点到手都要抽经了。
参考了各大牛人的文章,说是在cacti的cli目录下就有批量添加主机的php。
自己研究了一下午,写了个脚本。放在这里做备份,以后不知道啥时候可以用。
#! /bin/bash PHP=/usr/bin/php DEVICE=/var/www/html/cli/add_device.php GRAPHS=/var/www/html/cli/add_graphs.php
cat ./host|while read HOST;do HOST_NAME=`echo $HOST|awk '{print $1}'` HOST_IP=`echo $HOST|awk '{print $2}'`
#device add $PHP $DEVICE --description=$HOST_NAME --ip=$HOST_IP --version=2 --template=1 --community=public --avail=snmp
#graphs add HOST_ID=`$PHP $GRAPHS --list-hosts | grep "$HOST_IP" | awk '{print $1}'` echo "Adding eth ..." $PHP $GRAPHS --graph-type=ds --graph-template-id=2 --host-id=$HOST_ID --snmp-query-id=1 --snmp-query-type-id=14 --snmp-field=ifDescr --snmp-value=eth0 $PHP $GRAPHS --graph-type=ds --graph-template-id=2 --host-id=$HOST_ID --snmp-query-id=1 --snmp-query-type-id=14 --snmp-field=ifDescr --snmp-value=eth1 echo "Adding /home ..." $PHP $GRAPHS --graph-type=ds --graph-template-id=3 --host-id=$HOST_ID --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value=/home echo "Adding MEM ..." $PHP $GRAPHS --graph-type=ds --graph-template-id=3 --host-id=$HOST_ID --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Memory Buffers" $PHP $GRAPHS --graph-type=ds --graph-template-id=3 --host-id=$HOST_ID --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Real Memory" $PHP $GRAPHS --graph-type=ds --graph-template-id=3 --host-id=$HOST_ID --snmp-query-id=8 --snmp-query-type-id=18 --snmp-field=hrStorageDescr --snmp-value="Swap Space" echo "Adding iowait ..." $PHP $GRAPHS --graph-type=cg --graph-template-id=48 --host-id=$HOST_ID echo "adding loadavg" $PHP $GRAPHS --graph-type=cg --graph-template-id=11 --host-id=$HOST_ID echo $HOST_ID done
|
其中 add_graphs 的参数最多,下面写一些介绍。
--list-hosts 列主机
--list-graph-templates 列出图形模板
列出来是这样:
2 Interface - Traffic (bits/sec)
3 ucd/net - Available Disk Space
4 ucd/net - CPU Usage
5 Karlnet - Wireless Levels
6 Karlnet - Wireless Transmissions
7 Unix - Ping Latency
8 Unix - Processes
9 Unix - Load Average
10 Unix - Logged in Users
--list-input-fields --graph-template-id=[ID]
这个好难解释,说不清。大家自己试试,如果有那位高人知道怎么说不吝赐教。
--list-snmp-queries
snmp 获取模板
例:
1 SNMP - Interface Statistics
2 ucd/net - Get Monitored Partitions
3 Karlnet - Wireless Bridge Statistics
4 Netware - Get Available Volumes
6 Unix - Get Mounted Partitions
--list-query-types --snmp-query-id [ID]
通过 上面的 snmp-queries 查到的id ,可以查到query-id
--list-snmp-fields --host-id=[ID]
通过 host-id 来查询 得到 query-types
--list-snmp-values --host-id=[ID] --snmp-field=[Field]
通过 主机id 和 snmp-query 来得到snmp-values
比如查网络 会得到 eth0 eth1 lo 等
文字还是有些难表达,可以通过上面这个结合脚本看。
阅读(7305) | 评论(1) | 转发(1) |