背景
很多厂商网络设备获取网络信息接口不一样,snmp用来统一接口
官网Net-SNMP
模型
每个主机可以安装自己的snmp agent,它可以监控目标机器的网络流量,当外部查询snmp信息时,请求会发到目标机器的snmp agent,由snmp agent查询完再返回给外部查询方


命令
snmpget
snmpget agent_ip_addr -v 1 -c public mib_id

snmpwalk
可用来查看给定层级的mib树底下有多少子树
snmpwalk 127.0.0.1(用自己的ip) -v 1 -c public snmp_agent_addr(自己的mib),每次查到的数据动态变化,具体接口调用流程没深入看

常用oid
可以通过snmpwalk查某层级底下的所有oid
snmpget、snmpwalk和snmptranslate - 隔壁家的大白菜 - 博客园 (cnblogs.com)
ceilometer inspect snmp
梳理下ceilometer inspect snmp流程。inspect的逻辑在ceilometer/hardware下,主要在generic.py和snmp.py中

pollster先调用get_samples获取监控指标,具体通过inspector.inspect_generic方法获取数据

snmp inspector返回指标值和metadata,metadata用来组装resource_id
find missing oid

主要寻找一个指标自己的oid和指标metadata里的oid,查到oid后,将所有oid放到new_oids里,然后返回new_oids。指标oid这些信息定义在snmp.yaml中

query oids
获取完待查询的oids后,调用query_oids方法查询oid对应的值


auth_strategy默认是public

通过udp调cmdgen.CommandGenerator查询oid对应的值,查完放到cache里,该函数没有返回值。如果oid查询结果只有一个值,调用getcmd,如果oid查询结果有多个值,调用bulkcmd

查询结果格式是长度为4的元组,oid和oid对应的值放在元组最后一个元素,parse_snmp_return用来从查询结果解析出来oid和oid对应的值,放到cache里


find match oids
之前查oid时,是指标的值连同指标metadata的值一起查的,现在需要从里面提取出指标的oid对应的值,调用find_matching_oids方法
对于多个查询结果,或者前缀查询,会对应处理
SNMP:统一网络监控接口的IT工具详解
1115

被折叠的 条评论
为什么被折叠?



