Oct 09 2008

snmpget读取squid的信息

Category: 技术ssmax @ 17:10:14

net-snmp版本是2.5.4,比较新,squid文档里面的方法都有点错误了。。。

首先是squid的配置文件squid.conf

acl monitor src ip/mask

acl snmppublic snmp_community topsecret
snmp_access allow snmppublic monitor
snmp_access deny all

这里定义了哪个机器可以访问snmp agent,还有snmp community string,这个community string一定要记住,类似验证字符串的东西,估计是加密解密传输数据用到的种子。

然后看看squid的

share/mib.txt

这个就是squid mib的id信息,有很多,随便找个

— SQUID-MIB  { iso org(3) dod(6) internet(1) private(4) enterprises(1) 3495 }

。。。。。

nlanr OBJECT IDENTIFIER ::= { enterprises 3495 }

squid MODULE-IDENTITY
    LAST-UPDATED “9809220000Z”
    ORGANIZATION “National Laboratory for Applied Network Research”
    CONTACT-INFO
            ”        Squid Developers

             E-mail: squid@squid-cache.org
    DESCRIPTION
                “Squid MIB defined for the management of the Squid
                proxy server. See http://www.squid-cache.org/.”

    REVISION      “9809220000Z”
    DESCRIPTION
                “Move to SMIv2. Prepare to split into proxy/squid.”
    REVISION      “9901010000Z”
    DESCRIPTION
                “Added objects and corrected asn.1 syntax and
                descriptions.”
    ::= { nlanr 1 }


— OID Assignments

        cacheSystem     OBJECT IDENTIFIER ::= { squid 1 }
        cacheConfig     OBJECT IDENTIFIER ::= { squid 2 }
        cachePerf       OBJECT IDENTIFIER ::= { squid 3 }
        cacheNetwork    OBJECT IDENTIFIER ::= { squid 4 }
        cacheMesh       OBJECT IDENTIFIER ::= { squid 5 }

— cacheSystem group

        cacheSysVMsize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        ” Storage Mem size in KB ”
        ::= { cacheSystem 1 }

 

 

– SQUID-MIB  { iso org(3) dod(6) internet(1) private(4) enterprises(1) 3495 }

第一行的意思就是mib oid开头是怎么样子的,squid的全部是 .1.3.6.1.4.1.3495

 

nlanr OBJECT IDENTIFIER ::= { enterprises 3495 }

nlanr 代表前面那串

squid  一大串最后 ::= { nlanr 1 } 表示 squid  是 enterprises.3495.1

cacheSystem     OBJECT IDENTIFIER ::= { squid 1 }

表示 cacheSystem     是squid 后面的1。enterprises.3495.1.1

 

下面就是具体数据,比如squid->cacheSystem->cacheSysVMsize 是 .1.3.6.1.4.1.3495.1.1.1

        cacheSysVMsize OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                        ” Storage Mem size in KB ”
        ::= { cacheSystem 1 }

cacheSysVMsize 是 cacheSystem 下面的1

 

都有说明数值和类型。。。

然后用新版的net-snmp命令snmpget,协议版本用1和2c都可以,估计2c是向下兼容,3就不行。

squid默认的snmp端口是3401,udp方式,照写就好了。配置里面可以通过snmp_port改端口。

snmpget -v 2c -c topsecret udp:ip:port “.1.3.6.1.4.1.3495.1.1.1”

这样是get一个数值。

snmpwalk -v 2c -c topsecret udp:ip:port “.1.3.6.1.4.1.3495”

这样就可以把所有squid mibs都get出来了,然后具体分析就看模板怎么搞了,继续研究之。。。

或者可以把mib.txt复制都本机,或者snmp的mib模块目录,然后

snmpwalk -m “./mib.txt” -v 2c -c topsecret udp:ip:port “squid”

这样不用这么长,出来的数据的直观一点了。。。