- 浏览: 382684 次
- 性别:
- 来自: 北京
最新评论
-
liuzhongzhou2721:
不错啊
Snmp4j编程简介之三:Snmp -
ahong520:
我在Keystore.getInstance("JK ...
java实现 SSL双向认证 -
tanghanlin:
好吧,还是支持下
Snmp4j编程简介之三:Snmp -
sjp524617477:
mark
java实现 SSL双向认证 -
dikesky:
您好,看了您的这篇文章学到很多东西。希望您提供一个QQ号(发到 ...
httpclient笔记(二)
最近公司有个项目,其中有一块要求如下:
以WEB方式监控平台运行情况
监控对象包括:
监控对象 说明
ApplicationProgram 记录应用程序运行状态
CPU 记录cpu使用情况
Database 记录数据库运行状态
Disk 记录硬盘使用情况
Memory 记录内存使用情况
Network 记录网络运行状态
Service 记录服务运行状态
TableSpace 记录表空间使用情况
leader说要用到了SNMP,这方面以前没接触过,最近开始猛啃,但还是没有好的思路,各位兄弟多多指点,先谢过了。
需要系统开 snmp 服务,
写个网关采集信息保存到数据库,web浏览数据库。
snmp采集可用 uk.co.westhawk.snmp 或者 snmp4j
写个网关采集信息保存到数据库,web浏览数据库。
snmp采集可用 uk.co.westhawk.snmp 或者 snmp4j
感谢hut给的思路
我找个例子,各位帮我看看:
package com.join.snmptext; import org.snmp4j.CommunityTarget; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; import org.snmp4j.event.ResponseEvent; import org.snmp4j.mp.SnmpConstants; import org.snmp4j.smi.OID; import org.snmp4j.smi.OctetString; import org.snmp4j.smi.VariableBinding; import org.snmp4j.transport.DefaultUdpTransportMapping; import org.snmp4j.smi.*; import java.awt.*; import javax.swing.*; import java.net.*; public class SendSnmp extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JLabel jLabel = null; private JLabel jLabel1 = null; private JLabel jLabel2 = null; private JLabel jLabel3 = null; private JTextField ipAddress = null; private JTextField Port = null; private JTextField Oid=null; private JTextArea responseText=null; private JScrollPane jsp=null; private JComboBox version=null; private JButton Get=null; private JButton GetNext=null; private JButton End=null; private CommunityTarget target=new CommunityTarget(); private static String ip="";//Ŀ��ip private int v;//�汾�� public SendSnmp() { super(); initialize(); } private void initialize() { this.setSize(428, 374); this.setContentPane(getJContentPane()); this.setTitle("Send_Receive"); } private JPanel getJContentPane() { if (jContentPane == null) { jLabel1 = new JLabel(); jLabel1.setBounds(new Rectangle(0, 20, 107, 30)); jLabel1.setText("����IP:"); jLabel = new JLabel(); jLabel.setBounds(new Rectangle(200, 20, 107, 30)); jLabel.setText("Port:"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(jLabel, null); jContentPane.add(getIpAddress(), null); jContentPane.add(jLabel1, null); jContentPane.add(getport(), null); jLabel2 = new JLabel(); jLabel2.setBounds(new Rectangle(0, 60, 107, 30)); jLabel2.setText("snmp�汾��:"); jContentPane.add(jLabel2, null); jLabel3 = new JLabel(); jLabel3.setBounds(new Rectangle(0, 150, 107, 30)); jLabel3.setText("����OID:"); jContentPane.add(jLabel3, null); jContentPane.add(getVersion(), null); jContentPane.add(getOid(), null); jContentPane.add(getGetNext(), null); jContentPane.add(getEnd(), null); jContentPane.add(getGet(), null); jContentPane.add(getJScrollPane(),null); } return jContentPane; } private JTextField getIpAddress() { if (ipAddress == null) { ipAddress = new JTextField(); ipAddress.setBounds(new Rectangle(40, 20, 100, 20)); try{ InetAddress address=InetAddress.getLocalHost(); String IP_name=address.getHostAddress(); ipAddress.setText(IP_name); } catch(UnknownHostException e){ } } return ipAddress; } private JTextField getport() { if (Port == null) { Port = new JTextField(); Port.setBounds(new Rectangle(240, 20, 100, 20)); Port.setText("161"); } return Port; } private JTextField getOid() { if (Oid== null) { Oid = new JTextField(); Oid.setBounds(new Rectangle(100, 150, 200, 20)); } return Oid; } private JScrollPane getJScrollPane() { if (jsp == null) { jsp = new JScrollPane(); jsp.setBounds(new Rectangle(100, 200, 250, 100)); jsp.setViewportView(getReply()); } return jsp; } private JTextArea getReply() { if (responseText== null) { responseText= new JTextArea(); responseText.setLineWrap(true); } return responseText; } private JButton getGetNext() { if (GetNext == null) { GetNext = new JButton(); GetNext.setBounds(new Rectangle(0, 230, 80, 20)); GetNext.setText("GetNext"); GetNext.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { Set("GetNext"); }}); } return GetNext; } private JButton getEnd() { if (End == null) { End = new JButton(); End.setBounds(new Rectangle(0, 260, 80, 20)); End.setText("End"); End.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.exit(1); } }); } return End; } private JButton getGet() { if (Get == null) { Get = new JButton(); Get.setBounds(new Rectangle(0, 200, 80, 20)); Get.setText("Get"); Get.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { Set("Get"); } }); } return Get; } private JComboBox getVersion() { if (version== null) { String s[]={"SnmpV1","SnmpV2","SnmpV3"}; version = new JComboBox(s); version.setBounds(new Rectangle(100, 60, 107, 20)); version.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { if(version.getSelectedIndex()==0) { v=1; } if(version.getSelectedIndex()==1) { v=2; } if(version.getSelectedIndex()==2) { v=3; } } }); } return version; } public void Set(String type) { try{ Snmp snmp = new Snmp(new DefaultUdpTransportMapping()); target = new CommunityTarget(); target.setCommunity(new OctetString("public")); if(v==1) { target.setVersion(SnmpConstants.version1); } if(v==2) { target.setVersion(SnmpConstants.version2c); } if(v==3) { target.setVersion(SnmpConstants.version3); } ip=ipAddress.getText(); String port=Port.getText(); target.setAddress(new UdpAddress(ip+"/"+port)); target.setRetries(1); target.setTimeout(1000); long l=System.currentTimeMillis(); int iii=0; snmp.listen(); PDU request = new PDU(); String OID=Oid.getText(); if(type.equals("Get")) { request.setType(PDU.GET); request.add(new VariableBinding(new OID(OID))); } if(type.equals("GetNext")) { request.setType(PDU.GETNEXT); request.add(new VariableBinding(new OID(OID))); } //request.setRequestID(new Integer32(-1111)); //request.add(new VariableBinding(new OID(OID),new Integer32(Integer.parseInt("01111000011110000",2))));//����Ӧ�������Ҫ���õ�ֵ System.out.println("���͵�UDP:" + request); PDU response = null; ResponseEvent responseEvent = snmp.send(request, target); iii=1; long ll=System.currentTimeMillis()-l; System.out.println("����ʱ��<=>:"+ll+" "+iii); response = responseEvent.getResponse(); ll=System.currentTimeMillis()-l; if(response!=null){ if(response.getErrorStatus()==response.noError){ String pause=responseEvent.getResponse().getVariableBindings().toString(); /*getvalue��ֵΪ��ӦOID��ֵ*/ String getvalue=pause.substring( pause.indexOf("= ")+2,pause.indexOf(']')); String oid=pause.substring(pause.indexOf("VBS[")+2,pause.indexOf("=")-1); System.out.println(oid+"::"); System.out.println(response); if(type.equals("Get")) { responseText.setText(""); responseText.append(change(getvalue)); } if(type.equals("GetNext")) { Oid.setText(oid); responseText.setText(""); responseText.append(change(getvalue)); } } } iii=0; } catch(Exception e){e.printStackTrace();} } public String change(String ss){ byte[] b=ss.getBytes(); if(b.length==1){ ss=String.valueOf(Integer.toHexString(b[0])); } return ss; } public static void main(String[] args) { SendSnmp ss=new SendSnmp(); ss.setVisible(true); } }
运行后:
我的开发环境是winxp ,我配置snmp服务,运行上面的程序:
点击getnext按钮 在eclipse控制台显示结果如下:
RESPONSE[requestID=1884906071, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.9.1 = 0:00:00.00]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.9.1 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.9.2:: RESPONSE[requestID=2037320774, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.9.2 = 0:00:00.00]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.9.2 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.10.1:: RESPONSE[requestID=2119481164, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.10.1 = 160092]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.10.1 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.10.2:: RESPONSE[requestID=2024271974, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.10.2 = 8659471]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.10.2 = Null]] ???????<=>:16 1 1.3.6.1.2.1.2.2.1.11.1:: RESPONSE[requestID=802354818, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.11.1 = 5319]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.11.1 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.11.2:: RESPONSE[requestID=1494985237, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.11.2 = 8265]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.11.2 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.12.1:: RESPONSE[requestID=1804022706, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.12.1 = 0]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.12.1 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.12.2:: RESPONSE[requestID=2093407011, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.12.2 = 2983]] ?????UDP:GETNEXT[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.12.2 = Null]] ???????<=>:0 1 1.3.6.1.2.1.2.2.1.13.1:: RESPONSE[requestID=1788293473, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.2.2.1.13.1 = 0]]
如何解析上述的OID(对象标识符)和返回状态值,
如何获取:
ApplicationProgram 记录应用程序运行状态
CPU 记录cpu使用情况
Database 记录数据库运行状态
Disk 记录硬盘使用情况
Memory 记录内存使用情况
Network 记录网络运行状态
Service 记录服务运行状态
TableSpace 记录表空间使用情况
各位帮忙分析一下,我对这不太熟悉,非常谢谢
发表评论
-
JOB小结
2009-03-27 09:53 1177众所周知,一般操作系统会提供定时执行任务的方法,例如:Unix ... -
安装JDK1.6.0.03
2009-03-26 10:51 1424一、安装JDK1.6.0.031、安装:上传bin包至服 ... -
常用端口
2008-11-28 15:38 1278端口号码 / 层 名称 注释 1 tcpmux ... -
我的blog文章精选(pdf电子书)
2008-11-20 15:39 1420用javaeye提供的make pdf功能,制作了自己的第 ... -
SAAJ-soap附件传递
2008-09-11 11:32 2642Web 服务协议已经从支持 ... -
snmp4j完整示例
2008-07-11 16:34 24633#mib.properties #Fri Jul 11 15: ... -
删除指定目录下的所有文件
2008-07-02 16:18 809public static void del(String f ... -
httpclient笔记(二)
2008-06-30 18:37 2631不多说了,直接上示例 ... -
httpclient笔记(一)
2008-06-25 18:55 10897Jakarta的httpclient3.1是最新版本,项目中需 ... -
snmp网络监控程序问题
2008-06-13 16:44 2393最近公司有个项目,其中有一块要求如下: 以WEB方式监控平台运 ... -
MyEclipse快捷键与插件大全(搜藏来自wangyu)
2008-06-13 14:52 1519MyEclipse快捷键与插件大全 该文来自wangyu,为 ... -
【Find Bugs——eclipse之BUG检测插件】
2008-06-13 11:12 4283【Find Bugs——eclipse之BUG检测插件】 是一 ... -
soap学习笔记(一)
2008-04-24 20:26 1558最近开发项目用到soap,于是开始研究相关资料,一边学习, ...
相关推荐
搜藏了很久的web服务器监控程序,设定每隔一段时间访问一下网站,如果访问不到,就会发出报警。网站管理很有用的
可以实时监控您的WEB服务器的运行状况,并将运行数据实时显示在客户端。
#功能:探测URL监控系统运行情况 #参数:URL地址,应用中文名称,唯一识别码(访问url后返回的特定字符串) #依赖脚本:数据库操作脚本dbExecurteSQL.sh #数据库操作脚本资源:...
对不同时期建设的监控平台,通过web访问的方式进行了整合。使用了c#,webbrowser,指定了webbrowser的版本,在win10X64,win7 32的环境中测试通过。结构相当简单,就是一个有单点登录功能的容器而已,在首页的列表中...
可以实时监控您的WEB服务器的运行状况,并将运行数据实时显示在客户端服务器端功能:程序随系统启动,启动最小化,自动登陆Windows操作系统!锁定桌面与鼠标,输入密码解锁,禁用本地WINDWOS信使,发送运行数据至...
服务器端和监控端可独立运行,也可配合使用 服务器端主要功能: 服务器端的主要功能是对服务器自己提供的服务进行实时监控。一旦监控的服务出现问题,监控程序将按事先设定的操作来恢复服务,包括自动重启IIS服务...
通过配置逻辑策略,在本地硬件策略引擎方式,使得可脱离于云平台在本地自动运行。通过边缘计算,采集控制终端可根据外界采集信息快速处理达到快速控制的需求。 ④、云策略控制功能 用户可在通过手机app、电脑WEB...
基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在 嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理...
服务器端和监控端可独立运行,也可配合使用服务器端主要功能: 服务器端的主要功能是对服务器自己提供的服务进行实时监控。一旦监控的服务出现问题,监控程序将按事先设定的操作来恢复服务,包括自动重启IIS服务,按...
一款可以自动监控Web服务器运行情况的软件,如果运行出现问题,软件将会通过email,信息或者声音等不同方式来提醒管理员,并且也会将事件记录到Log中去。 注册码: 用户名:HuYuFeng 序列码:594A24660598D757CABC1F...
这是一个免费强大的web服务器运行监控工具。本人以测试过,安全无毒。有防止病毒篡改主页,自动恢复主页功能,防止iis假死。保证iis 的正常运作
内涵大华监控web端调用demo以及实例说明、绝对可用,内含32,64版本
地图采用google地图API2.0,程序能够编译运行。功能有最后位置、实时监控、历史轨迹、地图标注、设置围栏、指令下发、里程统计、地图搜索、报警管理、用户和组管理、报表查询等功能。由于上传空间有限,数据库及配置...
项目名称:基于Go语言的ISM Web组态监控软件 核心技术:Go语言,辅以JavaScript、CSS、HTML 文件构成:总计4532个文件,包括但不限于以下类型: - 图像资源:PNG格式3519个,SVG格式328个 - 脚本文件:JavaScript...
基于嵌入式Web的舰船电站运行参数网络监控系统研究.pdf
遵循完整性、先进性和开放性的系统开发原则,本文通过NET开发平台,使用Silverlight技术及Web RIA Service技术,以"感知矿山"为基础,设计了全新的监控系统的WEB发布,实现了UI开发与设备开发的迭代。通过运行测试表明,该...
运行可靠、性能稳定、功能可模块组合、部署云平台的电力监控系统,可帮助单位供配电运行管理部门随时随地在线掌握电力设备运行状态,计划性预防性安排维护更换,减少意外停电,保障可靠供电,提高供配电可靠性,降低...
这个是我以前写的一个我公司的WebServices服务监控程序,功能是:每隔5秒就访问一次web服务,如果登录不上去,则立刻发送邮件通知相关人员,保证服务器和服务的正常运行。 注意: 开发环境为Visual Studio 2010 ...
大华视频集成平台OCX插件 64位+32位,目前发现的最新版本。 大华dvr的IE浏览器播放插件,安装后就能实时显示大华DVR监控视频了,可以实时查看或者回放视频等等。 解压后打开开始--运行--输入regsvr32 X:...
3、全面监控,无论是网络连接出现问题、服务器问题、web程序问题、网络攻击等,都可以监控 到并做出相应处理; 4、可以结合短信网关在网站出现问题时给指定手机发短信; 5、网站出现问题时可以运行指定程序或重启...