`
avery_leo
  • 浏览: 388303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

snmp学习笔记(一)

    博客分类:
  • JAVA
阅读更多

SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。
    目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。
    SNMP提供了一种统一的、跨平台的设备管理办法。

 

 先做个例子吧,看了好多协议还是一头雾水:-)

 

 我的pc是winxp,首先安装Window组件的管理监视工具(具体安装包xpsp2,在我附件里,其它的自己找吧),我的ip是192.168.10.191

 

 现在做一个最简单的snmp操作,获取我的pcname。

 

 接下来准本snmp的通信工具,我用的是snmputil.exe,下载地址http://www.patching.net/abu/tools/win/snmputil.exe

 

snmputil的命令规则是:
snmputil [get|getnext|walk] agent community oid [oid ...]
[get|getnext|walk]为消息类型,我们此次进行的操作是get
agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.10.191
community:分区域,即密码,默认是public
oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号是.1.3.6.1.2.1.1.5.0

 

打开命令行窗口,进入snmputil所在路径,键入
snmputil get 192.168.10.191 public .1.3.6.1.2.1.1.5.0
如果参数都正确,控制台就会显示出机器名。

 

 

分享到:
评论
6 楼 xwq18 2010-06-21  
谢谢诶!
5 楼 pkwindows 2008-12-05  
讲的太好了
4 楼 wuhui 2008-11-21  
error on SnmpMgrRequest 40  我的为什么会有这个错误呢?
3 楼 alphones 2008-07-22  
3q your infomations!!
2 楼 avery_leo 2008-07-02  
自己总结一下,为了实现上面的需求,按照javafound 的指点;

先解决cpu和内存的问题
2.CPU 记录cpu使用情况/Memory 记录内存使用情况/Disk 记录硬盘使用情况
:试下JDK中的jconsole.exe这个工具,可编程的,java中使用RunningTime API,File API。

下面是在wanlh的专栏,作者:万浪辉ID:wanlh 得总结,现载录到此,对作者表示感谢

Windows环境可以用JNI通过API函数 getProcessCPUTime()来得到。
思路如下:
Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类的exec()方法系统命令"top”,获取"top"的输出,从而得到CPU和内存的使用情况。对本程序稍加改动,还可以得到内存的使用情况。


import java.io.*;
public class CpuUsage {
 public double getCpuUsage() throws Exception {
  double cpuUsed = 0;
  Runtime rt = Runtime.getRuntime();
  Process p = rt.exec("top -b -n 1");// 调用系统的“top"命令
  BufferedReader in = null;
  try {
   in = new BufferedReader(new InputStreamReader(p.getInputStream()));
   String str = null;
   String[] strArray = null;
   while ((str = in.readLine()) != null) {
    int m = 0;
    if (str.indexOf(" R ") != -1 && str.indexOf("top") == -1) {// 只分析正在运行的进程,top进程本身除外
     strArray = str.split(" ");
     for (String tmp : strArray) {
      if (tmp.trim().length() == 0)
       continue;
      if (++m == 9) {// 第9列为CPU的使用百分比(RedHat 9)
       cpuUsed += Double.parseDouble(tmp);
      }
     }
     // System.out.println(str);
    }
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   in.close();
  }
  return cpuUsed;
 }

 public static void main(String[] args) throws Exception {
  CpuUsage cpu = new CpuUsage();
  System.out.println("cpu used:" + cpu.getCpuUsage() + "%");
 }
}

1 楼 javafound 2008-06-20  
不好意思,你那个服务器监控需求的贴子被隐藏了。我只好发到这里:
你的需求是:
引用
以WEB方式监控平台运行情况
监控对象包括:
监控对象 说明
ApplicationProgram 记录应用程序运行状态
CPU 记录cpu使用情况
Database 记录数据库运行状态
Disk 记录硬盘使用情况
Memory 记录内存使用情况
Network 记录网络运行状态
Service 记录服务运行状态
TableSpace 记录表空间使用情况

leader说要用到了SNMP,这方面以前没接触过,最近开始猛啃,但还是没有好的思路,各位兄弟多多指点,先谢过了。


       我认为这里是没必要用SNMP的,它是监控网络设备的,不是服务器状态的。要监控4这些东东,我的建议是你自己编程实现,即自己编写一个日志模块,给web上调用::

1.pplicationProgram 记录应用程序运行状态:
  用log4J设定统一的日志记录器,生成统一规则的日志文件

2.CPU 记录cpu使用情况/Memory 记录内存使用情况/Disk 记录硬盘使用情况
:试下JDK中的jconsole.exe这个工具,可编程的,java中使用RunningTime API,File API。

3.Database 记录数据库运行状态/TableSpace 记录表空间使用情况:
定时执行探测sql就是,查询数据字典,数据库的哈东东都出来了。
       
4.Network 记录网络运行状态 :
如只是监控通断情况,自己编程调用ping来测链路,调用Telnet测试端口是否打开,如果要分析数据包,另当别论

5.Service 记录服务运行状态 :
可理解为监控进程,如果是你的java服务,内置日志吧,或调用jps(jdk6中的工具),

   服务器系统的监视和网络监视不是一回事,如是在liunx上,可调用的系统命令较多,winx上,有些要自己编程。
  建议你写一个独立的日志模块,规范各应用程序的日志规则对其进行分析(保存到DB最方便)就可做到了,SNMP与这无关。


相关推荐

    SNMP学习笔记

    ### SNMP学习笔记 #### SNMP架构概述 简单网络管理协议(Simple Network Management Protocol,简称SNMP)是一种用于收集和组织有关网络设备的信息,并更改该设备配置的互联网标准协议。SNMP在许多网络管理系统的...

    SNMP网管学习笔记

    SNMP网管学习笔记 SNMP(Simple Network ...SNMP网管学习笔记涵盖了Net-SNMP的编译和安装、MIB文件的编写、将MIB文件转换成C和H文件、Agent代理工程、Trap等知识点,为读者提供了一份详细的SNMP网管学习指南。

    snmp学习是强笔记

    本笔记旨在为新老学习者提供一个全面而深入的SNMP学习资源。 一、SNMP的基本概念 SNMP是由IETF(Internet Engineering Task Force,互联网工程任务组)制定的一套网络管理协议,它定义了网络管理系统(NMS,Network...

    SNMP的学习笔记(doc文档)

    ### SNMP学习笔记精要 #### 一、基本编码规则 (BRE) 在SNMP协议中,**基本编码规则**(Basic Encoding Rule, BER)是用于序列化数据的一种方式,确保不同设备间可以一致地解析和传输数据。BER使用**类型-长度-值**...

    SNMP简单网络管理协议学习笔记

    SNMP由一组协议定义组成,包括管理信息结构(SMI)、管理信息库(MIB)、以及协议操作(GET、SET、TRAP等)。 **SMI(Structured Management Information)结构化管理信息** SMI是SNMP中的一个关键部分,定义了...

    SNMP学习参考

    "【原创】snmp学习笔记——配置使用trap(一)"这篇文档可能详细介绍了在实际操作中如何设置SNMP Agent来发送Trap,以及管理站如何接收和处理这些Trap信息。这对于网络运维人员来说是日常工作中不可或缺的知识。 ...

    2007网络工程师学习笔记

    【网络工程师学习笔记】 在2007年的网络工程领域,学习笔记是深入理解与掌握核心技术的关键资源。这些笔记详尽地涵盖了网络基础、网络设计、网络实施、网络管理及故障排查等多个方面,旨在帮助工程师们提升专业技能...

    学习笔记-问卷.docx

    ### HCIA学习笔记知识点梳理 #### 一、企业网络架构介绍 - **大型网络基本架构**:主要包括核心层(Core Layer)、汇聚层(Aggregation Layer)以及接入层(Access Layer)。 - **核心层**:负责高速数据转发,通常位于...

    tuxedo TMIB学习笔记

    ### Tuxedo TMIB 学习笔记 #### 1. 概述 Tuxedo TMIB(Transaction Manager Information Base)是Tuxedo系统中的一个重要组成部分,主要用于监控和管理Tuxedo环境中运行的应用程序和服务。本篇笔记将详细介绍TMIB的...

    snmpv3学习笔记

    SNMP (Simple Network Management Protocol) 是一种广泛使用的网络管理协议,尤其在监控和管理系统设备状态时。SNMPv3 是其第三个主要版本,它在安全性和管理功能上做了显著改进,以满足更高级别的网络管理和保护...

    Netconf协议学习笔记.doc

    "Netconf协议学习笔记" Netconf协议是基于XML的网络配置和管理协议,提供了一种通过中心计算机远程管理和监控设备的方法。Netconf协议的主要特点是: 1. 使用XML格式定义消息,运用RPC机制修改配置信息,既方便...

    H3C VLAN的学习笔记

    【H3C VLAN 学习笔记】 在计算机网络领域,VLAN(虚拟局域网)是一种将物理局域网(LAN)逻辑上划分为多个独立的网络段的技术,以提高网络管理和安全性。H3C(Huawei-3Com)作为全球知名的网络设备提供商,其产品...

    CCNP学习笔记完整版.pdf

    CCNP学习笔记完整版的内容,从所提供的文档部分摘录来看,涵盖了一系列网络技术学习的要点和概念,以及与之相关的配置和应用场景。以下是对这部分内容的详细解读和知识点阐述: ### IP寻址 - **IP地址的作用**: IP...

    kakuti学习笔记

    该学习笔记主要介绍了如何使用Bash脚本结合SNMP协议查询Linux主机上的TCP连接状态,并进一步将这些信息集成到Cacti监控系统中进行实时监控。这对于维护人员来说非常实用,可以帮助他们更好地理解网络流量情况,及时...

    史上最强wolf ccie 笔记

    【史上最全的wolf版CISCO学习笔记汇总】是一份极具价值的资料集合,专为准备Cisco Certified Internetwork Expert (CCIE)认证考试的学习者而设计。这份笔记集合凝聚了多位专家的心血,深入浅出地涵盖了CCIE考试所需...

    PHP学习笔记总结.doc

    【PHP学习笔记总结】 PHP(超文本预处理器)是一种广泛使用的开源脚本语言,特别适合于Web开发。它能够嵌入HTML中,让开发者在服务器端处理数据,生成动态网页内容。与JavaScript不同,PHP代码在服务器上执行,然后...

    950分CCNA学习笔记

    ### CCNA学习笔记知识点梳理 #### 一、网络分层模型 **1. TCP/IP协议栈** TCP/IP协议栈是互联网通信的基础模型,分为四层结构: - **应用层(Application Layer)** - 用户接口层,例如:Telnet、SMTP、HTTP、FTP等...

    PHP学习笔记

    【PHP学习笔记】深入解析 PHP,全称“PHP: Hypertext Preprocessor”,是一种广泛使用的开源脚本语言,尤其适用于Web开发。与客户端JavaScript不同,PHP代码在服务器端执行,这意味着它可以处理表单数据、生成动态...

    网络工程师学习笔记电子书.docx

    《网络工程师学习笔记电子书》是一份详尽的IT技术文档,主要涵盖了网络工程领域的核心概念和技术。以下是对各章内容的详细解析: 第1章 交换技术:本章介绍了网络通信的基础,即数据交换原理,包括电路交换、报文...

Global site tag (gtag.js) - Google Analytics