更新时间:2026-06-11 GMT+08:00
分享

配置Kafka生产流量异常告警规则

操作场景

该任务指导用户根据业务需求,在客户端使用命令行工具kafka-topic-monitor.sh来创建和管理Kafka生产流量异常告警规则。当达到配置的告警规则后,会在Manager上报“ALM-38020 Kafka生产流量异常”告警。

约束与限制

该章节操作仅适用于MRS 3.6.0.1及之后版本。

前提条件

  • MRS集群管理员已明确业务需求。并准备一个Kafka组件业务用户,该用户属于kafkaadmin用户组。(普通模式不需要)
  • 已安装Kafka客户端,例如客户端安装目录为“/opt/client”。
  • 已安装KafkaUI实例。

操作步骤

  1. 以客户端安装用户,登录已安装Kafka客户端的节点。
  2. 切换到Kafka客户端安装目录,例如“/opt/client”。

    cd /opt/client

  3. 执行以下命令,切换到Kafka客户端脚本目录。

    cd Kafka/kafka/bin

  4. 配置认证信息。

    使用kafka-topic-monitor.sh脚本前,需要配置访问KafkaUI的认证信息。配置方式如下:

    • 方式一:在使用5kafka-topic-monitor.sh脚本命令行时添加参数
      • -e或--endpoint {KafkaUI访问地址}

        KafkaUI访问地址格式:https://{KafkaUI的IP}:20026/Kafka/KafkaUI/{instanceId}

      • -u或--username {用户名}(仅集群已启用Kerberos认证(安全模式)时填写)
      • -p或--password {用户密码} (仅集群已启用Kerberos认证(安全模式)时填写)

      更多参数详细介绍请参考脚本参数说明

    • 方式二:配置文件

      kafka-topic-monitor.sh脚本默认会自动读取“Kafka客户端目录/Kafka/kafka/config”路径下的kafka-topic-monitor.properties文件,该文件默认不存在,需要手动创建,用户也可以使用“-f”参数手动指定配置文件路径。

      kafka-topic-monitor.properties配置文件内容如下:

      endpoint={URL}   KafkaUI访问地址,格式:https://{KafkaUI的IP}:20026/Kafka/KafkaUI/{instanceId}
      username={USER}  用户名(仅集群已启用Kerberos认证(安全模式)时填写)
      password={PASS}  密码(仅集群已启用Kerberos认证(安全模式)时填写)

  5. 使用kafka-topic-monitor.sh脚本创建告警规则。

    当需要监控某些Topic的生产流量异常时,可以创建告警规则。系统将按照配置的检查周期和触发条件对指定的Topic进行监控。

    更多参数详细介绍请参考脚本参数说明

    例如:

    • 创建新的告警规则,监控名称为“test”的Topic,当生产流量低于1000条/秒时上报重要告警,检查周期为1分钟,平滑次数为1次:
      ./kafka-topic-monitor.sh --create -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -t "test" -m 1000 -g 1 -P 1
    • 创建新的告警规则,监控名称前缀为“test”的Topic,当生产流量低于1000条/秒或高于10000条/秒时上报紧急告警,检查周期为2分钟,平滑次数为2次:
      ./kafka-topic-monitor.sh --create -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -t "test*" -c 1000 -C 10000 -g 2 -P 2

  6. 查询告警规则。

    查看已创建的告警规则列表,或根据条件筛选特定的告警规则。

    例如:

    • 查询所有告警规则:
      ./kafka-topic-monitor.sh --list -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd>
    • 分页查询,每页大小为10,查询第1页:
      ./kafka-topic-monitor.sh --list -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -n 1 -s 10
    • 排序查询,基于创建时间降序排序:
      ./kafka-topic-monitor.sh --list -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -o DESC -b created_at
    • 关键字搜索,查询监控的Topic包含“test”关键字的告警规则:
      ./kafka-topic-monitor.sh --list -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -k "test"
    • 使用--query-by-id参数查询ID为1的告警规则:
      ./kafka-topic-monitor.sh --query-by-id -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -i 1

  7. 修改告警规则。

    当告警规则的条件需要调整时,可以修改已存在的告警规则。

    例如:

    • 将ID为1的告警规则监控的Topic修改为“test*”,紧急告警上界阈值修改为2000:
      ./kafka-topic-monitor.sh --modify -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -i 1 -t "test*" -C 2000
    • 将ID为2的告警规则的平滑次数修改为3:
      ./kafka-topic-monitor.sh --modify -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -i 2 -g 3

  8. 删除告警规则。

    当不再需要对某个Topic进行生产流量监控时,可以删除对应的告警规则。

    例如,删除ID为1的告警规则:
    ./kafka-topic-monitor.sh --delete -e https://192.168.1.1:20026/Kafka/KafkaUI/12 -u <user> -p <pwd> -i 1

脚本参数说明

使用kafka-topic-monitor.sh脚本时,相关参数如下表所示:

表1 脚本参数说明

参数名称

参数解释

是否必选

默认值

--create

创建告警规则。

必须指定一个操作

--modify

修改告警规则。

必须指定一个操作

--delete

删除告警规则。

必须指定一个操作

--list

查询告警规则。

必须指定一个操作

--query-by-id

基于ID查询告警规则。

必须指定一个操作

-e, --endpoint

KafkaUI的终端节点地址。

-u, --username

用户名。

安全模式下必选

-p, --password

密码。

安全模式下必选

-f, --config-file

kafka-topic-monitor.properties配置文件路径。

Kafka客户端目录/Kafka/kafka/config/kafka-topic-monitor.properties文件,该文件默认不存在。

-t, --topic

告警规则监控的Topic,支持使用“*”通配符。

创建告警规则时必选

-M, --major-upper

重要告警的阈值上限。

创建或修改告警规则时,必须使用该参数。

-m, --major-lower

重要告警的阈值下限。

创建或修改告警规则时,必须使用该参数。

-C, critical-upper

紧急告警的阈值上限。

创建或修改告警规则时,必须使用该参数。

-c, --critical-lower

紧急告警的阈值下限。

创建或修改告警规则时,必须使用该参数。

-g, --trigger-count

告警规则的平滑次数。

-P, --check-period

告警规则的周期。

-i, --id

告警规则的ID。

修改、删除、根据ID查询告警规则时必选。

-n, --page-num

查询告警规则时,指定当前查询的页码。

1

-s, --page-size

查询告警规则时,指定每页最多展示多少告警规则。

10

-o, --order

查询告警规则时,字段排序的顺序,可以指定升序或者降序。

DESC(降序)

-b, --order-by

查询告警规则时,排序依据的字段名。

created_at(告警规则的创建时间)

-k, --search-content

查询告警规则时,搜索的告警规则监控Topic的关键字。

""(空字符串)

-h, --help

输出脚本的使用说明。

相关文档