释放双眼,带上耳机,听听看~!
🤖 由 ChatGPT 生成的文章摘要
前面介绍过了Docker-compose以及Kubernetes做Kafka的监控,接下来我们使用传统的方式接入Kafka的监控。
首先需要下载jmx_exporter的包,引用到Kafka 启动文件中
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar
#永久下载地址
wget https://d.frps.cn/file/tools/kafka/jmx_prometheus_javaagent-0.19.0.jar
Jmx exporter中包含了kafka各个组件的指标,如server metrics、producer metrics、consumer metrics等,但这些指标并不是prometheus格式的,因此需要通过重命名方式转变为prometheus格式,重命名规则配置在kafka-2_0_0.yml中
wget https://github.com/prometheus/jmx_exporter/blob/main/example_configs/kafka-2_0_0.yml
#永久下载地址
wget https://d.frps.cn/file/tools/kafka/kafka-2_0_0.yml
编辑Kafka-run-class.sh启动脚本
...
# JMX port to use
if [ $JMX_PORT ]; then
KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
fi
#在jmx配置参数下面添加以下环境配置
export export KAFKA_OPTS="-javaagent:/opt/kafka/bin/jmx_prometheus_javaagent-0.19.0.jar=9700:/opt/kafka/bin/kafka-2_0_0.yml"
#jmx_exporter端口为9700
#agent jar包路径都放在了/opt/kafka/bin/下
启动服务
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
接下来访问9700
端口就可以看到规则
jvm_threads_deadlocked 0.0
# HELP jvm_threads_deadlocked_monitor Cycles of JVM-threads that are in deadlock waiting to acquire object monitors
# TYPE jvm_threads_deadlocked_monitor gauge
jvm_threads_deadlocked_monitor 0.0
# HELP jvm_threads_state Current count of threads by state
# TYPE jvm_threads_state gauge
jvm_threads_state{state="NEW",} 0.0
jvm_threads_state{state="TERMINATED",} 0.0
jvm_threads_state{state="RUNNABLE",} 13.0
jvm_threads_state{state="BLOCKED",} 0.0
jvm_threads_state{state="WAITING",} 17.0
jvm_threads_state{state="TIMED_WAITING",} 24.0
jvm_threads_state{state="UNKNOWN",} 0.0
# HELP jmx_config_reload_success_total Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_total counter
jmx_config_reload_success_total 0.0
# HELP jmx_config_reload_failure_created Number of times configuration have failed to be reloaded.
# TYPE jmx_config_reload_failure_created gauge
jmx_config_reload_failure_created 1.703144346974E9
# HELP jmx_config_reload_success_created Number of times configuration have successfully been reloaded.
# TYPE jmx_config_reload_success_created gauge
jmx_config_reload_success_created 1.703144346973E9
# HELP jvm_memory_pool_allocated_bytes_created Total bytes allocated in a given JVM memory pool. Only updated after GC, not continuously.
# TYPE jvm_memory_pool_allocated_bytes_created gauge
jvm_memory_pool_allocated_bytes_created{pool="G1 Old Gen",} 1.703144364875E9
jvm_memory_pool_allocated_bytes_created{pool="Code Cache",} 1.703144347567E9
jvm_memory_pool_allocated_bytes_created{pool="G1 Eden Space",} 1.703144347568E9
jvm_memory_pool_allocated_bytes_created{pool="G1 Survivor Space",} 1.703144347568E9
jvm_memory_pool_allocated_bytes_created{pool="Compressed Class Space",} 1.703144347568E9
jvm_memory_pool_allocated_bytes_created{pool="Metaspace",} 1.703144347568E9
Prometheus 告警
可以看下面的文章
https://i4t.com/13732.html