A. 基于web技术的远程监控的方式有哪些
希望这篇文章能对你有帮助:
Web Service使用可扩展标记语言(XML)作为基本的数据表示方式,消除了使用不同组件模型、操作系统和编程语言的系统之间所存在的差异。简单对象访问协议(SOAP,Simple Object Access Protocol)是用于交换XML编码信息的轻量级协议。它的主要作用是为各类XML消息,提供一个简单统一的传输机制。Web Service使用SOAP来包装XML数据,通过HTTP(或MSMQ、SMTP、TCP/IP)作为传输协议,在不同平台、不同软件、不同组织之间进行传递。Web Service的描述语言为WSDL。它提供了一种描述服务接口的标准方法,定义了一种描述接口的抽象语言,使服务的接口定义独立于底层协议和编码方式。通用描述、发现和集成(UDDI)是Web Service的信息注册的标准规范,用来对服务提供动态的注册功能。
可见,Web Service采用XML、SOAP、HTTP、WSDL、UDDI等标准协议。这些协议与特定的操作系统、对象模型和编程语言无关。因此,利用Web Service来建立远程监控系统时
(1) 由于采用标准的协议,不受特定的开发者、平台、语言和数据编码格式的限制;
(2) 开发的Web Service可以供不同的客户调用;
(3) HTTP作为传输协议可以穿过防火墙,提供在Internet上的连接和访问[8];
(4) 如果知道Web Service的地址并具有相应权限,就可以在网络的任何地方进行调用。
3 远程监控系统结构
为了实现工业过程的远程监控,基于Web Service技术的远程监控系统结构如图4所示。
图4 基于Web Service的远程监控系统结构
3.1 基于Web Service的远程监控系统结构
传统的远程监控系统多使用OPC技术来获取各种现场设备的数据,包括实时采样值、历史数据、报警数据等等。该系统也使用OPC来与现场设备进行数据交换。图4中的OPC服务器由设备供应商提供。OPC技术是以Microsoft的OLE/COM 技术为基础。因此,与其他组件技术一样,它不是防火墙友好的,难以通过防火墙从OPC服务器获取所需的数据。即使在同一局域网内,位于不同计算机上的OPC客户端要连接到OPC服务器都需要经过复杂的DCOM和安全性设置,这增加了系统开发的难度,为此要对OPC服务器的数据进行封装。通过网关(命名为“过程网关”)的形式来为各个系统提供数据。过程网关作为OPC客户端从OPC服务器获取各种过程数据,将这些数据按照一定规则重新组织,并封装在Web Service内,过程网关也从已有的控制系统中获取所需的数据,并以服务的形式暴露给各种应用。
Web已被广泛用于监控系统中,它可以提供统一的人机界面,并且操作简单友好。该系统结构使用Web来建立监控系统,Web监控系统通过过程网关获取现场设备的数据,将这些数据以Web的形式提供给远程用户。远程用户通过PC、PDA、笔记本电脑或手机访问Web页,将各种控制数据送回Web监控系统。Web监控系统再将这些控制数据通过过程网关传送给现场设备,这样就完成了对现场设备的远程监控。
当然,远程的用户也可以通过直接访问过程网关来实现远程的监控。由于Web监控系统以HTML的形式来传送消息和过程网关提供的Web Service的防火墙友好性,因此不管使用那种方式来进行远程监控,都不会受到防火墙的限制。
3.2 过程网关
过程网关是现场设备与监控系统的桥梁,起着重要的数据中转作用,其结构如图5所示。
图5 过程网关与监控应用
(1) 数据获取
过程网关需要获取
来自现场的实时数据,以对工业过程进行及时的监控;
来自其他控制系统的数据,以允许监控应用与这些系统进行数据交互。
目前主要的自动化设备生产厂家,如Rockwell、Siemens等,都提供了对OPC技术支持,通过OPC来获取现场设备的数据。OPC服务器通过各种现场设备的驱动程序,直接从设备中取得数据,再将这些数据提供给OPC客户端。OPC有几种协议,分别有不同用途。例如,OPC客户端通过OPC DA获取设备或SCADA系统的数据;通过OPC AE获取报警和事件信息;通过OPC HDA获取过程控制中的历史数据。
现场控制系统将各种数据存入数据库中,过程网关通过访问这些数据库来获取控制系统的数据。获取这些数据的目的在于使远程控制系统可以与已有的控制系统进行交互,方便地将这些系统集成到新的系统中,使其获得新的生命周期。成熟的中间件技术,如ODBC、ADO等,为数据库的访问提供了简单快捷的方法。
(2) 数据的Web Service封装
通过4.2.1获取的数据需要封装为Web Service,以便Web监控系统和远程用户能够进行调用。在进行数据封装时,按照功能需求确定需要暴露给调用者的接口(类似于编程语言中的函数接口),然后通过开发工具来开发这些Web Service。这些工具有Microsoft的Visual Studio.NET、IBM的WebSphere、Borland的JBuilder等等。数据封装为Web Service后可以提供WSDL,方便调用者进行调用。
(3) 安全审查
过程网关的某些Web Service可能涉及到保密的数据,因此需要考虑数据传输的安全性,并对客户端的访问进行限制。可用多种方法来提供所需的安全性
采用WS-Security标准[9];
使用SSL进行加密和签名;
使用传输层安全性(Transport Layer Security,TLS)、IPSec[10]等确保数据的安全传输;
使用服务器,如IIS,的身份验证功能;
提供用户的角色定义和权限分配。
(4) 服务调用
开发监控应用时,通过查找操作从本地或服务注册中心检索服务描述,然后进行Web监控系统的开发。而开发完成后的系统可以位于网络的任意位置。Web监控系统与过程网关提供的Web Service进行绑定,通过服务的调用实现数据的交互,由于Web监控系统的数据是通过纯HTTP协议传输的,因此是防火墙友好的。
3.3 Web监控系统
监控系统可以有多种形式。传统的监控系统通过各种组态软件开发,如InTouch,iFix、RSView32等等,但这种监控系统一般是针对集散控制系统或现场总线控制系统的,不利于进行远程的监控。每一种应用都需要相应的运行环境,这将增加用户的投资,如采用基于Web的监控系统,就可以提供统一的人机界面,有利于进行远程监控。
(1) Web监控
远程的用户可以通过浏览器访问现场的运行画面,掌握现场数据。同时可以通过浏览器发送控制命令,控制现场设备的运行。Web监控程序还可以实现数据存档、报表打印、故障报警、统计图表及曲线的显示等[11]。在开发Web监控程序时,首先要获取过程网关提供的WSDL(通过在服务注册中心查找获取,或直接通过过程网关Web Service所在的URL获取)。在开发过程中,Web Service的使用与一般的API函数类似。为了提高性能,应尽量使用异步调用的方式。ASP.NET、JSP等都可以用来进行Web监控程序的开发。由于终端设备的性能差异,需要为手机、PDA等设备开发不同于PC的Web监控程序。
(2) 冲突避免
如果多个用户同时进行监控,可能会导致冲突,因此需要限制同时操作的用户数量。当一个用户访问Web监控系统时,如果此时已经达到了允许的最大访问数,则必须进行等待。此时,允许用户查看各种数据,但屏蔽用户的控制操作。当有其他的用户断开连接后,取消对该用户控制操作的屏蔽,可允许其进行相应的控制。
(3) 权限管理
权限管理为每个用户分配不同的权限,只允许用户进行授权范围内的操作。至少应将用户分为三个级别:管理员:主要负责对Web监控系统的管理和维护,对用户进行管理;高级操作员:可以浏览各种数据,并进行相应的控制操作;一般操作员:只具有浏览数据的权利,不能进行修改。
不同的用户登录系统后具有不同的操作权限,这样可以防止控制操作的滥用,增强系统的安全性。
(4) 日志管理
日志可以记录系统的运行情况以及用户进行的各种操作,特别要记录系统运行中出现的故障。对于用户操作产生的日志需要包括用户名、所进行的操作、时间和IP地址。这样可以掌握用户所进行的各种操作,也便于在出现错误时进行追踪和修复。
B. 如何有效的监控web服务器
监控单独网站访问量需要第三方插件,如果监控服务器带宽和使用率,window自身的任务管理器就可以.
C. 利用Windows自带的性能监视器对WebService服务进行监控,通常使用哪些计数器,标准值是什么
1. 处理器对象(Processor Object)
2. 系统对象(System Object)
3. SQL Server:缓冲区管理器对象( B u ffer Manager Object)
4. SQL Server:数据库对象(Database Object)
5. SQL Server:常规统计对象(General Statistics Object)
6. SQL Server:闩对象(Latches Object)
7. SQL Server:锁对象(Locks Object)
8. SQL Server:内存管理器对象(Memory Manager Object)
9. SQL Server:S Q L统计对象(SQL Statistics Object)
10. 逻辑磁盘对象(Logical Disk Object)
11. 物理磁盘对象(PhysicalDisk Object)
12. 内存
一条经验规则是不要使你所监控的每个处理器的C P U使用率高于9 0%。峰值超过9 0%是可以接受的,但平均使用率超过9 0%则是应该避免的。
• 处理器时间百分比(%Processor Time) 处理器执行一个非空闲线程的时间百分比。用%1 0 0减去处理器空闲的总时间得出这个值。这是整个系统的C P U使用的一个好的指示器。
• 特权时间百分比(%Privileged Time) 处理器用于在特权模式下(即,执行操作系统功能和运行驱动器,如I / O )工作时间的百分比。这个时间包括C P U (或C P U )用于维护中断和延迟过程调用( D P C )的时间。
• 用户时间百分比(%User Time) 处理器用于在用户模式工作的时间百分比。这种类型的工作是由应用产生的。通常,希望极大化用户时间百分比的值,极小化特权时间百分比的值。
• 中断时间百分比(%Interrupt Time) CPU忙于维护硬件中断的时间百分比。系统中的许多硬件部件,如鼠标、网络接口卡或磁盘控制器,都可以发出处理器中断。你可以将中断看作为Windows NT正常操作的一部分发生。
• 中断数/秒(Interrupts/sec) 处理器每秒接收并处理的硬件中断的数量。它不包括系统
D P C,系统D P C单独计数。
系统对象与它的相关计数器衡量处理器上运行的线程的总计数据。虽然使用这些计数器不能观察一个特定处理器的工作负载或一个特定线程的行为,但它们提供了有关整个系统性能有价值的内部信息。系统计数器如下所示:
• 处理器队列长度(Processor Queue Length) 处理器队列中的线程的数量。换句话说,它
是等待运行的线程数。即使你的系统具有多个处理器,但只有一个队列用于处理器时间。计数器只记录那些准备执行但仍处于等待的线程,不是那些正在运行的线程。
• 环境切换/秒(Context Switches/sec) 系统上的所有处理器从一个线程切换到另一个线程的组合比率。当一个正在运行的线程自动地放弃处理器,处理器由一个高优先级的待命线程抢占时发生环境切换,或在用户模式和特权(核心)模式之间切换,以使用一个执行或子系统的服务。这是线程的总和:计算机上运行在所有处理器上的所有线程的环境切换数/秒。
缓冲区管理器计数器提供了SQL Server使用的内存缓冲区的有关信息。这些计数器如下所示:
• 高速缓存命中率( B u ffer Cache Hit Ratio) 引用当前位于高速缓存中页的需求的百分率。预先在内存中拥有页,允许SQL Server避免请求从磁盘子系统执行一次物理I / O。因为访问内存相对于访问物理I / O,代价更小,一个高的缓冲区高速缓存命中率增强了系统的性能与吞吐量。如果你的系统很好地调整过,这个命中率应该是8 0%或更高。如果具有一个低的缓冲区高速缓存命中率,你应该为SQL Server分配更多的内存。如果你已将现有的所有内存都分配给了SQL Server,那么需要增加系统中物理内存的数量。
• 高速缓存大小(页)(Cache Size) 在SQL Server缓冲区高速缓存中的页的数量。这个数量乘以8 K B,即可得到正在使用的以千字节为单位的缓存数。
• 空闲缓冲区(Free Buffer) 空闲SQL Server内存缓冲区的数量。
• 读的页/秒(Page Reads/sec) 每秒请求的物理数据页I / O的数量。
• 偷取的页计数(Stolen Page Count) SQL Server用于缓冲区高速缓存的页数,这些内存被给予系统中的另外一个进程。Windows NT回收这个内存以满足其他系统部件的需要。
• 写的页/秒(Page Writes/sec) 由SQL Server执行的每秒写的物理数据页的数量。
数据库对象计数器提供了有关SQL Server数据库的信息,包括可用的空闲日志空间量和数据库中活动事务的数量。对于系统中的每个数据库的每个计数器有一个实例。这些计数器包括如下:
• 日志刷新等待/秒(Log Flush Wait/sec) 在能够继续执行前,必须等待日志刷新的数据库提交数量。
• 日志使用的百分比(Percent Log Used) SQL Server实际使用的当前定义的日志空间的百分比。
常规统计对象含有常规服务器范围活动的有关信息,它有一个计数器:
• 用户连接数(User Connections) 系统中用户连接的当前数量。
这个对象计数器提供了在内部SQL Server资源中有效的闩的信息。计数器如下:
• 平均闩等待时间(毫秒) ( Average Latch Wait Time) 闩请求在得到服务之前必须等待的平均时间,以毫秒为单位。
• 闩等待数/秒(Latch Waits/sec) 不能立即服务,被迫等待其他资源释放的闩请求的数量。
锁对象提供了由SQL Server提出的各个锁请求的有关数据,例如锁生命周期和死锁。可以在系统上具有多个这些计数器的实例。计数器如下所示:
• 平均等待时间(毫秒) ( Average Wait Time) 每个锁请求被迫等待的平均时间量,以毫秒为单位。
• 锁到期数/秒(Lock Timeouts/sec) 在系统中过期的锁请求的数量。
• 锁等待数/秒(Lock Wa i t s / s e c )不能立即满足,需要调用线程在给予锁之前处于等待状态的锁请求的数量。
• 死锁数/秒(Number of Deadlocks/sec) 导致产生死锁的锁请求的数量。
内存管理器对象含有有关SQL Server内存使用的信息,包括SQL Server正在使用的高速缓
存内存的数量。这个对象下的计数器如下所示:
• 内存授权挂起(Memory Grants Pending) 等待授予工作空间内存的进程的当前数量。
• S Q L高速缓存内存(KB)(SQL Cache Memory) SQL Server用于动态SQL 高速缓存的动态
内存数量。
• 目标服务器内存( K B ) ( Ta rget Server Memory) SQL Server将会消耗的动态内存的总额。
• 总的服务器内存( K B ) ( Total Server Memory) SQL Server当前消耗的动态内存的总额。
这个对象提供了系统上正在执行的S Q L查询的有关信息,包括查询编译和重新编译的数量的数据。它有如下计数器:
• 批请求/秒(Batch Requests/sec) 服务器接收到的S Q L批请求的数量。
• SQL 编译/秒(SQL Compilations/sec) SQL Server每秒执行的S Q L语句编译的数量。
• S Q L重新编译/秒(SQL Re-Compilations/sec) SQL Server每秒执行的S Q L语句重新编译的数量。
逻辑磁盘对象提供了有关逻辑磁盘I / O性能的信息。逻辑磁盘计数器与Windows NT磁盘
系统管理员分配给逻辑磁盘驱动器的字母相关。这个对象含有如下计数器:
• 磁盘读时间百分比(%Disk Read Time) 选中的逻辑磁盘忙于服务读请求总共用去时间的
百分比。
• 磁盘写时间百分比(%Disk Write Time) 选中的逻辑磁盘忙于服务写请求总共用去时间
的百分比。
• 磁盘时间百分比(%Disk Time) 选中的逻辑磁盘忙于服务读请求或写请求总共用的时间
的百分比,是磁盘写时间百分比与磁盘读时间百分比的和。
• 空闲时间百分比(%Idle Time) 逻辑磁盘在采样时间间隔中处于空闲状态的时间百分比。
• 平均磁盘队列长度( Avg. Disk Queue Length) 在采样的时间间隔中,选中的逻辑磁盘读请求和写请求排队的平均数量。
• 平均磁盘读队列长度( Avg. Disk Read Queue Length) 在采样的时间间隔中,对选中的逻辑磁盘读请求排队的平均数量。
• 平均磁盘写队列长度( Avg. Disk Write Queue Length) 在采样的时间间隔中,对选中的逻辑磁盘写请求排队的平均数量。
• 平均磁盘秒数/读( Avg. Disk sec/Read) 从逻辑磁盘读数据的平均时间,以秒为单位。
• 平均磁盘秒数/写( Avg. Disk sec/Write) 向逻辑磁盘写数据的平均时间,以秒为单位。
• 平均磁盘秒数/传输( ( Avg. Disk sec/Transfer) 从逻辑磁盘进行传输的平均时间,以秒为单位。
• 磁盘读/秒(Disk Reads Bytes/sec) 逻辑磁盘上每秒读字节。
• 磁盘读/秒(Disk Writes Bytes/sec) 逻辑磁盘上每秒写字节。
• 磁盘读/秒(Disk Reads/sec) 逻辑磁盘上的读操作比率。
• 磁盘写/秒(Disk Writes/sec) 逻辑磁盘上的写操作比率。
• 磁盘传输/秒(Disk Transfers/sec) 逻辑磁盘上的读和写操作的比率。
物理磁盘对象提供了有关物理磁盘I / O性能的信息。它的磁盘计数器与系统中的物理驱动器有关,并且只有当运行了D i s k P e r f服务时,它才被激活。这个对象下的计数器如下所示:
• 磁盘读时间百分比(%Disk Read Time) 选中的物理磁盘忙于服务读请求总共用的时间的百分比。
• 磁盘写时间百分比(%Disk Write Time) 选中的物理磁盘忙于服务写请求总共用的时间的百分比。
• 磁盘时间百分比(%Disk Time) 选中的物理磁盘忙于服务读请求或写请求总共用的时间的百分比,是磁盘写时间百分比与磁盘读时间百分比的和。
• 空闲时间百分比(%Idle Time) 物理磁盘在采样时间间隔中处于空闲状态的时间百分比。
• 平均磁盘队列长度( Avg. Disk Queue Length) 在采样的时间间隔中,选中的物理磁盘读请求和写请求排队的平均数量。
• 平均磁盘读队列长度( Avg. Disk Read Queue Length) 在采样的时间间隔中,选中的物理磁盘读请求排队的平均数量。
• 平均磁盘写队列长度( Avg. Disk Write Queue Length) 在采样的时间间隔中,选中的物理磁盘写请求排队的平均数量。
• 平均磁盘秒数/读( Avg. Disk sec/Read) 从物理磁盘读数据的平均时间,以秒为单位。
• 平均磁盘秒数/写( Avg. Disk sec/Write) 向物理磁盘写数据的平均时间,以秒为单位。
• 平均磁盘秒数/传输( Avg. Disk sec/Transfer) 从物理磁盘进行传输的平均时间,以秒为单位。
• 磁盘读/秒(Disk Reads Bytes/sec) 物理磁盘上每秒读字节。
• 磁盘读/秒(Disk Writes Bytes/sec) 物理磁盘上每秒写字节。
• 磁盘读/秒(Disk Reads/sec) 物理磁盘上的读操作比率。
• 磁盘写/秒(Disk Writes/sec) 物理磁盘上的写操作比率。
• 磁盘传输/秒(Disk Transfers/sec) 物理磁盘上的读和写操作的比率。
内存在任何系统中都是一个非常有价值的资源。Windows NT不只允许过量使用内存,而且鼓励你过量使用内存。Windows NT提供了一种透明机制,允许应用“相信”它们具有比系统中可用的物理内存更多的内存。当Windows NT处理应用时,它将不使用的内存页调出(交换出)到磁盘上的页文件中。在大多数系统中,页调度是正常的,但过量的页调度会削弱整个系统的性能。下面的计数器允许你监控系统的页调度。
• 失效的页/秒(Page Faults/sec) 每秒由处理器处理的失效页的全部数量。当一个进程需
要的代码或数据不在它的工作区(它的空间在物理内存中)中时,发生失效页。这个计数
器包括硬的页失效(那些需要磁盘访问的)和软的页失效(在物理内存的其他地方发现了失
效页)。
• 读的页/秒(Page Reads/sec) 读取磁盘以解决硬的页失效所需要的时间数(当一个进程需要的代码或数据不在其工作区或内存中的其他地方,必须从磁盘提取这些代码和数据时,发生硬的页失效)。这个计数器包括为满足在文件系统高速缓存(通常是应用请求的)以及在非高速缓存映像内存文件中的失效而进行的读。
• 写的页/秒(Page Writes/sec) 将页写向磁盘以释放物理内存空间的时间数。只有当页在物理内存中被改变的时候,将页写入磁盘,这样,它们更有可能含有数据,而不是代码。
• 页/秒(Pages/sec) 为解决硬的页失效,所需要读或写磁盘的时间数。它是读的页/秒与写的页/秒的计数器的和。
D. 怎么用java实现web服务器的监控
如何用Java实现Web服务器 一、HTTP协议的作用原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:
(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:
GET 路径/文件名 HTTP/1.0
文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。详细方法可向itjob老师了解
E. 如何让zabbix监控web端口服务
基本知识准备:
1、SNMP(简单网络管理协议)
2、一些脚本知识,可以编写任意一种脚本。
3、知道Nagios怎么用。
好啦,现在开始:
1、编写一个可以输出本机Nginx并发连接数的脚本,输出结果为连接数。我这里脚本比较简单,只是看看已经链接80端口的。当然也可以自己编写更精确的脚本。
[root@webserver2 scripts]# cat showhttp.sh
#!/bin/bash
echo `netstat -nat | grep -i "80" | wc -l`
2、配置snmp,如何安装我就不说的,自己去弄呗。
yum install net-snmp* 我是这么安装的。
看下我的snmp配置文件:
[root@webserver2 ~]# grep -v '^#' /etc/snmp/snmpd.conf | grep -v '^$'
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.4.1.2021
access notConfigGroup "" any noauth exact systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
exec .1.3.6.1.4.1.2021.51 showhttp /bin/bash /root/scripts/showhttp.sh
然后重载下snmp的配置文件。
/etc/init.d/snmpd reload
使用snmpwalk测试下,能不能通过snmp来获取数据。
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51
UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: "showhttp"
UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: "/bin/bash /root/scripts/showhttp.sh"
UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "7"
UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.51.103.1 = ""
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 showhttp
showhttp: Unknown Object Identifier (Sub-id not found: (top) -> showhttp)
[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51.101.1
UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "5"
至此位置,snmp就配置好了。至于原理,google、一大堆。限于自己的表述能力和打字速度就不在此复述了。
下面我登录nagios的监控机,来监控这台机器的http连接数量。
2、首先安装nagios,这里跳过。
3、先写个如下脚本,获取被监控的设备的snmp值。
[root@webserver2 libexec]# cat show_http
#!/bin/bash
OID='.1.3.6.1.4.1.2021.51.101.1'
IPADDRESS=$2
COMMUNITY=$1
if [[ -z $IPADDRESS ]] || [[ -z $COMMUNITY ]]; then
echo "Mabe ... ...Usage: show_http <COMMUNITY> <IPADDRESS>"
exit 4
fi
counts=`snmpwalk -v 1 -c $COMMUNITY $IPADDRESS $OID 2>/dev/null | awk -F'"' '{print $2}'`
if [ -z $counts ]; then
echo "Mabe snmpd is down OR ipaddress error OR community fault."
exit 4
fi
if [ $counts -ge 200 ]; then
echo "Cirtical - connection - $counts"
exit 2
elif [ $counts -ge 100 ]; then
echo "Warning - connection - $counts"
exit 1
else
echo "OK - connection - $counts"
exit 0
fi
3、最nagios进行一些配置:
define command{
command_name check-host-alive
command_line $USER1$/show_http nagios $HOSTADDRESS$ #添加一条命令,参数是团体名和主机地址,团体名,我直接用了nagios。为了可扩展性的考虑,大家也可以使用resources文件来定义。这里不再复述。
}
F. 关于局域网内java web服务操作监控的问题
问题简化起来就是A->B->C的关系,即B(可以上外网的机器)作为代理层来转发局域网内的外网请求。
在B上封装下网络地图API,然后向局域网内发布,这样A之类的内网机器就可以通过B访问百class B {
public static whatever getMap() {
return BadiuApi.getMap();
}
}
G. 如何监控webservice服务接口
我说下我的想法,好不好实现还需楼主自己决策。
由webservice专门提供一个test的接口,不做任何事情,只是用来判断服务是否在。
使用定时任务(推荐quartz框架),定时查看webservice的test服务是否可以正常应答,间隔可以短一些。同一个webservice不同的接口请求-响应时间肯定不同,这些接口的测试就是在用户调用的时候前后卡下时间,然后根据调用次数和总共耗时做平均值。当然这些数据的标准由你来定,当数据出现异常时,建议产生告警日志。
H. 如何用java实现web服务器的监控
Hyperic HQ集成了强大的监测和管理功能,它有开源版本,您可以直接使用它用来对web服务器进行监控。
如果您想自己写代码实现,Hyperic HQ提供了一个服务器各种性能指标采集的API,这个API包本身提供了各种平台(linux/MAC/window等)的兼容。
I. web服务器的监控指标是什么
自己看图!