diff --git a/docs/dev_guide/assets/monitor_system_integrate_with_self/change_config.jpg b/docs/dev_guide/assets/monitor_system_integrate_with_self/change_config.jpg new file mode 100644 index 00000000..bd03a303 Binary files /dev/null and b/docs/dev_guide/assets/monitor_system_integrate_with_self/change_config.jpg differ diff --git a/docs/dev_guide/assets/monitor_system_integrate_with_self/integrate_ms.jpg b/docs/dev_guide/assets/monitor_system_integrate_with_self/integrate_ms.jpg new file mode 100644 index 00000000..fde62c49 Binary files /dev/null and b/docs/dev_guide/assets/monitor_system_integrate_with_self/integrate_ms.jpg differ diff --git a/docs/dev_guide/assets/monitor_system_integrate_with_self/open_sink_schedule.jpg b/docs/dev_guide/assets/monitor_system_integrate_with_self/open_sink_schedule.jpg new file mode 100644 index 00000000..d1b4c270 Binary files /dev/null and b/docs/dev_guide/assets/monitor_system_integrate_with_self/open_sink_schedule.jpg differ diff --git a/docs/dev_guide/assets/monitor_system_integrate_with_self/sink_metrics.jpg b/docs/dev_guide/assets/monitor_system_integrate_with_self/sink_metrics.jpg new file mode 100644 index 00000000..119e95b0 Binary files /dev/null and b/docs/dev_guide/assets/monitor_system_integrate_with_self/sink_metrics.jpg differ diff --git a/docs/dev_guide/Intergration_n9e_monitor.md b/docs/dev_guide/monitor_system_integrate_with_n9e.md similarity index 97% rename from docs/dev_guide/Intergration_n9e_monitor.md rename to docs/dev_guide/monitor_system_integrate_with_n9e.md index 5b5b63f3..e5456ce3 100644 --- a/docs/dev_guide/Intergration_n9e_monitor.md +++ b/docs/dev_guide/monitor_system_integrate_with_n9e.md @@ -7,7 +7,7 @@ --- -# 夜莺监控集成 +# 监控系统集成——夜莺 - `Kafka-Manager`通过将 监控的数据 以及 监控的规则 都提交给夜莺,然后依赖夜莺的监控系统从而实现监控告警功能。 diff --git a/docs/dev_guide/monitor_system_integrate_with_self.md b/docs/dev_guide/monitor_system_integrate_with_self.md new file mode 100644 index 00000000..ed3fe30c --- /dev/null +++ b/docs/dev_guide/monitor_system_integrate_with_self.md @@ -0,0 +1,54 @@ + +--- + +![kafka-manager-logo](../assets/images/common/logo_name.png) + +**一站式`Apache Kafka`集群指标监控与运维管控平台** + +--- + +# 监控系统集成 + +- 监控系统默认与 [夜莺] (https://github.com/didi/nightingale) 进行集成; +- 对接自有的监控系统需要进行简单的二次开发,即实现部分监控告警模块的相关接口即可; +- 集成会有两块内容,一个是指标数据上报的集成,还有一个是监控告警规则的集成; + +## 1、指标数据上报集成 + +仅完成这一步的集成之后,即可将监控数据上报到监控系统中,此时已能够在自己的监控系统进行监控告警规则的配置了。 + +**步骤一:实现指标上报的接口** + +- 按照自己内部监控系统的数据格式要求,将数据进行组装成符合自己内部监控系统要求的数据进行上报,具体的可以参考夜莺集成的实现代码。 +- 至于会上报哪些指标,可以查看有哪些地方调用了该接口。 + +![sink_metrics](./assets/monitor_system_integrate_with_self/sink_metrics.jpg) + +**步骤二:相关配置修改** + +![change_config](./assets/monitor_system_integrate_with_self/change_config.jpg) + +**步骤三:开启上报任务** + +![open_sink_schedule](./assets/monitor_system_integrate_with_self/open_sink_schedule.jpg) + + +## 2、监控告警规则集成 + +完成**1、指标数据上报集成**之后,即可在自己的监控系统进行监控告警规则的配置了。完成该步骤的集成之后,可以在`Logi-KafkaManager`中进行监控告警规则的增删改查等等。 + +大体上和**1、指标数据上报集成**一致, + +**步骤一:实现相关接口** + +![integrate_ms](./assets/monitor_system_integrate_with_self/integrate_ms.jpg) + +实现完成步骤一之后,接下来的步骤和**1、指标数据上报集成**中的步骤二、步骤三一致,都需要进行相关配置的修改即可。 + + +## 3、总结 + +简单介绍了一下监控告警的集成,嫌麻烦的同学可以仅做 **1、指标数据上报集成** 这一节的内容即可满足一定场景下的需求。 + + +**集成过程中,有任何觉得文档没有说清楚的地方或者建议,欢迎入群交流,也欢迎贡献代码,觉得好也辛苦给个star。** diff --git a/docs/user_guide/faq.md b/docs/user_guide/faq.md index 89d201a2..8a099515 100644 --- a/docs/user_guide/faq.md +++ b/docs/user_guide/faq.md @@ -59,7 +59,7 @@ ### 5、如何对接夜莺的监控告警功能? -- 参看 [kafka-manager 对接夜莺监控](../dev_guide/Intergration_n9e_monitor.md) 说明。 +- 参看 [kafka-manager 对接夜莺监控](../dev_guide/monitor_system_integrate_with_n9e.md) 说明。 --- diff --git a/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/MonitorService.java b/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/MonitorService.java index 79cb0535..ec465ea8 100644 --- a/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/MonitorService.java +++ b/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/MonitorService.java @@ -14,37 +14,119 @@ import com.xiaojukeji.kafka.manager.common.entity.pojo.MonitorRuleDO; import java.util.List; /** + * 监控系统接口 * @author zengqiao * @date 20/5/21 */ public interface MonitorService { + /** + * 创建告警规则 + * @param monitorDTO 告警规则 + * @param operator 操作人 + * @return 操作状态结果 + */ ResultStatus createMonitorRule(MonitorRuleDTO monitorDTO, String operator); + /** + * 删除告警规则 + * @param id 告警ID + * @param operator 操作人 + * @return 操作状态结果 + */ ResultStatus deleteMonitorRule(Long id, String operator); + /** + * 修改告警规则 + * @param monitorDTO 告警规则 + * @param operator 操作人 + * @return 操作状态结果 + */ ResultStatus modifyMonitorRule(MonitorRuleDTO monitorDTO, String operator); + /** + * 获取告警规则 + * @param operator 操作人 + * @return 监控告警规则概要信息 + */ List getMonitorRules(String operator); + /** + * 获取监控告警规则的详情信息 + * @param monitorRuleDO 本地存储的监控告警规则概要信息 + * @return + */ Result getMonitorRuleDetail(MonitorRuleDO monitorRuleDO); + /** + * 依据主键ID, 获取存储于MySQL中的监控告警规则基本信息 + * @param id 本地监控告警规则ID + * @return 本地监控告警规则信息 + */ MonitorRuleDO getById(Long id); + /** + * 依据策略ID, 获取存储于MySQL中的监控告警规则基本信息 + * @param strategyId 策略ID + * @return 本地监控告警规则信息 + */ MonitorRuleDO getByStrategyId(Long strategyId); + /** + * 获取告警历史 + * @param id 告警ID + * @param startTime 查询的起始时间 + * @param endTime 查询的截止时间 + * @return 告警历史 + */ Result> getMonitorAlertHistory(Long id, Long startTime, Long endTime); + /** + * 查询告警详情 + * @param alertId 告警ID + * @return 告警详情 + */ Result getMonitorAlertDetail(Long alertId); + /** + * 屏蔽告警 + * @param monitorSilenceDTO 屏蔽的信息 + * @param operator 操作人 + * @return 屏蔽操作的结果 + */ Result createSilence(MonitorSilenceDTO monitorSilenceDTO, String operator); + /** + * 删除屏蔽策略 + * @param silenceId 屏蔽ID + * @return 删除屏蔽告警的操作结果 + */ Boolean releaseSilence(Long silenceId); + /** + * 修改屏蔽告警的规则 + * @param monitorSilenceDTO 屏蔽告警的信息 + * @param operator 操作人 + * @return 操作结果 + */ Result modifySilence(MonitorSilenceDTO monitorSilenceDTO, String operator); + /** + * 获取屏蔽策略 + * @param strategyId 告警策略ID + * @return + */ Result> getSilences(Long strategyId); + /** + * 获取屏蔽详情 + * @param silenceId 屏蔽ID + * @return + */ Silence getSilenceById(Long silenceId); + /** + * 获取告警接收组 + * @return + */ List getNotifyGroups(); } \ No newline at end of file diff --git a/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/component/AbstractMonitorService.java b/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/component/AbstractMonitorService.java index db3b9c06..3d79f09e 100644 --- a/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/component/AbstractMonitorService.java +++ b/kafka-manager-extends/kafka-manager-monitor/src/main/java/com/xiaojukeji/kafka/manager/monitor/component/AbstractMonitorService.java @@ -14,44 +14,34 @@ public abstract class AbstractMonitorService { * 监控策略的增删改查 */ public abstract Integer createStrategy(Strategy strategy); - public abstract Boolean deleteStrategyById(Long strategyId); - public abstract Boolean modifyStrategy(Strategy strategy); - public abstract List getStrategies(); - public abstract Strategy getStrategyById(Long strategyId); /** - * 告警的查 + * 告警被触发后, 告警信息的查询 */ public abstract List getAlerts(Long strategyId, Long startTime, Long endTime); - public abstract Alert getAlertById(Long alertId); /** - * 屏蔽的增删改查 + * 告警被触发之后, 进行屏蔽时, 屏蔽策略的增删改查 */ public abstract Boolean createSilence(Silence silence); - public abstract Boolean releaseSilence(Long silenceId); - public abstract Boolean modifySilence(Silence silence); - public abstract List getSilences(Long strategyId); - public abstract Silence getSilenceById(Long silenceId); /** - * 指标的上报和查询 - */ - public abstract Boolean sinkMetrics(List pointList); - - public abstract Metric getMetrics(String metric, Long startTime, Long endTime, Integer step, Properties tags); - - /** - * 告警组 + * 告警组获取 */ public abstract List getNotifyGroups(); + + /** + * 监控指标的上报和查询 + */ + public abstract Boolean sinkMetrics(List pointList); + public abstract Metric getMetrics(String metric, Long startTime, Long endTime, Integer step, Properties tags); } \ No newline at end of file