我已经使用docker运行了Apache Kafka和Prometheus。我将在本文的底部附加docker-compose和其他配置!
简介:首先,我应该解释一下,kafka的每个指标都适用于普罗米修斯。因此,图像的实现和运行没有问题。
问题:唯一的问题是,我想按照official site of apache kafka的教程在其中测试流(生产者,经纪人和消费者)。但是,每当执行站点上的命令时,我都会遇到command not found error
,因为我不知道文件的确切位置!作为示例,每当我执行bin/zookeeper-server-start.sh config/zookeeper.properties
命令时,都会遇到以下错误:
没有这样的文件或目录:bin / zookeeper-server-start.sh
附件:
docker-compose.yml:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
build: .
links:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OPTS: -javaagent:/usr/app/jmx_prometheus_javaagent.jar=7071:/usr/app/prom-jmx-agent-config.yml
volumes:
- /var/run/docker.sock:/var/run/docker.sock
prometheus:
image: prom/prometheus
ports:
- 9090:9090/tcp
volumes:
- ./mount/prometheus:/etc/prometheus
links:
- kafka
Dockerfile:
FROM wurstmeister/kafka
ADD prom-jmx-agent-config.yml /usr/app/prom-jmx-agent-config.yml
ADD jmx_prometheus_javaagent-0.10.jar /usr/app/jmx_prometheus_javaagent.jar
问题:是否有解决方案来查找原始文件在创建的容器中的映射位置并执行它们?
答案 0 :(得分:1)
Apache站点上的快速入门从未引用Docker。这些脚本需要下载(作为Kafka的一部分),或者您需要docker exec
进入容器才能运行它们
但是,Docker已经启动了Kafka和Zookeeper,因此您无需运行这些命令。因此,您可以跳过编写自己的生产者/消费者的过程,而无需使用任何提供的脚本