配置Kafka生产流量异常告警规则
操作场景
该任务指导用户根据业务需求,在客户端使用命令行工具kafka-topic-monitor.sh来创建和管理Kafka生产流量异常告警规则。当达到配置的告警规则后,会在Manager上报“ALM-38020 Kafka生产流量异常”告警。
约束与限制
该章节操作仅适用于MRS 3.6.0.1及之后版本。
前提条件
- MRS集群管理员已明确业务需求。并准备一个Kafka组件业务用户,该用户属于kafkaadmin用户组。(普通模式不需要)
- 已安装Kafka客户端,例如客户端安装目录为“/opt/client”。
- 已安装KafkaUI实例。
操作步骤
- 以客户端安装用户,登录已安装Kafka客户端的节点。
- 切换到Kafka客户端安装目录,例如“/opt/client”。
cd /opt/client
- 执行以下命令,切换到Kafka客户端脚本目录。
cd Kafka/kafka/bin
- 配置认证信息。
使用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认证(安全模式)时填写)
更多参数详细介绍请参考脚本参数说明。
- -e或--endpoint {KafkaUI访问地址}
- 方式二:配置文件
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认证(安全模式)时填写)
- 方式一:在使用5kafka-topic-monitor.sh脚本命令行时添加参数
- 使用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
- 创建新的告警规则,监控名称为“test”的Topic,当生产流量低于1000条/秒时上报重要告警,检查周期为1分钟,平滑次数为1次:
- 查询告警规则。
查看已创建的告警规则列表,或根据条件筛选特定的告警规则。
例如:
- 查询所有告警规则:
./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
- 查询所有告警规则:
- 修改告警规则。
当告警规则的条件需要调整时,可以修改已存在的告警规则。
例如:
- 将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
- 将ID为1的告警规则监控的Topic修改为“test*”,紧急告警上界阈值修改为2000:
- 删除告警规则。
当不再需要对某个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脚本时,相关参数如下表所示:
| 参数名称 | 参数解释 | 是否必选 | 默认值 |
|---|---|---|---|
| --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 | 输出脚本的使用说明。 | 否 | 无 |