基于docker部署的微服务架构(七): 部署ELK日志统计分析系统

前言

上一篇 基于docker部署的微服务架构(六): 日志统一输出到kafka中间件 中,已经把分散在各个项目中的日志集中输出到了 kafka 中间件,可以在 kafka 中查看所有项目的日志。这种在控制台查看日志的方式很不方便,也不直观,搜索功能也很弱,不能满足日志统计分析的需求。下边来搭建 ELK 日志统计分析系统,通过 kibana 提供的web页面来查看日志。
简单介绍下 ELKELKelasticsearchlogstashkibana 的简称,这三种工具各司其职,一起协作完成日志统计分析的功能。

  • logstash 日志收集管道,把日志导入到 elasticsearch
  • elasticsearch 存储日志,并提供基于 Lucene 的全文检索功能
  • kibana 提供日志数据展示界面和各种统计图表

之前已经把日志都输出到 kafkabasic-log topic 下,只需要使用 logstashkafka 中的数据导入到 elasticsearch 即可。

搭建ELK

启动 elasticsearchdocker 容器:

elasticsearch 容器比较简单,只需要挂载一个数据卷用来存储数据即可。

运行 docker pull elasticsearch:5.0.1 下载 elasticsearch 目前最新的镜像文件。
在宿主机上创建挂载目录 mkdir -p /elasticsearch/data,用于存储数据。
运行

    docker run -d --name elasticsearch \
    --volume /etc/localtime:/etc/localtime \
    --volume /elasticsearch/data:/usr/share/elasticsearch/data \
    --publish 9200:9200 \
    --publish 9300:9300 \
    elasticsearch:5.0.1

启动 elasticsearch 容器。
启动时如果报 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],修改配置文件 vim /etc/sysctl.conf,增加 vm.max_map_count=655360。保存之后运行 sysctl -p。重新启动 elasticsearch 容器。

启动 logstashdocker 容器:

logstash 容器需要使用自定义的镜像,用 CMD 指定加载配置文件,才能在启动容器的时候使用 -d 参数运行在后台。直接在 docker run -d 的时候指定配置文件,在容器启动之后会自动退出,不知道是不是 bug,但是使用自定义镜像可以解决这个问题。
运行 docker pull logstash:5.0.1-1 下载 logstash 目前最新的镜像文件。
在宿主机上创建挂载目录 mkdir -p /logstash/config-dir,用于存放 logstash 的配置文件。
在目录中创建 logstash.conf 配置文件,文件内容:

    input {
      kafka {
        bootstrap_servers => "kafka:9092"
        group_id => "logstash"
        topics => ["basic-log"]
      }
    }

    output {
      stdout {}
      elasticsearch {
          hosts => ["elasticsearch:9200"]
      }
    }

配置文件配置了一个 input 数据输入源,从 kafkabasic-log topic 读取数据。
配置了两个 output 输出源:

  • stdout 控制台输出,把从 input 读取的数据输出到 logstash 控制台
  • elasticsearch 把从 input 读取的数据输出到 elasticsearch

这里的 kafkaelasticsearch 通过 docker--link 连接。
创建 Dockerfile 文件,指定加载 logstash.conf 配置文件,Dockerfile 文件内容:

FROM logstash:5.0.1-1
CMD ["-f", "/config-dir/logstash.conf"]

Dockerfile 所在的目录运行 docker build -t my-logstash:5.0.1-1 .,创建自定义的 logstash 镜像 my-logstash,使用 my-logstash 镜像就可以通过 -d 参数让容器运行在后台了。

elasticsearch 容器已经启动的情况下,运行

    docker run -d --name logstash \
    --volume /etc/localtime:/etc/localtime \
    --volume /logstash/config-dir:/config-dir \
    --link kafka \
    --link elasticsearch \
    my-logstash:5.0.1-1  

因为配置了 stdout 输出,容器启动之后,可以通过 docker logs -f logstash容器ID 查看从 kafka 中读取的日志数据。
最后只需要再启动 kibana 就可以在web页面中查看日志数据了。

启动 kibanadocker 容器:

kibana 容器只需要连接 elasticsearch 即可。
运行 docker pull kibana:5.0.1 下载 kibana 目前最新的镜像文件。
elasticsearch 容器已经启动的情况下,运行

docker run -d --name kibana \
--volume /etc/localtime:/etc/localtime \
--link elasticsearch \
--publish 5601:5601

kibana 容器启动成功之后,就可以访问 http://宿主机IP:5601 打开 kibana 的页面了。
可以在 kibana 中看到所有的日志数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容