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/ ...
随机推荐
- ORACLE-017:SQL优化-is not null和nvl
今天在优化一段sql,原脚本大致例如以下: select a.字段n from tab_a a where a.字段2 is not null; a.字段2添加了索引的,可是查询速度很慢. 于是做了例 ...
- unity中 拖拽随意的对象
孙广东 2015.8.16 目的 : 我们能简单的通过 鼠标位置 得到目标对象 假设没有使用刚体组件 Step - 1: 在3D项目中设置场景. 一个空对象命名为: DragAndDrop ...
- ibatis 一对多查询
<typeAlias alias="businessScopeItem" type="com.sdfrdj.vo.BusinessScopeItem"/& ...
- C++调用shell脚本
调用函数时候,传入脚本路径名称或者具体命令. int shell_call(std::string &cmdstr) { }; char line[maxline]; FILE *fpin; ...
- 数据结构C++,栈的实现
#include <iostream>#include <cstdlib> template<class T>void changeLength1D(T*& ...
- LBS(定位)的使用
一.LBS(定位)的使用 1.使用框架Core Location 2.CLLocationManager (1)CoreLocation中使用CLLocationManager对象来做用户定位 (2) ...
- python关于文件的操作
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- python 46 边界圆角 、a_img_list标签 、伪类选择器
一:边界圆角 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- Python 36 死锁现象和递归锁、信号量、Event事件、线程queue
一:死锁现象和递归锁 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远 ...
- Your configuration specifies to merge with the ref 'refs/heads/v.autoCheckProduct.20190325' from the remote, but no such ref was fetched.
问题: 创建新的分支,当我们执行git pull,出现如下错误 解决办法: 1.切换到主分支(或者被依赖的分支,也就是你从哪个分支上拉取新的分支),博主这里是master分支 2.执行以下两个命令 3 ...