Kafka Connect警报选项?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka Connect警报选项?相关的知识,希望对你有一定的参考价值。

对于Kafka Connect Connector或Connector任务失败或遇到错误的情况,是否有任何警报选项?

我们有Kafka Connect运行,它运行良好,但我们有错误需要手动跟踪和发现。通常,在人类注意到问题之前,它已处于错误状态一周。

答案

一种选择是使用Kafka Connect's REST API来检查工人的健康状况和连接器的状态。使用简单脚本或许多监视系统,这种方法很容易自动化。它适用于独立工作者和分布式工作者,但在后一种情况下,您可以向群集中的任何Kafka Connect工作者发出请求。

如果要检查所有连接器的运行状况,第一步是获取已部署连接器的列表:

GET /connectors

这将返回连接器名称的JSON数组。对于其中每个,请发出检查指定连接器状态的请求:

GET /connectors/(string: name)/status

响应将包括有关连接器及其任务的状态信息。例如,以下显示了一个运行两个任务的连接器,其中一个任务仍在运行,另一个任务因错误而失败:

HTTP/1.1 200 OK

{
    "name": "hdfs-sink-connector",
    "connector": {
        "state": "RUNNING",
        "worker_id": "fakehost:8083"
    },
    "tasks":
    [
        {
            "id": 0,
            "state": "RUNNING",
            "worker_id": "fakehost:8083"
        },
        {
            "id": 1,
            "state": "FAILED",
            "worker_id": "fakehost:8083",
            "trace": "org.apache.kafka.common.errors.RecordTooLargeException
"
        }
    ]
}

这些只是REST API允许您执行的操作的示例。

另一答案

在Randall所说的基础上,这个shell脚本使用Confluent CLI来显示所有连接器和任务的状态。您可以将其用作警报的基础:

Robin@asgard02 ~/c/confluent-3.3.0> ./bin/confluent status connectors| 
                                    jq '.[]'| 
                                    xargs -I{connector} ./bin/confluent status {connector}| 
                                    jq -c -M '[.name,.connector.state,.tasks[].state]|join(":|:")'| 
                                    column -s : -t| 
                                    sed 's/"//g'| 
                                    sort

file-sink-mysql-foobar       |  RUNNING  |  RUNNING
jdbc_source_mysql_foobar_01  |  RUNNING  |  RUNNING
另一答案

我知道这是一个非常古老的问题,因此当我们遇到类似的问题时,我们非常重视Kafka Connect,并且因为很难单独监控每个连接器,特别是当您正在寻找管理150多个连接器时。

因此,我们编写了一个基于Kotlin的小应用程序,它接受一个config.json,您可以在其中指定集群配置,如果指定了smtp配置,它将继续根据指定的指定递归间隔轮询集群,并将发送基于邮件的警报。

如果它适合您的用例,请使用并提出问题,以防您遇到任何问题。

回购的链接如下:https://github.com/gunjdesai/kafka-connect-monit

图像也会在Docker Hub上推送,您可以使用以下命令直接运行它。

docker run -d -v <location-of-your-config-file.json>:/home/code/config.json gunjdesai/kafka-connect-monit

希望这对你有所帮助

以上是关于Kafka Connect警报选项?的主要内容,如果未能解决你的问题,请参考以下文章

使用Kafka Connect导入/导出数据

Kafka Connect 如何构建实时数据管道

如何使用警报管理器将数据从片段传递到广播接收器

如何摆脱 Connect 3.0 弃用警报?

无法在 kafka connect docker 映像中运行 kafka connect datagen

Kafka Connect:将消息从字节转换为 Json