一个网站健康监控系统的基本原理及实现

简介

本文描述一个基于Autosys Job + shell脚本 + Java的网站健康监控系统的基本原理.用以实现每天定时监控一个网站及其下面多个子网站的健康状况.一旦有指定的站点或者资源不可访问,系统即发出警报邮件给特定的管理员.

 

一.Autosys Job

如果要使用Autosys Job,必须要搭建Autosys Server.这部分不重点介绍.环境搭建好之后,我们必须定义自己的Autosys Job,如下是一个Job的定义:

//定义Job名称,类型
insert_job: health_check job_type: c
//定义脚本路径
command: /usr/local/ccms/rsd/scripts/WEB_HealthCheck
machine: jobserver
owner: ccms@jobserver
permission:
date_conditions: 1
//定义运行时间
days_of_week: all
start_mins: 00,30 
description: "Web Apps Daily Health Check"
std_out_file: /arsdd1/rsd/log/fxm/daily_healthcheck_out.log
std_err_file: /arsdd1/rsd/log/fxm/daily_healthcheck_err.log
alarm_if_fail: 0 

 

 

二.建立shell脚本

定义好Job之后,再来看看shell脚本WEB_HealthCheck的核心内容:

 

#运行WebHealthCheckTool.jar
$JAVA_HOME/bin/java -jar $ROOT_CCMS/jclass/WebHealthCheckTool.jar $FXM_USERID $FXM_PSW $GMO_USERID $GMO_PSW $DB_SID $DB_USERID $DB_PSW $HC_PROP $HC_CFG_MAPPING $HC_CFG_URL $OTHER_DETAIL

# 如果不是所有的检查都成功
if [ "$other_health" != "[Yes]" ] || [ $fdc_rc -ne 0 ]; then
  EMAIL_SUBJECT="WEB Products Health Check for L1 $dow: Failure"
  EMAIL_BODY=$( cat -n $DOWNLOAD_LOG )
  EMAIL_ATTACHMENT="$OTHER_DETAIL,$FDC21_DETAIL"
  
# 发邮件给特定的人
  $JAVA_HOME/bin/java -jar $EXTERNAL_JAR/webmailmgr.jar $MAIL_LOG  \
  $SSA_MAIL_SERVER_SMTP $SSA_EMAIL_FROM $SSA_EMAIL_TO \
  "$EMAIL_SUBJECT" "$EMAIL

 

 

WebHealthCheckTool.jar的实现

1.使用HttpClient实现网站登陆,资源检查.

2.使用Castor框架实现Java对象与XML的映射

将所有我们要监控的URL以及资源配置在一个web_url_check_list.xml中,在此之前还要建立一个web_url_check_mapping.xml用来配置Java类的mapping

 

大概的原理就是如此

 

你可能感兴趣的:(java,httpclient,castor,网站监控,autosys)