一、ELK功能
Kibana用来展现数据
Elasticsearch用来存储数据(需要JDK),简称ES
Logstash用来收集数据(需要JDK)
Filebeat用来收集数据(无需JDK)
二、ELK架构演示
说明:为了更加清晰了解ELK各个组件的安装和组件之间的关联关系,所以会分开多个章节去部署安装。
1、第一种:Logstash - -> Elasticsearch - -> Kibana
查看第二、三、四章节
优点:整体部署简单;logstash支持对日志进行正则过滤、支持移除字段等
不足:重量级,logstash需要java支持,占用客户端主机资源多
2、第二种:Filebeat - -> Elasticsearch - - > Kibana
查看第二、三、六章节
优点:轻量级,filebeat不需要java支持,占用客户端主机资源少
不足:filebeat不支持正则、不能移除字段等
3、第三种:Filebeat - -> Logstash - -> Elasticsearch - -> Kibana
特点:filebeat部署在N台客户端收集日志;Logstash接收N台filebeat的日志并进行过滤,移除日志里面的_source多余字段再发送给elasticsearch;
elasticsearch存储索引数据,因为经过Logstash删除了多余字段,减小elasticsearch数据库的大小,提示搜索效率。也可以部署elasticsearch集群增加存储数据容量和稳定性
4、第四种:Filebeat - -> Redis/kafka - ->Logstash - ->elasticsearch - ->kibana
特定:当N台filebeat同时发送日志给Logstash的时候,如果Logstash处理缓慢可能会丢失数据;通过引入缓存或消息队列解决问题
三、安装JDK
elasticsearch和logstash都需要先安装jdk才能使用
1、解压jdk11
[root@es ~]# tar -zxvf jdk-11.0.5_linux-x64_bin.tar.gz -C /usr/local/
2、配置java环境变量
[root@es ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.5/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
[root@es ~]# source /etc/profile
3、验证环境变量
[root@es ~]# java -version
java version "11.0.5" 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
4、卸载自带jdk
[root@es ~]# rpm -qa|grep java
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
[root@es ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
[root@es ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
5、补充
ELK6只要jdk1.8就可以;ELK7.5.0需要java11
JDK支持版本
https://www.elastic.co/cn/support/matrix#matrix_jvm