1、下载zookeeper
docker pull wurstmeister/zookeeper 2、下载kafka
docker pull wurstmeister/kafka:2.11-0.11.0.3 3、启动zookeeper
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
报错:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/etc/localtime\\\" to rootfs \\\"/var/lib/docker/overlay2/7b63cb086d7b04c3b5a979624d6ea3c39672b268e634d0d80224eefde47e51e2/merged\\\" at \\\"/var/lib/docker/overlay2/7b63cb086d7b04c3b5a979624d6ea3c39672b268e634d0d80224eefde47e51e2/merged/etc/localtime\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
解决:创建一个自定义容器卷 edc-zookeeper-vol 查看所有容器:docker volume ls
docker volume edc-zookeeper-vol
将挂载的目录也修改为 /var/lib/docker/volumes/etc/localtime 再次执行:
docker run -d --name zookeeper --publish 2181:2181 --volume edc-zookeeper-vol:/var/lib/docker/volumes/etc/localtime wurstmeister/zookeeper 4、启动kafa
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=192.168.0.104:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.0.104 --env KAFKA_ADVERTISED_PORT=9092 --volume edc-zookeeper-vol:/var/lib/docker/volumes/etc/localtime wurstmeister/kafka:2.11-0.11.0.3 5、创建topic
以下是因为kafka-topics.sh并不在bin目录下所走的弯路:
查看kafka容器ID:docker ps
进入容器:docker exec -it [容器ID] bin/bash
创建topic
bin/kafka-topics.sh --create --zookeeper 192.168.0.104:2181 --replication-factor 1 --partitions 1 --topic mykafka
问题:创建topics时执行命令报错:bash: bin/kafka-topics.sh: No such file or directory
进入bin文件:cd /bin
创建文件kafka-topic.sh文件:touch kafka-topics.sh
问题:再次执行创建topic时报错:bash: bin/kafka-topics.sh: Permission denied 因为没有权限
解决:进入文件所在的目录执行:chmod a+x *.sh 然后再次执行创建topics的命令 其实kafka-topics.sh文件在 /opt/kafka/bin 目录下
再次创建:
opt/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.0.104:2181 --replication-factor 1 --partitions 1 --topic mykafka
返回:Created topic "mykafka". 说明已创建成功 6、查看topic
opt/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.0.104:2181
返回:mykafka 7、创建生产者
opt/kafka/bin/kafka-console-producer.sh --broker-list 192.168.0.104:9092 --topic mykafka
返回:> 表示进入输入状态 8、重新开一个命令行窗口,并再次进入kafka容器中,创建消费者
opt/kafka/bin/kafka-console-consumer.sh --zookeeper 192.168.0.104:2181 --topic mykafka --from-beginning 9、在生产者的命令行中输入信息,在消费者的命令行窗口就可以实时的接收到信息。 10、安装ELK
docker pull sebp/elk 11、启动ELK
docker run -p 5601:5601 -p 9200:9200 -p 9300:9300 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=2048m -d --name elk sebp/elk 过10秒就可以看到ELK相关的面板。:http://localhost:5601/ 12、进入ELK容器: docker exec -it 容器ID bin/bash 13、测试 Logstash和ES之间是可以正常联通
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
报错: Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting.
进入指定的文件夹root@c953e1538736:/opt/logstash/data# 中将.lock文件删除
再次执行命令 /opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }' 14、这句话:Successfully started Logstash API endpoint {:port=>9600}表示成功
然后输入一句话:olidigital.com hello world 回车
打开浏览器,输入:http://192.168.0.104:9200/_search?pretty 如图,就会看到我们刚刚输入的日志内容。(并没有找到输入的日志,待解。。。) 15、配置Logstash从Kafka消费消息
1) 找到config文件
cd /opt/logstash/config 2) 编辑配置文件(没有该文件会新建一个)
vi logstash.config 输入内容:
input {
kafka{
bootstrap_servers =>["192.168.0.104:9092"]
client_id => "test" group_id => "test"
consumer_threads => 5
decorate_events => true
topics => "mi"
}
}
filter{
json{
source => "message"
}
} output {
elasticsearch {
hosts => ["localhost"]
index => "mi-%{app_id}"
codec => "json"
}
} 16、进入elk加载配置文件从kafka上消费
/opt/logstash/bin/logstash -f /opt/logstash/config/logstash.config

docker容器中部署 kafka 和 elk的更多相关文章

  1. .NET Core开发的iNeuOS工业互联平台,iNeuKernel物联网核心组件在Docker容器中部署。

    目       录 1.      概述... 2 2.      演示信息... 2 3.      安装Docker容器... 2 4.      安装dotnet镜像... 3 5.      ...

  2. docker容器中搭建kafka集群环境

    Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务 ...

  3. 在CentOS下的docker容器中部署spring boot应用的两种方式

    我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...

  4. docker 容器中部署 Go 服务时,请求 https 文件时抛错

    错误提示: Get https://res.ddkt365.com/ddktRes/imageRes/wx_headimg/0f1d9e55913c22bcaf7cca9b38048d29.jpeg: ...

  5. Docker 案例: 在容器中部署静态网站

    ----------------知识点------------ 容器的端口映射: docker  run  [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...

  6. docker多个容器连接 将 Rails 程序部署到 Docker 容器中

    在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中

  7. Docker 在容器中部署静态网站

    Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...

  8. Linux下将.Asp Core 部署到 Docker容器中

    我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...

  9. 将netcore网站部署到docker容器中

    一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...

  10. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

随机推荐

  1. 火山引擎ByteHouse:云原生数据库如何提升MySQL兼容性?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当前各类软件层出不穷,单独某一款软件往往难以满足企业应用需求,一般都需要与各类软件组合使用,这时软件生态兼容性就显 ...

  2. java -jar 启动 boot 程序 no main manifest attribute, in .\vipsoft-model-web-0.0.1-SNAPSHOT.jar

    想让你的windows下 cmd 和我的一样帅吗.下载 cmder 绿色版,然后用我的配置文件,替换原来的文件启动就可以了 另外加cmder添加到右击菜单中,到安装目录中,执行下面命令 Cmder.e ...

  3. 【已解决】无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported

    原因是最近xlrd更新到了2.0.1版本,只支持.xls文件.所以x1 = xlrd.open_workbook("data.xlsx")会报错. 可以安装旧版xlrd,在cmd中 ...

  4. 第一章 Linux系统编程

    Linux基础命令 ctrl + l //快速清屏 rm 文件名 //删除文件,rm *.o表示删除所有.o后缀的文件 mkdir 目录名 //创建一个目录 touch 文件名 //创建一个文件 tr ...

  5. AtCoder ARC 115 E - LEQ and NEQ (延迟标记线段树 or 笛卡尔积 + DP维护)

    问题链接:Here 长度为 \(N\) 的数列 \(A_1,-,A_N\) .回答满足以下条件的长度 \(N\) 的数列 \(X_1,-,X_N\) 的个数除以 \(998244353\) 的余数. ...

  6. Function--jdk8用法

    Lambda表达式.首先是参数部分,接着是->,可以视为产出,->之后的内容都是方法体. 当只有一个参数时,可以不需要括号(): 正常情况使用()包裹参数,为了保持一致性,也可以使用括号( ...

  7. 12、SpringBoot-mybatis-plus-ehcache

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  8. C#之RabbitMQ

    本文内容整理自https://blog.csdn.net/by_ron/category_6167618.html RabbitMQ–环境搭建 能点进来相信你明白RabbitMQ是干什么的了,这个系列 ...

  9. LaTex · overleaf | 使用技巧存档

    如何使用 bibtex:http://www.taodudu.cc/news/show-5832925.html?action=onClick bibtex 格式:https://blog.csdn. ...

  10. strlen和sizeof区别

    strlen 和 sizeof 是 C/C++ 中用于获取字符串长度或数据类型大小的两个不同的操作. 1.strlen: strlen 是在 C 语言和 C++ 中用于获取以空字符 ('\0') 结尾 ...