简介
本文描述一个基于Autosys Job + shell脚本 + Java的网站健康监控系统的基本原理.用以实现每天定时监控一个网站及其下面多个子网站的健康状况.一旦有指定的站点或者资源不可访问,系统即发出警报邮件给特定的管理员.
?
一.Autosys Job
如果要使用Autosys Job,必须要搭建Autosys Server.这部分不重点介绍.环境搭建好之后,我们必须定义自己的Autosys Job,如下是一个Job的定义:
class="java">//定义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
?
大概的原理就是如此
?