一、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
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