该用户从未签到
|
HeartBeat, J3 T5 L7 O& I5 h
心跳检测各类应用服务器(如Tomcat,Jetty),WEB服务器(如 Apache,Nginx) 的java WEB应用程序.3 A s4 c9 z( S+ ]# N- L
( B# _( C x+ }! a& G# G1 Z如何实现? * R9 v+ p# N2 ]. r) o. N
使用HttpClient对指定的服务器(application-instance) URL 按频率(10秒,20秒...) 发起请求并记录响应的信息(连接耗时,是否连接成功,是否有异常,响应数据包大小), 若检测到不正常(响应码不是200,抛出异常...)时则发送邮件给指定的地址,当检测恢复正常时也发送提醒邮件. / d3 F7 M( h7 c( j( A
将来会添加更多的实时提醒方式接口,如微信,短信
8 ~; J% v K$ M7 r5 Q* w3 @8 T使用的框架及版本6 \9 G% L! \: ?9 J: L) N
9 A6 R$ G, a9 o
spring Framework - 3.2.2.RELEASE6 v+ L. ~4 {% g% }. P6 h+ j
Quartz - 2.2.1$ `* t8 c, o/ C$ V8 m! {3 X) B% ~
hibernate - 4.1.7.Final
2 [6 b' J+ x9 U: F( uFlat UI
0 o7 {) s0 k' YMaven - 3.1.05 Q4 q8 ~$ k! G" C/ F+ t+ X1 @7 c# l
+ ~1 Z. b2 i1 ]- ?4 S3 |. o4 t/ K1 G
从0.3版本开始, 每一个版本的下载文件都在项目的 'dist' 目录.
6 S' a1 ]$ `3 w4 A& @' q最新版本下载: HeartBeat-0.3.zip
6 Q7 t; ^1 T5 ~+ I! D! I特点% z: y7 g: P8 q8 w
+ X' m) L5 ~9 T% i0 R' I无侵入7 n- e. Z. {- ?9 H5 S5 G$ o
独立部署
8 N9 g6 T3 ?2 s+ x1 Z可同时监测多个应用服务器 c% D }3 D- G: t% { U
请求方式支持GET,POST+ W; B% L; @& k2 y8 T+ v! t
使用简洁,灵活; D: S. A8 V* [: K" B
提醒方式及时,多样(目前仅实现邮件提醒,将来会加入微信提醒,短信提醒等)
- A9 S6 N6 f$ S) R5 i# j* X* O7 ?" b1 l运行环境
5 B: @& ]6 N0 V' _, D+ z
' |, B z& o: |- MJRE 1.7 + D4 s- w: j( t* _- t f& y
MySql 5.5 +; l! ^( E" q# Z, A: t6 M% [; o5 M- G+ J
Tomcat 7 +9 d7 K G9 f' G/ w4 j- T/ j9 I2 Y
# g( ]4 v, Y( d) W5 N# k I0 `3 S7 y0 _) n! {项目是Maven管理的, 需要在电脑上安装maven(开发用的版本号为3.1.0), MySql(开发用的版本号为5.5)
) f& ]$ ]0 l/ \/ I+ a( k$ X7 X下载(或clone)项目到本地1 g- f2 {& g" n( Z) e9 h! z
创建MySQL数据库(默认数据库名:heart_beat), 并运行相应的SQL脚本(脚本文件位于others/database目录),
) Z9 W I$ n% n9 {, H6 U运行脚本的顺序: HeartBeat.ddl -> quartz_mysql_innodb.sql
% a; A% N4 w# K修改HeartBeat.properties(位于src/main/resources目录)中的数据库连接信息(包括username, password等)
! z7 v5 V# x8 U5 j# O0 tNOTE: 为了确保能收到提醒邮件,请将配置文件中的 mail.develop.address 配置为你的邮件地址; 若在生产环境,请将 mail.develop.environment 值修改为 false (true表示为开发环境)
$ c! f& T0 k/ [) f! m将本地项目导入到IDE(如Intellij IDEA)中,配置Tomcat(或类似的servlet运行服务器), 并启动Tomcat(默认端口为8080) , H' R- [1 W+ n2 ^9 M
另: 也可通过maven package命令将项目编译为war文件(HeartBeat.war), 将war放在Tomcat中并启动(注意: 这种方式需要将HeartBeat.properties加入到classpath中并正确配置数据库连接信息).
2 h) o7 \+ T/ o i' x[color=rgba(0, 0, 0, 0.8)]程序运行主要截图Monitoring
0 U6 ]0 t3 ]3 v/ A; c0 s
$ {5 `( T, A: g* E' d
Instance - Monitoring details
" t+ _; D z+ f3 S) Z/ T" n: f( M/ M8 x
" h7 ~2 m0 ]' [" U+ x; t& i5 [
Instance - Overview 5 ~# o8 z- `: L) L7 Q
$ u- E3 l( S$ i, y/ KInstance - Create
3 d' a/ N& b3 M2 n. i7 {) R. a
4 X8 _3 |: `/ W& FMonitoring-Log ! t' n5 V5 t4 i
. d# m+ z E5 ~) O) h, c9 |6 Z
Monitoring-Reminder-Log ) i4 w8 \& J9 @4 x+ Z1 J
1 Q- A; i! r; S' xSearch : j2 U( e$ Z+ ]# q6 t& O( w1 `
: H% U$ Y; j! j% u8 y
" O4 L6 F4 r u9 Z3 Y1 g3 s
! E2 k/ ~. J' W, V" K# tGIT地址:https://git.oschina.net/mkk/HeartBeat# o2 Q) F3 S# A U/ y
5 e* a5 z7 @9 i2 D0 Y |
|