F5获取vs、pool、member当前、峰值、总计连接数的oid

以前有的用户需要对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
时间: 2024-08-04 11:35:43

F5获取vs、pool、member当前、峰值、总计连接数的oid的相关文章

添加 Pool Member - 每天5分钟玩转 OpenStack(123)

我们已经有了 Load Balance Pool "web servers"和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image. 先准备两个 instance: "Web1" 和 "Web2". 使用 Ubuntu Cloud Image 由于 cirros 镜像不能运行 HTTP 服务,我们将使用 Ubuntu Cloud Image.下载地址为 http://uec-images.ubuntu.c

获取CACTI RRD文件每天峰值的SHELL

代码如下: url="/var/www/html/rra/150/9517.rrd /var/www/html/rra/256/11345.rrd /var/www/html/rra/150/9518.rrd" fff=`echo $url | awk '{print NF}'` for((i=1;i<=3;i++)) do criqi=`date +%s -d "2016-04-11 00:00:00"` eriqi=`date +%s -d "2

深入浅出SharePoint2013——获取Application Pool的id和name对照表

PS C:\Users\Mingle> Get-SPServiceApplicationPool | select Id, Name Id Name-- ----f864f712-faa4-4a79-82e4-830b8d128764     SecurityTokenServiceApplicationPoolb51bd744-2935-48c2-9f7c-5b53ea0a583c     SharePoint Web Services System29257855-d26d-49e8-b43

F5负载均衡上使用iRule 来选择SNAT pool

需求:使用iRule 根据不同目的地址或端口,来选择SNAT 地址 ,实现相同的后台节点,访问不同目的地址或者目的端口时,源地址也会不同: 网络概况:内网:后台节点server:192.168.10.71对应VLAN: Internal-selfIP: 192.168.10.1外网:客户端client: 172.16.10.172对应VLAN: external-selfIP: 172.16.10.1 1.需求一: 负载均衡功能(client访问server) 解决方案1. 新建virtual

在F5上发布FTP应用

1,在一台PC上用FTP工具模拟开启FTP服务 2,F5上新建new-Ftp-profile继承系统ftp-profile,data口20 3.新建vs,端口21,vs地址192.168.10.10,关联pool,pool member端口21 测试通过,能够通过F5的vs地址下载FTP文件

f5转发模式

1.透明模式:Performance L4 这种类型的Virtual server.F5按照纯四层的方式处理数据包,只看源IP,源端口,目的IP和目的端口.数据包到达F5后,只改变目的IP和端口进行转发.这部分的数据处理方式是可以通过F5 PVA芯片来进行转发的.所以这种模式从理论上来将是不会消耗CPU的.但是F5对PVA转发的要求还是比较苛刻,会有很多相关条件的限制. 2.透传模式:standard 这种类型的Virtual server在数据包F5上是采取full proxy的处理模式.一个

F5 VSOutbound-主动出方向

1. 配置了全局的SNAT后,VS可以选择fastL4或者ip forwarding,不需要配置Pool member 此时服务器可以ping通外网 F5上抓包 1. 没有配置全局SNAT,VS 配置automap [email protected](localhost)(cfg-sync Standalone)(Active)(/Common)(tmos)# list ltm virtual outbound ltm virtual outbound { destination 0.0.0.0

F5内网大二层负载均衡业务访问故障解析(CISCO OTV+LISP-MTU问题导致)

一.问题现象 最近在某客户由于假期出现核心CISCO 6509硬件故障当机问题,进而发现F5发布的3个应用访问问题,出现一部分人访问应用出现不可用的问题,时好时坏,内网使用F5 GTM+LTM进行域名双活,内部同城双活DC通过三层路由使用CISCO的大二层技术OTV+LISP技术构建: F5上面检查应用不管是VS还是pool member都是正常,health check or monitor算法采用TCP:通过将LTM双机上面对端DC业务member 进行offline,GSLB的跨DC me

Innodb Buffer Pool内部结构

Innodb Buffer Pool内部结构 1.    Innodb Buffer 功能 Innodb buffer pool的主要功能存储外存页面在内存中的镜像.镜像有如下2种镜像: (1)只读镜像:只读镜像读取的是非脏页. (2)更新镜像:更新镜像为buffer pool中的脏页. Innodb实现了行级多版本(MVCC),而不是整个页的多版本.Oracle在实现中存在第三种镜像,就是版本镜像.而innodb中确实没有.在innodb中任何外存中的脏页的读取以及更新都是在buffer po