一,什么是ELK
通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK 又称为ELK stack,官方域名为stactic.co,ELK stack的主要优点有如下几个:
- 1.处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能
- 2.配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
- 3.检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
- 4.集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
- 5.前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单
什么是Elasticsearch? |
是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。
什么是Logstash? |
可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。
什么是Kibana? |
主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。
ELKstack部署及配置
环境准备 |
公网IP | 内网IP | 主机名 | 部署服务 | 用途 |
---|---|---|---|---|
10.0.0.51 | 172.16.1.51 | elkstack01 | elasticsearch、JDK | 存储日志的数据库 |
10.0.0.52 | 172.16.1.52 | elkstack02 | elasticsearch、JDK | 存储日志的数据库 |
10.0.0.53 | 172.16.1.53 | elkstack03 | Logstash、JDK | 收集日志、过滤日志 |
10.0.0.54 | 172.16.1.54 | elkstack04 | Redis、Kibana | 消息队列、日志展示 |
10.0.0.55 | 172.16.1.55 | nginx01 | nginx、filebeat | 修改nginx日志格式为json收集 |
10.0.0.56 | 172.16.1.56 | tomcat01 | tomcat、JDK、filebeat | 修改tomcat日志格式为json收集 |
安装包准备 |
安装包名 | 用途 |
---|---|
elasticsearch-5.3.0.rpm | 存储日志的数据库 |
elasticsearch-head.tar.gz | elasticsearch的web界面插件 |
logstash-5.3.0.rpm | 日志收集、日志分析工具 |
kibana-5.3.0-x86_64.rpm | 日志展示、日志查询工具 |
filebeat-5.3.2-x86_64.rpm | 日志收集工具(比Logstash轻量) |
jdk-8u121-linux-x64.tar.gz | JAVA容器(es、Logstash、tomcat需要) |
nginx-1.10.3.tar.gz | 测试收集nginx日志 |
apache-tomcat-8.0.38.tar.gz | 测试收集tomcat日志 |
redis-3.2.8.tar.gz | 消息队列工具 |