jfy3d(剑事)BLOG

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  37 随笔 :: 0 文章 :: 363 评论 :: 0 Trackbacks
功能包括对服务器的ping,http,socket 三种方式的检查,如服务器出现异常可通过短信,email 等方式报警通知。

这样服务器异常就可以及时发现

考虑到扩展,配置方便使用了Spring

参数配置都在applicationContext.xml中,详细见下:



<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd"
>
<beans>

      
<!--警报接受人列表/////////////////////////////////////////////////////////////////////////////////////-->
    
<bean id="alarm-phoneList-gateway" class="com.monitor.obj.AlarmPhoneList">
        
<!--服务器负责人手机号码组-->
        
<property name="serviceid">
            
<value>TEST0001</value>
        
</property>
        
<property name="srctermid">
            
<value>13500000000</value>
        
</property>
        
<property name="desttermid">
            
<list>
                
<value>13666666666</value>\\刘工
                  <value>13655555555</value>\\王工
            
</list>
        
</property>
    
</bean>
    
<bean id="alarm-phoneList-web" class="com.monitor.obj.AlarmPhoneList">
        
<!--网站负责人手机号码组-->
        
<property name="serviceid">
            
<value>TEST0002</value>
        
</property>
        
<property name="srctermid">
            
<value>13500000000</value>
        
</property>
        
<property name="desttermid">
            
<list>
                
<value>13655555555</value>
            
</list>
        
</property>
    
</bean>
    
<!--警报组件///////////////////////////////////////////////////////////////////////////////////////////////-->
    
<bean id="alarm-sms" class="com.monitor.services.SmsAlarm">
        
<!--短信方式通知-->
        
<property name="alarmUrl">
            
<value>http://www.test.com/alarm?fromphone=#srctermid#&amp;phone=#desttermid#&amp;serviceid=#serviceid#&amp;message=#msg#&amp;fromserver=alarm</value>
        
</property>
        
<property name="alarmStr">
            
<value>#server#出现异常</value>
        
</property>
        
<property name="alarmphoneList">
            
<ref bean="alarm-phoneList-gateway"/><!--警报接受人列表-->
        
</property>
    
</bean>
    
<bean id="alarm-mail" class="com.monitor.services.MailAlarm">
        
<!--邮件方式通知-->
        
<property name="alarmMailAddr">
            
<list>
                
<value>js@567.com</value><!--警报接受人列表-->
            
</list>
        
</property>
        
<property name="alarmStr">
            
<value>#server#出现异常</value>
        
</property>
        
<property name="send">
            
<ref bean="sendmail"/>
        
</property>
        
<property name="mailTitle">
            
<value>服务器异常</value>
        
</property>
    
</bean>
    
<!--监听类型组件////////////////////////////////////////////////////////////////////////////////////////-->
    
<bean id="httpModule" class="com.monitor.services.HttpModule">
        
<property name="interval">
            
<value>300</value>  <!--检测时间间隔,单位:秒-->
        
</property>
        
<property name="alarm_on_errors">
            
<value>3</value>  <!--异常连续次数达到这个数目开始报警-->
        
</property>
        
<property name="alarm">
            
<ref bean="alarm-sms"/> <!--警报组件-->
        
</property>
        
<property name="urlList">
            
<list>    <!--监听地址-->
                
<value>http://www.sohu.com/test.txt</value>
                
<value>http://www.163.com</value>
            
</list>
        
</property>
    
</bean>
    
<bean id="pingModule" class="com.monitor.services.PingModule">
        
<property name="interval">
            
<value>300</value>  <!--检测时间间隔,单位:秒-->
        
</property>
        
<property name="alarm_on_errors">
            
<value>3</value>  <!--异常连续次数达到这个数目开始报警-->
        
</property>
        
<property name="alarm">
            
<ref bean="alarm-sms"/> <!--警报组件-->
        
</property>
        
<property name="ipList">
            
<list>    <!--监听地址-->
                
<value>192.0.0.1</value>
                
<value>192.151.107.2</value>
            
</list>
        
</property>
    
</bean>
    
<bean id="socketModule" class="com.monitor.services.SocketModule">
        
<property name="interval">
            
<value>300</value>  <!--检测时间间隔,单位:秒-->
        
</property>
        
<property name="alarm_on_errors">
            
<value>3</value>  <!--异常连续次数达到这个数目开始报警-->
        
</property>
        
<property name="alarm">
            
<ref bean="alarm-sms"/> <!--警报组件-->
        
</property>
        
<property name="ipList">
            
<list>    <!--监听地址-->
                
<value>192.168.0.8:8800</value>
                
<value>192.168.5.3:1433</value>
            
</list>
        
</property>
    
</bean>
    
<!--监听服务///////////////////////////////////////////////////////////////////////////////////////////////-->
    
<!--*--><bean id="serverMonitor" class="com.monitor.services.ServerMonitor">
    
<!--*-->    <constructor-arg>
    
<!--*-->        <list>
    
<!--*-->            <ref bean="httpModule"/> <!--监听类型组件-->
    
<!--*-->            <ref bean="pingModule"/>
    
<!--*-->            <ref bean="socketModule"/>
    
<!--*-->        </list>
    
<!--*-->    </constructor-arg>
    
<!--*--></bean>
    
<!--///////////////////////////////////////////////////////////////////////////////////////////////////////////-->
    
<bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        
<property name="host">
            
<value>smtp.163.com</value>
        
</property>
        
<property name="username">
            
<value>admin@163.com</value>
        
</property>
        
<property name="password">
            
<value>123456</value>
        
</property>
        
<property name="javaMailProperties">
            
<props>
                
<prop key="mail.smtp.auth">true</prop>
            
</props>
        
</property>
    
</bean>

    
<bean id="sendmail" class="com.monitor.services.MailSender">
        
<property name="sender">
            
<ref bean="sender"/>
        
</property>
        
<property name="encode">
            
<value>GBK</value>
        
</property>
        
<property name="html">
            
<value>true</value>
        
</property>
        
<property name="from">
            
<value>admin@163.com</value>
        
</property>
    
</bean>
  
</beans>

监听方式还可以增加其他方式,只需要照现有代码编写一个配置上即可(继承Runnable)。调用如下:
ServerMonitor.java
 private void startMonitor(){
        Iterator iterator 
= monitorModule.iterator();
        
while (iterator.hasNext()) {
            
new Thread((Runnable) iterator.next()).start();
        }

    }


通知方式继承BaseAlarm接口即可编写新的通知方式。

程序需要在 JDK 1.5以上运行

源码下载地址:http://www.migti.com/download.ww

posted on 2007-01-03 15:43 剑事 阅读(3319) 评论(13)  编辑  收藏 所属分类: 个人软件杂类

评论

# re: JAVA写的服务器监视器 2007-01-03 17:50 BeanSoft
哈,短信报警需要 SP 功能, 以前搞过增值业务, 还可以做, 现在不做了, 就没法用了...蔑办法. 基于 Spring, 不错, 可配置可扩展...  回复  更多评论
  

# re: JAVA写的服务器监视器 2007-01-04 10:49 wolfsquare
为什么一定要JDK1.5才能运行,做更大的范围兼容对你很容易,也容易到帮助需要的人.  回复  更多评论
  

# re: JAVA写的服务器监视器 2007-01-04 10:52 BeanSoft
呵呵, 偶这里有个简易的, 可以监视并重启的, 不过没用 Spring, 用了 Swing, 只能探测http页面响应, 没有ping,socket, 带托盘图标... 可以运行在 JDK 1.4. http://www.blogjava.net/beansoft/archive/2007/01/03/88465.html Tomcat服务器监控1.2版 for Win,Linux, 欢迎测试反馈建议.  回复  更多评论
  

# re: JAVA写的服务器监视器 2007-01-04 11:04 wolfsquare
BeanSoft的不错,要是有一个native exe的就更好了,就一个小小监控还要开一个虚拟机有点大炮打蚊子的感觉  回复  更多评论
  

# re: JAVA写的服务器监视器 2007-01-04 11:28 剑事
起初是自己临时用的 直接在JDK1.5下作的
改成1.4的也容易 直接把用到泛型部分改掉就行了

这个JRE下应该就可以用了 没测试过  回复  更多评论
  

# re: JAVA写的服务器监视器 2007-11-02 12:02 监视器
那么监视器会不会占的资源太大了,http://suparadar.com/  回复  更多评论
  

# re: JAVA写的服务器监视器 2008-05-29 14:02 taoli
不错,我们公司刚好要做一个短信报警系统,谢谢!  回复  更多评论
  

# re: JAVA写的服务器监视器 2008-11-02 17:17 yz
源码下载地址:http://www.migti.com/download.ww ?? 这个打开没有任何东西!能否发个源码让我学习下?我的邮箱:god8116234@sina.com  回复  更多评论
  

# re: JAVA写的服务器监视器 2008-11-05 13:29 sunday
源码下载地址:http://www.migti.com/download.ww ?? 这个打开没有任何东西!能否发个源码让我学习下?我也好想了解这方面的知识,我的邮箱:yewenyu@126.com.谢谢  回复  更多评论
  

# re: JAVA写的服务器监视器 2009-03-10 18:19 xuhan
@sunday
源码地址打不开,我对这个很感兴趣,能发到邮箱里吗,xuhan665@126.com
谢谢了!  回复  更多评论
  

# re: JAVA写的服务器监视器[未登录] 2013-03-08 17:24 lee
源码无法下载啊,可以发到邮箱吗?liliunju@gmail.com,非常感谢  回复  更多评论
  

# re: JAVA写的服务器监视器 2013-06-20 13:45 twt
我想学习一下,能不能给我发一份,邮箱moming198309@163.com
@yz
  回复  更多评论
  

# re: JAVA写的服务器监视器 2013-07-24 16:15 gq
最近需要做相关方面的业务,想学习一下,邮箱806433864@qq.com  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: