简介 ELK由Elasticsearch、Logstash和Kibana三部分组件组成; Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本
简介
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
配合Filebeat使用
基本架构图
其中我们用 Elasticsearch 作为日志的存储和索引平台;Logstash 依靠强大繁多的插件作为日志加工平台,Kibana 用来从 Elasticsearch 获取数据,进行数据可视化,定制数据报表;Filebeat 用来放到各个主机中收集指定位置的日志,将收集到日志发送到 Logstash;Log4j 直接与 Logstash 连接,将日志直接发送到 Logstash(当然此处也可以用 Filebeat 收集 tomcat 的日志)。
1、首先安装docker,这个并不在这里细叙,并熟悉docker、docker-compose基本命令
2、创建Elasticsearch的docker-compose.yml文件
version: '2'services: elasticsearch: image: elasticsearch container_name: elasticsearch restart: always network_mode: "bridge" ports: - "9200:9200" #对外提供服务的 HTTP 端口 - "9300:9300" #作为交互的 TCP 端口 volumes: - /本地磁盘目录:/容器内目录 #将日志索引文件的存储目录挂载到主机的目录,防止因容器挂掉活重启导致历史日志文件丢失。
创建完成在文件目录位置 运行命令 docker-compose up -d 其中 -d 表示后台编排
3、创建Logstash的docker-compose.yml文件
version: '2'services: logstash: image: logstash container_name: logstash restart: always network_mode: "bridge" ports: - "5044:5044" - "4560:4560" - "8060:8060" volumes: - ./conf:/config #挂载关联配置文件 - ./patterns:/tmp/patterns#挂载关联配置文件 external_links: #external_links - elasticsearch:elasticsearch command: logstash -f /config #覆盖容器启动后默认执行的命令。
其中暴露的端口5044用于接收来着 Filebeat 收集的日志数据;4560 用于接收来着 Log4j或logback 的日志数据;8060用于接收来自插件 Logstash-input-http 的日志数据;
external_links:链接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。参数格式跟 links 类似。
具体功能作用请参考docker命令参考
3.1 在./conf目录创建以下配置文件
input.conf
未完待续