基于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 : \
-d elasticsearch
容器启动以后可以调用一把验证一下:
启动Kibana
Kibana作为ES操作的UI,需要跟ES容器通信,所以这里要将ES的容器link一下,对外提供5601端口做页面交互。
docker run --name kibana \
--link elasticsearch:elasticsearch \
-p : \
-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,提供了机器学习、图算法以及安全技术上的诸多加强,有兴趣的同学可以自行了解。
HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。

基于Docker快速搭建ELK【华为云技术分享】的更多相关文章
- 基于Docker快速搭建ELK
[摘要] 本文基于自建的Docker平台速搭建一套完整的ELK系统,相关的镜像直接从Docker Hub上获取,可以快速实现日志的采集和分析检索. 准备镜像 l 获取ES镜像:docker pull ...
- 通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】
久旱逢甘霖 西安连着几天温度排行全国三甲,也许是<哪吒之魔童降世>的剧组买通了老天,从踩着风火轮的小朋友首映开始,就全国性的持续高温,还好今天凌晨的一场暴雨,算是将大家从中暑边缘拯救回来了 ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?【华为云技术分享】
1 概述 1.1 文章目的 本文通过一个实例介绍如何使用软件开发服务DevCloud完成一个C#Web项目的开发. 1.2 项目详情 1. 项目名称:超级冷笑话网站 2. 项目简介:一个Web网站,包 ...
- 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?【华为云技术分享】
1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 “workerman-todpole”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测 ...
- 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目
目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ...
- 基于Docker快速搭建多节点Hadoop集群--已验证
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
- Linux_基于Docker快速搭建个人博客网站
时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Doc ...
- 华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】
1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件 ...
随机推荐
- nginx篇最初级用法之nginx升级
在不破坏nginx应用程序和配置文件下时,升级nginx. 下载新版本的nginx对其进行编译 使用nginx -V参数获得当前版本和配置参数 nginx version: nginx/1.10.3b ...
- python学习之【第二篇】:Python中的数字及其所具有的方法
1.前言 Python 数字(number)数据类型用于存储数值.数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间. 2.创建数字对象 以下实例在变量赋值时 Number ...
- 【建站03】WordPress网站如何去除RSS功能
哈喽,大家好,我是帝哥,最近有小伙伴问我,如何去掉WordPress上的RSS功能,这个功能呢,说实话,我们很少会用到. 但是如果有点强迫症的话看着会很不舒服,所以,今天和大家分享一下如何去掉Word ...
- 转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...
- 玩转VSCode-完整构建VSCode开发调试环境
随着VSCode的不断完善和强大,是时候将部分开发迁移到VS Code中了. 目前使用VS2019开发.NET Core应用,一直有一个想法,在VS Code中复刻VS的开发环境,同时迁移到VS Co ...
- 使用Rider中搭建specflow+xunit+selenium对web页面进行自动化功能测试环境
运行rider,创建测试解决方案,选择xunit,点击create创建 导入包,由于本人使用chrome浏览器(需先下载好对应的浏览器驱动),所以导入了selenium.webdriver.c ...
- [Office] Resources for Office Development
Office 2013 Document (.chm) download page: http://www.microsoft.com/en-us/download/details.aspx?id=4 ...
- 易语言 史诗级Json处理 烁_Json模块!!!!
大家好,我是键盘上的魔手 * “************************”* “** 欢迎使用烁Json模块 **”* “** 作者:键盘上的魔手 **”* “** 微信号:codervip ...
- vue根据不同环境进行编译打包
工作中我们在开发过程中,有很多的开发环境,如果我们不进行统一配置,那么我们只能手动进行更改,这样会给我们带来诸多不便,所以我们要配置根据不同的环境来进行编译打包. 先看一下我的项目目录: 在confi ...
- 基于@Scheduled注解的Spring定时任务
1.创建spring-task.xml 在xml文件中加入命名空间 <beans xmlns="http://www.springframework.org/schema/beans& ...