Skip to content

05.zkdoctor扩展功能说明

Elevenlxl edited this page Jun 20, 2018 · 1 revision

为了更方便进行功能扩展,zkdoctor提供了对应的接口。所有相关功能以及扩展说明将在下面进行介绍。

一、登录校验扩展说明

如果采用LDAP校验,请自行完善LoginUtil工具类中的ldapLogin方法,默认不进行校验:

/**
 * LDAP登录校验
 *
 * @param username 用户名
 * @param password 密码
 * @return
 */
public static boolean ldapLogin(String username, String password) {
    // TODO 自行增加ldap校验过程
    return true;
}

二、短信邮件扩展说明

消息发送主要包括短信和邮件,具体实现在MessageUtil工具类中,需要自行扩展对应的邮件以及短信发送实现,如下:

/**
 * 发送短信
 *
 * @param content 短信内容
 * @param mobile  手机号
 */
public static void sendSMS(String content, String mobile) {
    // TODO 自行实现短信发送
    LOGGER.info("Sent sms to {}. the content is {}.", mobile, content);
}
/**
 * 发送邮件
 *
 * @param title       邮件标题
 * @param content     邮件内容
 * @param mailAddress 邮箱地址
 */
public static void sendMail(String title, String content, String mailAddress) {
    // TODO 自行实现邮件发送
    LOGGER.info("Sent mail to {}. the title is {}, content is {}.", mailAddress, title, content);
}

三、监控报警扩展说明

具体监控报警均在com.ucar.zkdoctor.service.monitor.detail包下实现,如需增加新的监控报警项,直接继承MonitorBase基类,重写monitor()以及init()方法即可,说明如下:

1、monitor()方法

该方法主要是监控报警具体实现,具体监控实现放在Monitor接口的monitor方法中,直接调用父类的specifyMonitor方法即可

2、init()方法

该方法为监控指标初始化方法,主要做一些基本信息传递以及指标基本设置以及存储操作。系统在初始化的时候,会通过Init类,完成监控报警信息的初始化工作,会调用该方法。

四、服务信息收集扩展说明

通过使用ZooKeeper的四字命令进行服务端数据收集工作,具体支持的四字命令在枚举类FourLetterCommand中定义,可自行添加以及扩展支持的四字命令。具体支持的四字命令描述如下:

/**
 * conf (New in 3.3.0)输出相关服务配置的详细信息。比如端口、zk数据及日志配置路径、最大连接数,session超时时间、serverId等
 * cons (New in 3.3.0)列出所有连接到这台服务器的客户端连接/会话的详细信息。包括“接受/发送”的包数量、session id 、操作延迟、最后的操作执行等信息
 * crst New in 3.3.0)重置当前这台服务器所有连接/会话的统计信息
 * dump 列出未经处理的会话和临时节点(只在leader上有效)
 * envi 输出关于服务器的环境详细信息(不同于conf命令),比如host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之类信息
 * ruok 测试服务是否处于正确运行状态。如果正常返回"imok",否则返回空
 * srst 重置服务器的统计信息
 * srvr (New in 3.3.0)输出服务器的详细信息。zk版本、接收/发送包数量、连接数、模式(leader/follower)、节点总数
 * stat 输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。 所有客户端的列表
 * wchs (New in 3.3.0)列出服务器watches的简洁信息:连接总数、watching节点总数和watches总数
 * wchc (New in 3.3.0)通过session分组,列出watch的所有节点,它的输出是一个与 watch 相关的会话的节点列表。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用
 * wchp (New in 3.3.0)通过路径分组,列出所有的 watch 的session id信息。它输出一个与 session 相关的路径。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用
 * mntr (New in 3.4.0)列出集群的健康状态。包括“接受/发送”的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数
 */

五、前端项目简要说明

前端主要采用React+TypeScript,每个模块主要包含三部分:

1、view目录

主要是前端渲染、展示相关定义

2、model目录

主要是数据类型定义以及数据获取定义,采用mobx进行数据状态管理

3、service目录

主要是与后台的请求交互定义