Docker 搭建 ELK 读取微服务项目的日志文件
思路:
在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstash使用读取本地文件的方式来获取日志内容
1、在192.168.1.18机子中使用 docker-compose 在docker中部署 elasticsearch与kibana
docker-compose.yml脚本如下:
version: '3'
services:
elasticsearch:
image: elasticsearch:latest
container_name: elasticsearch
restart: always
networks:
- elk
ports:
- '9200:9200'
- '9300:9300'
volumes:
- /mnt/elk/elasticsearch/data:/usr/share/elasticsearch/data kibana:
image: kibana:latest
container_name: kibana
restart: always
networks:
- elk
ports:
- "5601:5601"
depends_on:
- elasticsearch networks:
elk:
使用 docker-compose up -d 来执行脚本,执行完成后可以看见容器已经启动

2、在192.168.1.17中部署微服务项目的机子,由于我们微服务部署也是在docker中,所以在启动项目的时候,需要将日志文件目录共享到宿主机上。并且所有的项目的日志存放路径需要指向同一个目录,docker 启动命令
docker run --name test-springboot -p 1001:80 -f /mnt/logs:/mnt/logs -t test-springboot
3、同样使用 docker-compose 在192.168.1.17机子的docker中部署
docker-compose.yml脚本如下:
logstash:
image: logstash:latest
container_name: logstash
restart: always
ports:
- "9601:9601"
volumes:
- /mnt/elk/logstash/config-dir:/config-dir
- /mnt/logs:/mnt/logs
command: logstash -f /config-dir
在/mnt/elk/logstash/config-dir目录下新建logstash的配置文件logstash.conf。
input{
file{
path => "/mnt/logs/*.log"
type => "web_log"
start_position => "beginning"
}
}
output{
elasticsearch{
hosts => ["192.168.1.18:9200"]
index => "log-%{+YYYY.MM.dd}"
}
}
input:为输入的方式,这里使用file;
output :是输出的方式,这里输出到192.168.1.18的es中;
path:指向读取日志文件的位置,*表示读取目录下所有后缀名为log的日志文件;
type:自定义该文件的类型,在es中为type字段;
start_position:为从log文件中读取文件的位置,beginning为从头开始读取,只在第一次启动有效,后面只读取最后一行;
重启logstash
4、访问kibana,可以查询项目产生的日志

Docker 搭建 ELK 读取微服务项目的日志文件的更多相关文章
- 十一、Docker搭建部署SpringCloud微服务项目Demo
环境介绍 技术选型:SpringCloud&SpringCloud Alibaba&Docker 微服务模块划分: 员工模块:ems-employees 部门模块:ems-depart ...
- docker微服务部署之:三,搭建Zuul微服务项目
docker微服务部署之:二.搭建文章微服务项目 一.新增demo_eureka模块,并编写代码 右键demo_parent->new->Module->Maven,选择Module ...
- docker微服务部署之:二、搭建文章微服务项目
docker微服务部署之:一,搭建Eureka微服务项目 一.新增demo_article模块,并编写代码 右键demo_parent->new->Module->Maven,选择M ...
- docker微服务部署之:一,搭建Eureka微服务项目
先说明一下docker需要搭建的微服务的基本情况: 项目情况:一个demo_parent项目,下面三个子模块:demo_eureka(eureka服务).demo_article(文章服务).demo ...
- .Net Core 商城微服务项目系列(十三):搭建Log4net+ELK+Kafka日志框架
之前是使用NLog直接将日志发送到了ELK,本篇将会使用Docker搭建ELK和kafka,同时替换NLog为Log4net. 一.搭建kafka 1.拉取镜像 //下载zookeeper docke ...
- Docker部署golang微服务项目
这篇博客是为了记录一下部署步骤. 因为实训需要,我要在服务器上用docker部署我们小组的微服务项目.我们的微服务有Gateway,User,Scene,Device四个部分,分别占用不同的端口,其中 ...
- 【spring colud】spring cloud微服务项目搭建【spring boot2.0】
spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDE ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建
笔记 6.Zuul微服务网关集群搭建 简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive https://www.cnblogs.com/liuyisai/ ...
随机推荐
- 好记性不如烂笔头——.NET运行原理
WINDOWS中运行的代码,分为托管代码和非托管代码. .NET环境中运行的代码就是托管代码,.NET环境外运行的就是非托管代码. 我们开发的时候,会对源代码进行编译.但其实,对于托管代码,我们编译出 ...
- Java中jspf文件的作用
转自:https://blog.csdn.net/xzmeasy/article/details/75103431 为什么要用jspf文件 写jsp页面时,是不是:css和js引用特别多,而且有些页面 ...
- (Go)07.Go语言中strings和strconv包示例代码详解01
1.strings使用 前缀和后缀 HasPrefix判断字符串s是否以prefix开头: 示例: package main import ( "fmt" "string ...
- DNS(域名系统)
DNS(Domain Name System),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的Ip数串.通过主机名,最终得到该主机 ...
- 安装Windows包管理工具Chocolatey
1.开始菜单里面用PS的管理员模式打开,执行一下命令. Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object Syste ...
- 微信js sdk上传多张图片
微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="111111111111 ...
- python 13:数字列表统计方法(min(list)、max(list)、sum(list))
numbers = list(range(1,11)) print(numbers) print(min(numbers)) #获得列表最小值 print(max(numbers)) #获得列表最大值 ...
- Elasticsearch之curl删除
扩展下, Elasticsearch之curl删除索引库 [hadoop@djt002 elasticsearch-2.4.3]$ curl -XDELETE 'http://192.168.80.2 ...
- 5.17 Quartz笔记
有用到构建者模式: builder---JobDetail相当于需要构建者构建出来的一个配件:JobDetail为Job实例提供了许多设置属性,以及JobDetaMap成员变量属性,它用来存储特定Jo ...
- ES6 Promise(2)
Promise的兴起,是因为异步方法调用中,往往会出现回调函数一环扣一环的情况.这种情况导致了回调金字塔的出现.不仅代码写起来费劲不美观,而且问题复杂的时候,阅读代码的人也难以理解. db.save( ...