474 Star 1.3K Fork 555

monkeyk7/HeartBeat

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

HeartBeat

心跳检测各类应用服务器(如Tomcat,Jetty),WEB服务器(如 Apache,Nginx), Socket服务器(TCP/UDP协议)的SpringBoot应用程序.

如何实现?

  1. 使用HttpClient对指定的服务器(application-instance) URL 按频率(10秒,20秒...) 发起请求并记录响应的信息(连接耗时,是否连接成功,是否有异常,响应数据包大小), 若检测到不正常(响应码不是200,抛出异常...)时则发送邮件(或其他提醒方式)给指定的地址,当检测恢复正常时也发送提醒邮件(或其他提醒方式).
  2. 使用Socket连接指定的服务器(network-instance) IP 端口并记录响应的信息(连接耗时,是否连接成功,是否有异常,响应数据包大小), 若检测到不正常(连接耗时,连接失败,有异常...)时则发送邮件(或其他提醒方式)给指定的地址,当检测恢复正常时也发送提醒邮件(或其他提醒方式).

同时提供各类实时提醒方式接口,如邮件(已实现),短信, 钉钉机器人(已实现), 微信等(可自定义扩展其他实时提醒方式).

使用的框架及版本

  • JDK - OpenJdk 17
  • Spring Boot - 3.1.5
  • Flat UI
  • Maven - 3.6.0

下载

从0.3版本开始, 每一个版本的下载文件都在项目的 'dist' 目录.

注意: 从v3.0.0开始不再提供dist安装包, 请使用maven自行在本地打包编译或访问 releases 下载.

特点

  • 无侵入,独立部署,资源占用可控
  • 可同时监测多个应用服务器
  • 请求方式支持GET,POST; URL支持http与https, 可指定请求content-type, 添加请求参数(固定参数或随机参数)
  • 可实现对Socket(TCP/UDP协议)服务器的监测
  • 可对各实例进行分组, 方便管理(v3.0.0开始提供)
  • 添加安全设置,可控制用户注册,设定用户权限等
  • 提醒方式及时,多样(提供接口可扩展自定义的提醒方式)

运行环境

  • OpenJdk 17 +
  • MySql 5.7 +

在线测试

https://andaily.com/hb/ (v2.0.0版本)
提示:仅用于测试,不要加生产监控实例

如何使用?

  1. 项目是Maven管理的, 需要在电脑上安装maven(开发用的版本号为3.6.0), MySql(开发用的版本号为5.7)
  2. 下载(或clone)项目到本地
  3. 创建MySQL数据库(默认数据库名:heart_beat), 并运行相应的SQL脚本(脚本文件位于others/database目录),
    运行脚本的顺序: HeartBeat.ddl -> quartz_mysql_innodb.sql -> initial-db.ddl(该ddl会创建初始管理员账号/密码:hb/Heart_beat7)
  4. 修改 application.properties(位于src/main/resources目录)中的数据库连接信息(包括username, password等)
    NOTE: 在initial-db.ddl中默认初始化邮件配置服务, 推荐将邮件配置更换为自己的邮件服务(邮件配置用管理员登录后在'系统'菜单中进入)
  5. 将本地项目导入到IDE(如Intellij IDEA)中,直接运行 HeartBeatApplication.java 启动类
    另: 也可通过maven package命令将项目编译为jar文件(hb.jar), 使用 java -jar hb.jar --spring.config.location=application.properties 命令运行(注意 application.properties 的路径要正确)
  6. HeartBeat运行后, 初次登录可使用默认管理员账号/密码:hb/Heart_beat7, 若失败, 需要在数据库中运行初始SQL脚本文件initial-db.ddl(others/database目录), 密码存储使用不可逆加密方式.

开发计划

从 0.5版本开始将项目的所有计划的开发内容列出来, 方便大家跟进, 也欢迎你加入.
项目的开发管理使用开源项目 andaily-developer.

  • Version: 3.0.1 [planning]
    Date: --- / ---

    1. #20 加一个根据http返回结果来决定请求状态

    2. 实例特定时间段允许断开

    3. 增加提醒消息支持 syslog


  • Version: 3.0.0 [finished]
    Date: 2023-11-16 / 2024-01-09

    1. 升级JDK, SpringBoot等基础版本, log升级使用logback框架

    2. 添加Socket TCP,UDP的监控

    3. 实例分组与查询

    4. 邮件配置界面化,更灵活(不在配置文件中写固定)

    5. 提供报警信息的对外发送插件扩展(可支持机器人通知等)


  • Version: 2.0.1 [finished]
    Date: 2018-03-03 / 2023-10-19

    1. #I1BWP8 支持使用代理proxy

    2. 请求方式支持PUT,DELETE


  • Version: 2.0.0 [finished]
    Date: 2018-01-29 / 2018-02-22

    1. 使用 SprintBoot 重构项目


  • Version: 1.0.1 [finished]
    Date: 2017-07-10 / 2018-01-20

    1. Fix issue #7 MenuBUGFix

    2. 实例列表增加更多搜索条件

    3. #20 加一个根据http返回结果来决定请求状态(CANCELED)

    4. 添加Socket TCP/IP的监控(CANCELED)


  • Version: 1.0.0 [finished]
    Date: 2016-11-18 / 2017-07-09

    1. (104) - 添加发送短信提醒(CANCELED)

    2. (165) - 添加更多监控时间,如2分钟,3分钟,5分钟,10分钟,半小时,1小时

    3. (166) - Fix 设置多次失败后在提醒时的错误,以及恢复后的提醒

    4. (168) - 增加设置定期清理一段时间(默认为30天)前的监控日志记录,防止frequency_monitor_log表太大导致查询慢

    5. 修复未登录时不能查看到私有实例的日志

    6. Fixed Issue #26 关于邮件发送次数的问题


  • Version: 0.5 [finished]
    Date: 2016-05-01 / 2016-08-15

    1. (70) - Why set archived = 1 in mysql application_instance table(Fix issue #6)

    2. (83) - 对于注册的用户, 登录后只能管理自己 创建的instances

    3. (112) - #12 请求参数BUG(设置Url参数时未进行非空验证)

    4. (104) - 添加发送短信提醒(CANCELED)

    5. (105) - 添加发送微信提醒

    6. (147) - 支持国际化, 中英文

    7. (148) - 在检测链接状态的时候,不要发现一次链接故障的时候就马上发邮件通知,这个过程可能因为网络故障(如常见的:丢包、dns故障)而出现问题, 可以增加一个判断参数,当连续发现n次有故障时再去发邮箱等信息通知!

    8. (156) - 优化数据库,以及连接, 提高性能,页面响应速度

    9. (157) - 实例添加一个字段 是否私有, 若私有则只有自己登录后才能查看

Change-Log

  1. 2014-10-17 ---- Initial project

  2. 2015-02-13 ---- Move development to coding.net

  3. 2015-03-01 ---- Back to OSC and update documents; Add 0.1 branch

  4. 2015-03-14 ---- Monitoring log add response data size;Add list of monitoring reminder logs; Update page styles; Add 0.2 branch

  5. 2015-03-15 ---- 0.3 branch is developing

  6. 2015-04-02 ---- Add 0.3 branch and publish it

  7. 2015-04-06 ---- 0.4 branch is developing

  8. 2015-05-01 ---- Publish 0.4 version

  9. 2016-01-09 ---- Deploy war to Test-Server(http://andaily.com/hb/)

  10. 2016-05-01 ---- Start to developing 0.5 version

  11. 2016-07-30 ---- Publish 0.5-beta1 version

  12. 2016-08-15 ---- Publish 0.5-beta2 version

  13. 2016-11-18 ---- Publish 0.5 version and add 1.0.0 planning

  14. 2017-07-09 ---- Publish 1.0.0 version

  15. 2018-01-29 ---- Start Spring-Boot 2.0.0 development

  16. 2018-02-22 ---- Publish 2.0.0 version

  17. 2023-11-16 ---- Start v3.0.0 development

  18. 2024-01-09 ---- Publish v3.0.0 version


相关链接


捐助

支付宝: monkeyking1987@126.com (**钊)

  • 曹晓舟 -- 18元 (2017-02-19)

更多...

More Open-Source projects see https://andaily.com/my_projects.html
From andaily.com
Email sz@monkeyk.com

空文件

简介

心跳检测应用服务器(支持协议HTTP/UDP/TCP)的JAVA 微服务应用程序 展开 收起
README
Apache-2.0
取消

发行版 (2)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/mkk/HeartBeat.git
git@gitee.com:mkk/HeartBeat.git
mkk
HeartBeat
HeartBeat
3.0.0

搜索帮助