什么是SNMP?
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个协议(application layer protocol)、(database schema)和一组资源对象。该协议能够支持,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
工作原理
在典型的SNMP用法中,有许多系统被管理,而且是有一或多个系统在管理它们。每一个被管理的系统上又运行一个叫做代理者(agent)的 元件,且通过SNMP对管理系统报告资讯。
基本上,SNMP代理者以 呈现管理资料。管理系统透过GET,GETNEXT和GETBULK协定指令取回资讯,或是代理者在没有被询问的情况下,使用TRAP或INFORM传送资料。管理系统也可以传送配置更新或控制的请求,透过SET协定指令达到主动管理系统的目的。配置和控制指令只有当网络基本结构需要改变的时候使用,而监控指令则通常是常态性的工作。
可透过SNMP存取的变量以阶层的方式结合。这些分层和其他元数据(例如变量的类型和描述)以管理 (MIBs)的方式描述。
应用模型
SNMP是基于TCP/IP协议族的网络管理标准,是一种在IP网络中管理网络节点(如服务器、工作站、路由器、交换机等)的标准协议。SNMP能够使网络管理员提高网络管理效能,及时发现并解决网络问题以及规划网络的增长。网络管理员还可以通过SNMP接收网络节点的通知消息以及告警事件报告等来获知网络出现的问题。
SNMP管理的网络主要由三部分组成:
- 被管理的设备
- SNMP代理
- 网络管理系统(NMS)
它们之间的关系如右图所示。
- 网络中被管理的每一个设备都存在一个管理信息库(MIB)用于收集并储存管理信息。通过SNMP协议,NMS能获取这些信息。被管理设备,又称为网络单元或网络节点,可以是支持SNMP协议的路由器、交换机、服务器或者主机等等。
- SNMP代理是被管理设备上的一个网络管理软件模块,拥有本地设备的相关管理信息,并用于将它们转换成与SNMP兼容的格式,传递给NMS。
- NMS运行应用程序来实现监控被管理设备的功能。另外,NMS还为网络管理提供大量的处理程序及必须的储存资源。
在日常监控中,经常会用到snmp服务,而snmpwalk命令则是 测试系统各种信息最有效的方法,命令格式:
snmpwalk -c SNMP读密码 -v 1或2(代表SNMP版本) 交换机或路由器IP地址 OID(对象标示符)
现总结一些常用的方法如下:
1、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.25.1 得到取得windows端的系统进程用户数等其中-v是指版本,-c 是指密钥,也就是客户端snmp.conf里面所设置的,下面类同.
2、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.25.2.2 取得系统总内存
3、snmpwalk -v 2c -c public 10.103.33.1 hrSystemNumUsers 取得系统用户数
4、snmpwalk -v 2c -c public 10.103.33.1 .1.3.6.1.2.1.4.20 取得IP信息
5、snmpwalk -v 2c -c public 10.103.33.1 system 查看系统信息
6、snmpwalk -v 2c -c public 10.103.33.1 ifDescr 获取网卡信息
以上只是一些常用的信息,snmpwalk功能很多,可以获取系统各种信息,只要更改后面的信息类型即可.如果不知道什么类型,也可以不指定,这样所有系统信息都获取到:
snmpwalk -v 2c -c public 10.103.33.1
dmidecode -s system-serial-number 查看序列号
shell脚本:
yum install net-snmp net-snmp-devel net-snmp-utils -ysed -i /"^access notConfigGroup"/s/systemview/all/g /etc/snmp/snmpd.conf //更改权限允许其他IP访问echo "view all included .1 80" >> /etc/snmp/snmpd.confsed -i '/^com2sec/s/public/xxx/g' /etc/snmp/snmpd.conf //更改团体名chkconfig snmpd onservice snmpd start