알람 관련 오픈소스 프로젝트
시스템 문제를 체크하기 위해서 DB에 SQL과 기준, 체크 스케줄을 등록하고 배치를 수행하여 문제가 발생하였을 떄 담당자에게 메일을 보내는 기능을 개발하려고 합니다. Java 기반으로 유사한 오픈 소스 프로젝트 찾아 주세요.
Quartz: 가장 널리 사용되는 Java 스케줄러 라이브러리 중 하나입니다. Cron 표현식을 사용하여 정교한 스케줄링이 가능하며, Job 및 Trigger 개념을 통해 실행할 작업을 정의하고 관리할 수 있습니다. SQL 실행, 결과 검증, 메일 발송 로직을 Job으로 구현하여 스케줄링할 수 있습니다.
OpenNMS
https://github.com/OpenNMS/opennms
✅ 2. JobRunr
https://www.jobrunr.io/en/
특징:
백그라운드 작업 처리: Java 8 람다 표현식을 사용하여 백그라운드 작업을 쉽게 정의하고 실행할 수 있습니다.
스케줄링 기능: enqueue, schedule, scheduleRecurrently 메서드를 통해 작업을 즉시 실행하거나 예약할 수 있습니다.
대시보드 제공: 내장된 대시보드를 통해 작업 상태, 진행 상황, 실패 내역 등을 실시간으로 모니터링할 수 있습니다.
다양한 저장소 지원: 관계형 데이터베이스(RDBMS), MongoDB, Redis 등 다양한 저장소와 통합할 수 있습니다.
적합한 경우:
정기적인 데이터베이스 상태 점검 작업을 예약하고, 결과에 따라 이메일 알림을 보내는 시스템을 구축할 때.
작업의 상태를 시각적으로 모니터링하고 관리하고자 할 때.
- Dolphin Scheduler (Apache Incubator, 中国 개발팀 참여)
https://github.com/apache/dolphinscheduler
기능: 분산 스케줄링 시스템으로, SQL 작업을 정의하고 주기적으로 실행할 수 있으며, 실패 시 이메일/알림 발송 가능
특징:
웹 UI를 통해 작업 흐름(Workflow)을 정의하고 스케줄링
MySQL, PostgreSQL 등 다양한 DB 지원
중국 개발팀이 주도한 프로젝트로 중국어 문서 풍부
- Alibaba Canal (Alibaba 오픈소스)
https://github.com/apache/dolphinscheduler
기능: MySQL Binlog 기반의 데이터 동기화/모니터링 도구
유사점: DB 변경 사항을 감지하고 알림 가능 (확장 개발 필요)
참고: 주로 CDC(Change Data Capture)용이지만, 커스텀 체크 로직 추가 가능 - HertzBeat (中国 Dromara 커뮤니티)
https://github.com/apache/hertzbeat
기능: 오픈소스 실시간 모니터링 시스템으로 DB, API, 서비스 건강 상태 체크
특징:
지원 DB: MySQL, Oracle, PostgreSQL 등
임계값 초과 시 이메일/웹훅 알림
중국 개발자 중심의 활발한 커뮤니티
https://github.com/dromara/Jpom
- Ward (간단한 모니터링 툴)
기능: 서버 및 DB 상태 모니터링 대시보드
참고: 알림 기능은 제한적이지만, 오픈소스라 커스터마이징 가능
- Jpom (Dromara)
웹 사이
https://github.com/dromara/Jpom
기능: Java 프로젝트 운영 관리 도구로, 배치 및 모니터링 기능 포함
유사점: 스크립트 실행 및 알림 기능 지원
SQLeonardo
Java 기반 SQL 모니터링 및 관리 도구
스케줄링 기능과 알림 통합 가능
https://sourceforge.net/projects/sqleonardo/