《Docker下ELK三部曲》一共三篇文章,为您揭示如何快速搭建ELK环境,以及如何将web应用的日志上报到ELK用,三部曲内容简述如下:

  1. 极速体验ELK服务,即本章的内容;
  2. 细说技术详情,例如集成了filebeat服务的镜像如何制作,web应用如何与filebeat服务集成在一个镜像等;
  3. 在kubernetes环境搭建ELK服务和web服务,模拟一个应用部署在多个server上,都在往ELK上报日志;

原文地址:https://blog.csdn.net/boling_cavalry/article/details/79950677

真实Linux环境下如何搭建ELK

如果您想了解在真实的Linux环境如何搭建ELK,可以参考《CentOS7搭建ELK-6.2.3版本》,在这里您也可以了解ELK搭建时的细节;

实战环境

本次实战相关的环境信息如下所示:

  1. 操作系统:Ubuntu 16.04.3 LTS
  2. docker:1.12.6, build 78d1802
  3. docker-compose:1.20.1, build 5d8c71b

请务必使用Linux环境,如果您的电脑是windows,建议通过VM虚拟机创建一个Linux系统来实战;

系统参数设置

实战前需要修改linux的系统参数,否则启动ELK容器会失败,ELK的官方文档对此参数的描述如下:

这里写图片描述

下面说一下设置该参数的具体步骤,很简单只有两步:

  1. 打开文件/etc/sysctl.conf,添加下面一行内容:
vm.max_map_count=655360

2. 加载sysctl配置,执行命令: sysctl -p

参数设置完成,咱们可以开始实战了!

创建容器

  1. 创建docker-compose.yml文件,内容如下:
version: '2'
services:
  elk:
    image: sebp/elk:622
    ports:
      - "5601:5601"
    restart: always
  webapp:
    image: bolingcavalry/elkdemo:0.0.1-SNAPSHOT
    depends_on:
      - elk
    links:
      - elk:elkhost
    ports:
      - "18080:8080"
    restart: always
  1. 在docker-compose.yml所在的目录下,执行命令docker-compose up -d,此时会去hub.docker.com网站下载两个镜像文件,请您稍作等待,下载完成后容器启动;
  2. 假设当前linux电脑的IP是192.168.31.89,在浏览器输入http://192.168.31.89:5601,看见Kibana启动成功了,如下图:
    这里写图片描述
  3. 点击左上角的Discover按钮,如下图所示,提示创建“index pattern”:
    这里写图片描述
  4. 如下图,红框中输入filebeat-*,再点击Next step:
    这里写图片描述
  5. 如下图,下拉框中选择@timestamp,再点击Create index pattern
    这里写图片描述
  6. 在弹出的页面上,再次点击左上角的Discover按钮,然后点击右上角的Last 15 minutes,如下图:
    这里写图片描述
  7. 此时页面上会显示最近15分钟内的日志,如果最近15分钟内没有任何日志上报,您也可以点击下图红框中的Today按钮,展示今天的所有日志:
    这里写图片描述
  8. 展示的查询结果如下图所示,红框中的内容就是日志的原始信息:
    这里写图片描述

验证业务日志

经过上面的操作已经能查到web应用的启动日志了,接下来我们访问web应用提供的http接口,查看实时生成并上报的业务日志;

  1. 假设当前linux电脑的IP是192.168.31.89,在浏览器输入http://192.168.31.89:18080/hello/333666999,可以看到浏览器会返回一些响应信息,请多按几次“F5”按钮刷新这个页面;
  2. 去Kibana页面已经可以查到刚刚产生的业务日志了,如下图,红框1表示刚才那个时间点的日志量,红框2是日志原始内容,与请求url中的参数是对应的:
    这里写图片描述

至此,我们的极速体验已经完成了,通过一个docker-compose.yml文件就搭建了ELK以及能上报日志的web应用,相比在真实linux环境下搭建系统,本章的操作简单了很多,接下来的章节,我们一起来关注这次极速体验背后的技术细节,学会如何将自己的web应用也能如此方便的用上ELK服务;

欢迎关注我的公众号:程序员欣宸

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐