以前有的用户需要对F5上配置的业务进行监控,会索要每个业务甚至于每个节点的一些信息,因为不同的配置有不同的名称,所以oid并不是固定的,只要配置名字有变化,oid就会出现变化,现贴出获取一些oid的方法,以供备用。不喜勿喷。
#!/bin/bash
function define()
{
user=`whoami`
path=/tmp/snmp/
vs_curconn_oid_tmp=${path}vs_curconn_oid.tmp
vs_curconn_name_tmp=${path}vs_curconn_name.tmp
vs_curconn=${path}vs_curconn.txt
vs_totconn_oid_tmp=${path}vs_totconn_oid.tmp
vs_totconn_name_tmp=${path}vs_totconn_name.tmp
vs_totconn=${path}vs_totconn.txt
vs_maxconn_oid_tmp=${path}vs_maxconn_oid.tmp
vs_maxconn_name_tmp=${path}vs_maxconn_name.tmp
vs_maxconn=${path}vs_maxconn.txt
pool_curconn_oid_tmp=${path}pool_curconn_oid.tmp
pool_curconn_name_tmp=${path}pool_curconn_name.tmp
pool_curconn=${path}pool_curconn.txt
pool_totconn_oid_tmp=${path}pool_totconn_oid.tmp
pool_totconn_name_tmp=${path}pool_totconn_name.tmp
pool_totconn=${path}pool_totconn.txt
pool_maxconn_oid_tmp=${path}pool_maxconn_oid.tmp
pool_maxconn_name_tmp=${path}pool_maxconn_name.tmp
pool_maxconn=${path}pool_maxconn.txt
member_curconn_oid_tmp=${path}member_curconn_oid.tmp
member_curconn_name_tmp=${path}member_curconn_name.tmp
member_curconn=${path}member_curconn.txt
member_totconn_oid_tmp=${path}member_totconn_oid.tmp
member_totconn_name_tmp=${path}member_totconn_name.tmp
member_totconn=${path}member_totconn.txt
member_maxconn_oid_tmp=${path}member_maxconn_oid.tmp
member_maxconn_name_tmp=${path}member_maxconn_name.tmp
member_maxconn=${path}member_maxconn.txt
}
function check()
{
if [ $user != root ]
then
echo "Please use root user."
exit 1
fi
if [ ! -d $path ]
then
mkdir $path
fi
}
function line()
{
cols=`tput cols`
for l in `seq 1 ${cols}`
do
echo -n "="
done
}
function vs_curconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.10.2.3.1.12 > $vs_curconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.10.2.3.1.12 > $vs_curconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $vs_curconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $vs_curconn_name_tmp
line >> $vs_curconn
echo -e "LTM Virtual Server Client Current Connections" >> $vs_curconn
echo "" >> $vs_curconn
for i in `seq 1 $count`
do
eval echo -n "\${vs_count_name${i}}" >> $vs_curconn
echo -en "\t\t" >> $vs_curconn
eval echo "\${vs_count_oid${i}}" >> $vs_curconn
done
line >> $vs_curconn
}
function vs_totconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.10.2.3.1.11 > $vs_totconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.10.2.3.1.11 > $vs_totconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $vs_totconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $vs_totconn_name_tmp
line >> $vs_totconn
echo -e "LTM Virtual Server Client Total Connections" >> $vs_totconn
echo "" >> $vs_totconn
for i in `seq 1 $count`
do
eval echo -n "\${vs_count_name${i}}" >> $vs_totconn
echo -en "\t\t" >> $vs_totconn
eval echo "\${vs_count_oid${i}}" >> $vs_totconn
done
line >> $vs_totconn
}
function vs_maxconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.10.2.3.1.10 > $vs_maxconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.10.2.3.1.10 > $vs_maxconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $vs_maxconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval vs_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $vs_maxconn_name_tmp
line >> $vs_maxconn
echo -e "LTM Virtual Server Client Maximum Connections" >> $vs_maxconn
echo "" >> $vs_maxconn
for i in `seq 1 $count`
do
eval echo -n "\${vs_count_name${i}}" >> $vs_maxconn
echo -en "\t\t" >> $vs_maxconn
eval echo "\${vs_count_oid${i}}" >> $vs_maxconn
done
line >> $vs_maxconn
}
function pool_curconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.2.3.1.8 > $pool_curconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.2.3.1.8 > $pool_curconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $pool_curconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $pool_curconn_name_tmp
line >> $pool_curconn
echo -e "LTM Pool Server Current Connections" >> $pool_curconn
echo "" >> $pool_curconn
for i in `seq 1 $count`
do
eval echo -n "\${pool_count_name${i}}" >> $pool_curconn
echo -en "\t\t" >> $pool_curconn
eval echo "\${pool_count_oid${i}}" >> $pool_curconn
done
line >> $pool_curconn
}
function pool_totconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.2.3.1.7 > $pool_totconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.2.3.1.7 > $pool_totconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $pool_totconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $pool_totconn_name_tmp
line >> $pool_totconn
echo -e "LTM Pool Server Total Connections" >> $pool_totconn
echo "" >> $pool_totconn
for i in `seq 1 $count`
do
eval echo -n "\${pool_count_name${i}}" >> $pool_totconn
echo -en "\t\t" >> $pool_totconn
eval echo "\${pool_count_oid${i}}" >> $pool_totconn
done
line >> $pool_totconn
}
function pool_maxconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.2.3.1.6 > $pool_maxconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.2.3.1.6 > $pool_maxconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $pool_maxconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval pool_count_name${count}=`echo $line | awk -F ‘\"‘ ‘{print $2}‘`
done < $pool_maxconn_name_tmp
line >> $pool_maxconn
echo -e "LTM Pool Server Maximum Connections" >> $pool_maxconn
echo "" >> $pool_maxconn
for i in `seq 1 $count`
do
eval echo -n "\${pool_count_name${i}}" >> $pool_maxconn
echo -en "\t\t" >> $pool_maxconn
eval echo "\${pool_count_oid${i}}" >> $pool_maxconn
done
line >> $pool_maxconn
}
function member_curconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.4.3.1.11 > $member_curconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.4.3.1.11 > $member_curconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $member_curconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_name${count}=`echo $line | awk -F ‘[\"|.| ]+‘ ‘{print $2"-"$4"."$5"."$6"."$7":"$8}‘`
done < $member_curconn_name_tmp
line >> $member_curconn
echo -e "LTM Pool Member Server Current Connections" >> $member_curconn
echo "" >> $member_curconn
for i in `seq 1 $count`
do
eval echo -n "\${member_count_name${i}}" >> $member_curconn
echo -en "\t\t" >> $member_curconn
eval echo "\${member_count_oid${i}}" >> $member_curconn
done
line >> $member_curconn
}
function member_totconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.4.3.1.10 > $member_totconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.4.3.1.10 > $member_totconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $member_totconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_name${count}=`echo $line | awk -F ‘[\"|.| ]+‘ ‘{print $2"-"$4"."$5"."$6"."$7":"$8}‘`
done < $member_totconn_name_tmp
line >> $member_totconn
echo -e "LTM Pool Member Server Total Connections" >> $member_totconn
echo "" >> $member_totconn
for i in `seq 1 $count`
do
eval echo -n "\${member_count_name${i}}" >> $member_totconn
echo -en "\t\t" >> $member_totconn
eval echo "\${member_count_oid${i}}" >> $member_totconn
done
line >> $member_totconn
}
function member_maxconn_start()
{
snmpwalk -v 2c -c public localhost -On .1.3.6.1.4.1.3375.2.2.5.4.3.1.9 > $member_maxconn_oid_tmp
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.3375.2.2.5.4.3.1.9 > $member_maxconn_name_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_oid${count}=`echo $line | awk ‘{print $1}‘`
done < $member_maxconn_oid_tmp
count=0
while read line
do
count=$((${count}+1))
eval member_count_name${count}=`echo $line | awk -F ‘[\"|.| ]+‘ ‘{print $2"-"$4"."$5"."$6"."$7":"$8}‘`
done < $member_maxconn_name_tmp
line >> $member_maxconn
echo -e "LTM Pool Member Server Maximum Connections" >> $member_maxconn
echo "" >> $member_maxconn
for i in `seq 1 $count`
do
eval echo -n "\${member_count_name${i}}" >> $member_maxconn
echo -en "\t\t" >> $member_maxconn
eval echo "\${member_count_oid${i}}" >> $member_maxconn
done
line >> $member_maxconn
}
function delete_tmp()
{
find $path -type f -name "*.tmp" | xargs rm -f {}
}
function main()
{
define
check
vs_curconn_start
vs_totconn_start
vs_maxconn_start
pool_curconn_start
pool_totconn_start
pool_maxconn_start
member_curconn_start
member_totconn_start
member_maxconn_start
delete_tmp
}
main本文出自 “菜鸟东” 博客,请务必保留此出处http://radish.blog.51cto.com/5944322/1735363
F5获取vs、pool、member当前、峰值、总计连接数的oid
原文地址:http://radish.blog.51cto.com/5944322/1735363