时间:2021-05-19
找了不少使用 docker-elk 搭建的博客, 英文的阅读吃力不说, 镜像源也是慢的让人头皮发麻, 因此重新编排了一个docker-compose,源都是从 https://hub.docker.com/ 上找的, 即使拉的国内镜像源应该也能很好的支持了吧?
环境
给每个容器最少分配 1G 的内存
软件版本
启动前的配置
在各个目录下都有对应的 config 配置, 根据各自的情况自行处理
拿默认的 logstash/confg/test.conf 中的配置举例:
input { file { #这里的路径指的是 logstash 容器中的路径, 外部接入需要使用 volume 进行目录映射 path => "/logs/input/*" } # 在 logstash 容器中的输入 stdin {} # 因为做了本地5000端口和容器5000端口进行绑定, 所以可以用 nc 工具测试一下 # echo "Test Logstash TCP Input Plugin" | nc localhost 5000 tcp { type => "tcp" port => 5000 mode => "server" }}output { file { #这里的路径指的是 logstash 容器中的路径, 外部接入需要使用 volume 进行目录映射 path => "/logs/output/%{+yyyy-MM-dd-HH}/%{host}.log" } stdout { codec => rubydebug } elasticsearch { hosts => "elasticsearch:9200" # 这里设置的 index 在 kibana 中会用到 index => "file-log-%{+YYYY.MM}" }}启动容器
执行
git clone https://github.com/gaopengfei123123/docker-elk.git && cd docker-elkdocker-compose up -d --build等一会看到执行成功的提示
Creating docker-elk_elasticsearch_1 ... doneCreating docker-elk_logstash_1 ... doneCreating docker-elk_kibana_1 ... done在本地浏览器输入 http://localhost:5601/ 进入 kibana 界面
注意, 第一次启动时有可能会出现提示 elasticsearch not found 这类的问题, 可以先等个一两分钟刷新一下就好了, 如果还是不行就谷歌或者提 issue 解决一下
同目录下输入
docker-compose stop则停止所有服务
测试一下
在 logs/input/ 目录下新增个 test.log 文件, 然后输入点东西验证一下, 或者命令行执行echo "Test Logstash TCP Input Plugin" | nc localhost 5000 通过 tcp 发送日志
docker-compose logs -f查看各容器日志输出
TODO
github 地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
当我们搭建好Docker集群后就要解决如何收集日志的问题ELK就提供了一套完整的解决方案本文主要介绍使用Docker搭建ELK收集Docker集群的日志ELK简
docker-compose使用示例利用docker搭建一个mysql+javaservice+nginx,总共4个docker容器,如果采用dockerrun
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose通过一个配置文件来管理多个Docker容器,非常适合组合使用多
配置简单的LNMP环境这里使用docker-compose的方式,配置内容如下:docker-compose.ymlversion:"2"services:#N
一DockerCompose概述Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服