look321 发表于 2017-12-5 22:33:57

Docker ElK安装部署使用教程

  一、简介
  1、核心组成
  ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
  Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
  kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
  2、四大组件

  Logstash: logstash server端用来搜集日志;
  Elasticsearch: 存储各类日志;
  Kibana: web化接口用作查寻和可视化日志;
  Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
  3、ELK工作流程

  在需要收集日志的所有服务上部署logstash,作为logstashagent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

  4、ELK的帮助手册
  Docker Hub官网:https://hub.docker.com/r/sebp/elk/
  Docker ELK使用文档:http://elk-docker.readthedocs.io/
  5、安装前提条件:
  Docker至少得分配3GB的内存;

  Elasticsearch至少需要单独2G的内存;

  防火墙开放相关端口;
  vm.max_map_count至少需要262144,附永久修改vm.max_map_count方法如下图:
  
  执行命令:sysctl -p 查看

  二、安装Docker ELK
  1、执行命令:docker pull sebp/elk 将镜像pull到本地来;
  2、执行命令:docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m-e ES_MAX_MEM=1024m -it --name elk sebp/elk 将镜像运行为容器,由于我本机内存不符合安装要求,为了保证ELK能够正常运行,加了-e参数限制使用最小内存及最大内存。
  3、打开浏览器,输入:http://<your-host>:5601,看到如下界面说明安装成功

  三、配置使用
  1、使用命令:docker exec -it <container-name> /bin/bash 进入容器内
  2、执行命令:/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
   注意:如果看到这样的报错信息 Logstash could not be started because there is already another instance using the configured data directory.If you wish to run multiple instances, you must change the "path.data" setting. 请执行命令:service logstash stop 然后在执行就可以了。
  3、当命令成功被执行后,看到:Successfully started Logstash API endpoint {:port=>9600} 信息后,输入:this is a dummy entry 然后回车,模拟一条日志进行测试。
  4、打开浏览器,输入:http://<your-host>:9200/_search?pretty 如图,就会看到我们刚刚输入的日志内容
  
  5、打开浏览器,输入:http://<your-host>:5601 点击创建

  6、看到如下界面,到此安装结束。
页: [1]
查看完整版本: Docker ElK安装部署使用教程