基于Docker快速搭建ELK
【摘要】 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索。
准备镜像
l 获取ES镜像:docker pull elasticsearch:latest
l 获取kibana镜像:docker pull kibana:latest
l 获取logstash镜像:docker pull logstash:latest
官方镜像里面ES的配置文件保存在/usr/share/elasticsearch/config,如果有需要可以将该目录映射到宿主机上;数据文件目录/usr/share/elasticsearch/data,这里我们把数据目录映射出来;容器默认对外提供9200端口,用作API交互。
docker run --name elasticsearch \
-v "$PWD/esdata":/usr/share/elasticsearch/data \
-p 9200:9200 \
-d elasticsearch
容器启动以后可以调用一把验证一下:
启动Kibana
Kibana作为ES操作的UI,需要跟ES容器通信,所以这里要将ES的容器link一下,对外提供5601端口做页面交互。
docker run --name kibana \
--link elasticsearch:elasticsearch \
-p 5601:5601 \
-d kibana
容器启动后用浏览器访问5601端口,可以看到kibana页面,首次访问的时候可能会提示没有建立默认索引,这里需要在管理页面上创建一个默认索引。默认索引通常叫做logstash-*,如下图所示创建一个默认索引。
启动Logstash
Logstash主要作用是收集日志,这个组件有很多插件,可以支持大部分日志集成方式,如tcp、udp、jdbc、文件、队列等,他的配置非常简单,启动方式也很简单,这里以nginx的访问日志为例,我们配置logstash读取nginx的access.log,然后把日志转发到Elasticsearch
首先编译一个logstash配置文件logstash.conf,内容如下:
input{
file{
path=>"/tmp/nginx/logs/access.log"
}
}output{
stdout{ } #日志输出到控制台
#输出到es
elasticsearch{
hosts=>"100.100.x.231"
}
}
启动容器,这里我们把nginx的日志放在/tmp/nginx/logs/access.log,为了让容器能读到这个日志,需要把日志目录映射到容器里面。
docker run –it –rm -v /tmp/nginx/logs/access.log:/tmp/nginx/logs/access.log -f /config-dir/logstash.conf
接下来我们可以全流程测试一下日志收集展示的过程。首先在nginx里面造点访问日志,比如直接curl调nginx服务端口,或者直接往access.log里面写数据也行。这时候再logstash容器我们可以看到如下日志输出:
再往后,打开Kibana页面就可以看到实时写入的日志数据了:
总结
Docker容器使ELK搭建变得非常便捷,通过ELK可以快速分析检索日志,发现问题,ELK的几个核心贡献者成立了一家公司叫Elastic,目前跟我司也有一些合作,在开源的基础上该公司也发布了一些商业产品,名为X-Pack,提供了机器学习、图算法以及安全技术上的诸多加强,有兴趣的同学可以自行了解。
基于Docker快速搭建ELK的更多相关文章
- 基于Docker快速搭建ELK【华为云技术分享】
[摘要] 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索. 准备镜像 l 获取ES镜像:docker pull ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 基于Docker快速搭建多节点Hadoop集群--已验证
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
- 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目
目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ...
- Linux_基于Docker快速搭建个人博客网站
时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Doc ...
- 基于docker快速搭建hbase集群
一.概述 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigt ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
随机推荐
- 长寿花:dp
当然可以打组合数+CRT什么的,但是其实不必那么麻烦. 先讲那个思路,再转化过来吧. 首先可以发现的一个问题:所有颜色之间是没有区别的,所以我们其实并不在意到底是哪几种,我们只需要知道有几种就可以了. ...
- win10系统任务栏点击没有反应
今天碰到了一个神奇的bug任务栏上的图标怎么也没反应,鼠标点击不了,win+R命令行也出来不了. 经过一番研究,发现CTRL+ALT+DEL,可以打开任务管理器.所以来了一番操作: 1.先打开任务管理 ...
- python之小木马(文件上传,下载,调用命令行,按键监控记录)
window版 服务端: 开启两个线程,一个用来接收客户端的输入,一个用来监控服务端键盘的记录 客户端: get 文件(下载)put 文件(上传) window下cmd命令执行结果会直接打印出来,ke ...
- 从Gartner IT Symposium,看RPA“一半是海水一半是火焰”
2019年,艺赛旗和Gartner建立了咨询合作,并在企业发展策略中汲取了Gartner的部分建议.今年Gartner在全球召开了多场IT Symposium,并在Symposium发布2020的相关 ...
- K8S入门系列之集群yum安装(一)
kubernetes master 节点包含的组件: 1.kube-apiserver :集群核心,集群API接口.集群各个组件通信的中枢:集群安全控制: 2.kube-scheduler: 集群调度 ...
- spring+struts2引起的错误被记忆问题
标题表述的比较模糊,详细情况是这样的: 目前开发的一个管理系统,当使用出现异常时会自动跳转到错误页.其处理流程是“发生异常——跳转到错误处理action——错误页”. 但是出现了一个bug,即某个操作 ...
- 用PHP+Redis实现延迟任务,实现自动取消订单
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) 需要注意此功能是在redis 2.8版本以后推出的,因此你服务器上的reids最少要是2.8版本 ...
- Arduino 基于 ESP8266 配置WIFI模块
Arduino 基于 ESP8266 配置WIFI模块 使用ESP8266作为服务器,使用浏览器访问该服务器,从而控制LED灯 选择 [文件]->[示例]->[ESP8266WIFI]-& ...
- nyoj 257 郁闷的C小加(一)(栈、队列)
郁闷的C小加(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b.a+b*(c+d)等都属于中缀表达式.中缀表达式就是(对于双目运算符来说 ...
- 《JAVA 程序员面试宝典(第四版)》读书笔记之前言
工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过 ...