Chinaunix首页 | 论坛 | 博客
  • 博客访问: 287734
  • 博文数量: 37
  • 博客积分: 1296
  • 博客等级: 中尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-24 17:00
文章分类

全部博文(37)

文章存档

2013年(1)

2011年(21)

2010年(4)

2009年(2)

2007年(9)

我的朋友

分类: LINUX

2010-03-05 16:22:10

公司的发展,到各地机房上机器。上完就要涉及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) |
给主人留下些什么吧!~~

chinaunix网友2010-11-24 15:38:53

非常赞~