Kafka-Eagle是一个开源的Kafka集群监控与告警系统,可以帮助用户实现对Kafka集群的实时监控、性能指标收集以及异常告警等功能。下面是关于Kafka-Eagle的告警配置和实践的一般步骤:
- 安装和配置Kafka-Eagle:
- 下载最新版本的Kafka-Eagle安装包,并解压到一个合适的目录中。
- 进入Kafka-Eagle的解压目录,编辑
conf/system-config.properties
文件,配置Kafka集群的相关信息。
- 修改
kafka.eagle.zk.cluster.alias
属性来设置ZooKeeper集群的别名。 - 修改
kafka.eagle.zk.list
属性来设置ZooKeeper的地址,支持多个地址用逗号分隔。 - 修改
kafka.eagle.bootstrap.servers
属性来设置Kafka集群的Bootstrap Servers,支持多个地址用逗号分隔。
- 配置告警规则:
- 在Kafka-Eagle的解压目录下,找到
conf/alarm.properties
文件,该文件用于配置告警规则。 - 告警规则由JSON数组表示,可以添加多个告警规则。
- 每个告警规则由以下字段组成:
-
cluster
:指定Kafka集群的别名,与system-config.properties
文件中的kafka.eagle.zk.cluster.alias
对应。 -
topic
:定义要监控的Topic名称,可以使用通配符(*)匹配多个Topic。 -
alarmLevel
:设置告警级别,可选值为CRITICAL
、WARNING
、INFO
。 -
expression
:定义告警的触发条件,可以使用Kafka-Eagle提供的表达式语法,例如brokerMetrics.get(1).get('HeapMemoryUsed') > 1000000000
表示当Broker的堆内存使用量超过1GB时触发告警。 -
notificationGroups
:指定通知组,用于发送告警通知。
- 配置告警通知方式:
- 在
conf/alarm.properties
文件中,配置告警通知方式。 - Kafka-Eagle支持多种告警通知方式,包括邮件、短信、Webhook等。
- 配置相应的通知方式参数,如SMTP服务器信息(如果使用邮件通知)或其他通知方式的相关参数。
- 启动Kafka-Eagle:
- 执行Kafka-Eagle的启动脚本,例如执行
./bin/ke.sh start
(Linux/Mac)或bin\ke.bat start
(Windows)来启动Kafka-Eagle服务。 - 等待一段时间,确保Kafka-Eagle成功连接到Kafka集群并开始收集监控数据。
- 监控与告警查看:
- 打开Web浏览器,访问Kafka-Eagle的Web界面,默认地址为
http://<Kafka-Eagle服务器IP>:8048/ke
。 - 在登录页面输入用户名和密码,默认用户名为
admin
,密码为admin
(可以在conf/system-config.properties
文件中修改)。 - 登录后,可以查看Kafka集群的实时监控数据、告警信息和历史记录。
- 在"Topics"选项卡下,可以查看Topic的分区情况、消息堆积数量等指标。
- 在"Brokers"选项卡下,可以查看Broker的性能指标、副本状态等信息。
- 当触发告警规则时,Kafka-Eagle会发送相应的告警通知。
请注意,以上步骤仅为基本配置和使用Kafka-Eagle进行告警的指导。Kafka-Eagle还提供了更多功能,如消费者组监控、消息查询等。你可以参考官方文档获取更详细的配置和使用说明,并根据实际需求进行适当调整和优化。
当配置Kafka-Eagle的告警规则时,你可以根据实际需求定义更详细的规则。以下是一些常见的告警规则配置选项:
1. `cluster`:指定要监控的Kafka集群的别名。
2. `topic`:定义要监控的Topic名称。你可以使用通配符(*)来匹配多个Topic,例如`topic: "my_topic_*"`。
3. `alarmLevel`:设置告警级别,可选值包括:
- `CRITICAL`:关键级别的告警,表示存在严重问题。
- `WARNING`:警告级别的告警,表示存在潜在问题。
- `INFO`:信息级别的告警,表示一般的监控信息。
4. `expression`:定义告警触发条件的表达式。你可以使用Kafka-Eagle提供的表达式语法来构建条件。以下是一些常用的表达式语法:
- 监控Broker的Heap Memory使用量是否超过阈值:`brokerMetrics.get(<brokerId>).get('HeapMemoryUsed') > <threshold>`。
- 监控Topic的消息堆积数量是否超过阈值:`topicMetrics.get('<topicName>').get('MessagesIn') > <threshold>`。
- 监控Topic的副本数量是否低于期望值:`topicMetadata.get('<topicName>').get('ReplicaCount') < <expectedReplicaCount>`。
5. `notificationGroups`:指定用于发送告警通知的通知组。你可以在Kafka-Eagle的Web界面中配置通知组,包括邮件、短信、Webhook等方式。
下面是一个示例告警规则的配置:
```json
[
{
"cluster": "my_cluster",
"topic": "my_topic",
"alarmLevel": "CRITICAL",
"expression": "topicMetrics.get('my_topic').get('MessagesIn') > 1000",
"notificationGroups": ["group1", "group2"]
},
{
"cluster": "my_cluster",
"topic": "another_topic",
"alarmLevel": "WARNING",
"expression": "brokerMetrics.get(1).get('HeapMemoryUsed') > 1000000000",
"notificationGroups": ["group1"]
}
]
```
以上示例中定义了两个告警规则:
- 第一个规则监控名为`my_topic`的Topic,当其消息堆积数量超过1000时触发关键级别的告警,并发送通知给`group1`和`group2`。
- 第二个规则监控名为`another_topic`的Topic,当Broker 1的堆内存使用量超过1GB时触发警告级别的告警,并发送通知给`group1`。
你可以根据实际需求调整告警规则中的参数和表达式,以满足你的监控和告警需求。同时,Kafka-Eagle还提供了更多的表达式函数和变量,你可以查阅官方文档获取更详细的表达式语法和使用说明。
参考资料
3.快速入门 - Kafka Eagle (kafka-eagle.org)
使用kafka-eagle监控kafka_kafka-eagle告警-
标签:Eagle,get,EFAK,Kafka,topic,监控,告警 From: https://blog.51cto.com/u_11579569/9011107