做监控是个苦差事,不过,没关系,我们可以用 Prometheus 和 Grafana 来轻松搞定 kafka 集群的监控。凡蜕在这里给大家分享一下详细的步骤,让你们也能够为 kafka 集群设置监控,轻松愉悦!
效果:
前置说明
Prometheus、Exporter 和 Grafana 都是用于监控的工具。
Prometheus 是一款开源的监控系统,主要用于度量和记录各种数据。它可以通过它的 Pull 模型,定期从配置的目标地址(例如:应用程序、数据库、操作系统)拉取指定的 metrics,并存储在自己的数据库中。同时还提供了强大的查询语言,可以对数据进行统计和分析。
Exporter 是一款用于收集和导出数据的工具。它能够将应用程序、数据库或操作系统的 metrics 转换为 Prometheus 可以抓取的格式。通常情况下,exporter 会运行在被监控的对象上,向 Prometheus 提供 metrics。
Grafana 是一款用于数据可视化的工具。它能够将 Prometheus 收集到的数据生成漂亮的图表和仪表盘,支持多种图表类型和布局方式。同时,Grafana 还支持多种数据源,不仅仅限于 Prometheus。
综上所述,Prometheus 是监控系统的核心,负责数据的抓取、存储和查询;Exporter 则是数据的生产者,将采集到的数据格式化成 Prometheus 能够读取的格式;而 Grafana 则是数据的消费者,将 Prometheus 的数据进行可视化,帮助用户快速地了解和分析监控数据。
步骤一:安装和配置 Prometheus
安装 Prometheus
首先,你需要从 Prometheus 的官网 下载适合你的操作系统的二进制文件,并解压到指定目录。
配置 Prometheus
接下来,你需要配置 Prometheus 以便它能够监控 kafka 集群。在 Prometheus 的 prometheus.yml
文件中,添加以下内容:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: "kafka"
scrape_interval: 120s
scrape_timeout: 120s
static_configs:
- targets: ["<ip-address>:<exporter-port>"]
其中,<ip-address>
是 kafka 集群中任意一个节点的 IP 地址,<exporter-port>
是 kafka Exporter 的端口号(默认为 9308)。
步骤二:安装和配置 Kafka Exporter
安装 Kafka Exporter
你需要下载 kafka Exporter 的二进制文件。你可以从 Kafka Exporter 的 Github 仓库 下载适合操作系统的版本(linux通常为amd64), 然后上传到某个kafka节点(不需要上传到集群每个节点, 一个即可), 解压 tar zxvf
运行 Kafka Exporter
先开启该kafka节点的9308端口.(怎么开端口这里省略)
在完成 kafka Exporter 的上传解压之后,可以通过运行以下命令来启动它:
cat >/usr/lib/systemd/system/kafka_exporter.service <<EOF
[Unit]
Description=kafka_exporter
After=network.target
[Service]
Type=simple
ExecStart=kafka_exporter绝对路径 --kafka.server=http://节点ip:9092 --web.listen-address=:9308
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 设置服务开机自启动
systemctl enable kafka_exporter
systemctl start kafka_exporter
systemctl status kafka_exporter
配置上面的ExecStart, 替换绝对路径, kafka ip端口即可.
步骤三:安装和配置 Grafana
安装 Grafana
你可以从 Grafana 的官网 下载适合你的操作系统的二进制文件,并解压到指定目录。
配置 Grafana
你需要将 kafka Exporter 添加为 Grafana 的数据源。在 Grafana 的 web 界面中,选择 "Configuration" -> "Data Sources" -> "Add data source",然后填写以下信息:
- Type: Prometheus
- Name: 任意名称
- HTTP URL: http://localhost:9090 (这里的端口号是默认值,如果 Prometheus 使用了不同的端口,请修改此处。)
- Access: Browser
导入 kafka 监控仪表盘
你可以从 Grafana 提供的官方仪表盘库 下载 kafka 监控仪表盘(推荐https://grafana.com/grafana/dashboards/12460-kafka-export/)。你可以通过以下步骤导入这个仪表盘:
- 在 Grafana 的 web 界面中,选择 "Create" -> "Import".
- 输入仪表盘 ID:例如我选择的监控 kafka 集群的仪表盘 ID 为 12460.
- 选择刚刚添加的数据源.
- 点击 "Import" 按钮.
结论
通过以上步骤,您已经成功为 kafka 集群设置了监控。现在,你可以使用 Grafana 的仪表盘来查看 kafka 集群的性能指标、状态等信息。如果您在设置过程中遇到任何问题,请随时参考 Prometheus 和 Grafana 的官方文档。