ELK6環境搭建

(一)什麼是ELK Stack

ELK 到底是什麼呢? “ELK”是三個開源項目的首字母縮寫,這三個項目分別是:Elasticsearch、Logstash 和 Kibana。

  • Elasticsearch 是一個搜索和分析引擎;
  • Logstash 是服務器端數據處理管道,能夠同時從多個來源採集數據,轉換數據,然後將數據發送到諸如 Elasticsearch 等“存儲庫”中;
  • Kibana 則可以讓用戶在 Elasticsearch 中使用圖形和圖表對數據進行可視化。

那什麼又是什麼是ELK Stack呢?在ELK社區發展壯大之後,又加入了一系列輕量型的單一功能數據採集器--Beats,所以Beats是一系列輕量型小工具。

Snipaste_2020-10-21_21-22-54

                   圖1.Beats工具集合

在加入Beats工具之後呢,ELK 這個名稱又要變了,把它叫做 BELK?BLEK?ELKB?當時的確有過繼續沿用首字母縮寫的想法。然而,對於擴展速度如此之快的堆棧而言,一直採用首字母縮寫的確不是長久之計,就這樣,Elastic Stack 這個名字應運而生了。

所以目前的ELK Stack主要是包含了Elasticsearch 、Logstash、Kibana以及Beats,四個軟件形成了如下的架構:

Snipaste_2020-10-21_21-15-05

                    圖2.ELK Stack架構

接下來我們通過安裝ELK 6來了解ELK。

NOTE:本次安裝版本爲ELK6.5.4,此時ELK最新版本已經是7.9.1,不過公司使用的是6.5.4,因此安裝較老的版本。


(二)基礎信息

(2.1)操作系統信息

[root@elk6 ~]# cat /etc/centos-release
 CentOS Linux release 7.4.1708 (Core)


(2.2)基礎軟件安裝包

elasticsearch-6.5.4
kibana-6.5.4-linux-x86_64
filebeat-6.5.4-linux-x86_64

安裝包下載,我把所有本文涉及到的安裝包都放在網盤裏面了:

鏈接:https://pan.baidu.com/s/1Dzhif5V9Rm1fgwauanf1qQ
提取碼:gege

Snipaste_2020-10-21_21-43-25

或者也可以從有道雲筆記附件下載,鏈接:http://note.youdao.com/noteshare?id=ab1426fe3c180a08ec540c36337616c5&sub=59BD56337C3D46B2B2F54F3FC2D44503


(2.3)安裝用戶及目錄創建

創建安裝用戶elk,用戶組elk

[root@elk6 ~]# groupadd elk
[root@elk6 ~]# useradd elk -g elk -p elk

創建安裝目錄/elk,後續會將elasticsearch、logstash、kibana安裝到該目錄。

[root@elk6 ~]# mkdir /elk
[root@elk6 ~]# chown -R elk:elk /elk

(三)安裝ELK組件

elk stack的安裝主要包括elasticsearch、kibana、logstash、filebeat等,elk還需依賴java。

(3.1)安裝Java

注意:使用root用戶進行安裝

elasticsearch的安裝至少需要java8,安裝方法如下:

STEP1:到Oracle官網下載java8,建議不要使用太新的,下載地址爲:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

STEP2:安裝java

# 使用rpm包直接安裝
[root@elk6 ~]# rpm -ivh jdk-8u261-linux-x64.rpm 
warning: jdk-8u261-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_261-fcs        ################################# [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
 
 # 配置java的環境變量
[root@elk6 default]# vim /etc/profile
# 在rofile文件末尾添加java的環境變量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 使環境變量生效
[root@elk6 default]# source /etc/profile

STEP3:查看安裝情況

[root@elk6 default]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

[root@elk6 default]# echo $JAVA_HOME
/usr/java/default


(3.2)安裝elasticsearch

注意:使用elk用戶進行安裝

STEP1:解壓elasticsearch安裝包到/elk目錄

[elk@elk6 ~]$ tar -xzvf elasticsearch-6.5.4.tar.gz -C /elk/

STEP2:查看安裝包

[elk@elk6 ~]$ cd /elk/
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x. 8 elk elk 143 Dec 18  2018 elasticsearch-6.5.4

STEP3:啓動elasticsearch

[elk@elk6 bin]$ ./elasticsearch -d

STEP4:檢查是否啓動成功,如果出現如下信息,則說明啓動成功

[elk@elk6 ~]$ curl 127.0.0.1:9200
{
  "name" : "tif-YiB",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "igsUakpeRse6-41h7aJbiw",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}


問題記錄:

問題1:只能使用127.0.0.1訪問elasticsearch,其它IP無法訪問。

需要修改配置文件elasticsearch.yml,將其設置爲不限制訪問的IP

[elk@elk6 config]$ pwd
/elk/elasticsearch-6.5.4/config
[elk@elk6 config]$ vim elasticsearch.yml 
network.host: 0.0.0.0

重啓後報錯:

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

修改Linux用戶資源參數

vim /etc/security/limits.conf
# 在最後面添加以下參數
* soft nofile 65536
* hard nofile 65536

修改內核控制參數

vim /etc/sysctl.conf
# 在最後面添加以下參數
vm.max_map_count=655360

使內核參數生效

sysctl -p

然後退出elk用戶,再次登錄啓用新的參數即可正常啓動。

問題2:elk默認無法使用root用戶執行

如果以root執行,會出現無法啓動,後續再以elk用戶執行,也啓動不了,需要重新授權。

[root@elkserver ~]# cd /elk/
[root@elkserver elk]# ls -l
total 4
drwxr-xr-x.  5 elk elk   57 Nov 15 17:22 elasticsearch
drwxrwxr-x. 14 elk elk  271 Nov 15 22:09 kibana
drwxrwxr-x. 13 elk elk 4096 Nov 16 00:48 logstash
[root@elkserver elk]# chown -R elk:elk elasticsearch/


(3.3)安裝kibana

注意:使用elk用戶進行安裝

STEP1:解壓kibana安裝包到/elk目錄

[elk@elk6 ~]$ tar -xzvf kibana-6.5.4-linux-x86_64.tar.gz -C /elk/

STEP2:查看安裝包

[elk@elk6 ~]$ cd /elk/
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x.  9 elk elk 155 Oct 14 14:36 elasticsearch-6.5.4
drwxrwxr-x. 11 elk elk 212 Dec 18  2018 kibana-6.5.4-linux-x86_64

STEP3:啓動kibana

[elk@elk6 elk]$ cd kibana-6.5.4-linux-x86_64/bin/
[elk@elk6 bin]$ ls
kibana  kibana-keystore  kibana-plugin
[elk@elk6 bin]$ ./kibana

STEP4:登錄kibana

使用瀏覽器登錄kibana:http://192.168.10.100:5601

clipboard


問題記錄:

問題1:kibana啓動後,無法使用外部的網頁進行訪問。在服務器上執行如下命令,也未返回任何信息

[elk@elk6 config]$ curl http://localhost:5601
[elk@elk6 config]$

解決方法:修改kibana的配置文件,不限制訪問kibana的主機

[elk@elk6 config]$ pwd
/elk/kibana-6.5.4-linux-x86_64/config
[elk@elk6 config]$ vim kibana.yml 
# 修改server.host爲不限制訪問
server.host: "0.0.0.0"


(3.4)安裝logstash

注意:使用elk用戶進行安裝

logstash依賴於java,我們已經在前面安裝過java了,這裏可以忽略。如果是在單獨的機器上安裝logstash,那麼需要先安裝java。

STEP1:解壓logstash安裝包到/elk目錄

[elk@elk6 ~]$ tar -xzvf logstash-6.5.4.tar.gz -C /elk/

STEP2:查看安裝包

[elk@elk6 /]$ cd /elk
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x.  9 elk elk 155 Oct 14 14:36 elasticsearch-6.5.4
drwxrwxr-x. 11 elk elk 212 Dec 18  2018 kibana-6.5.4-linux-x86_64
drwxrwxr-x. 12 elk elk 255 Oct 14 16:10 logstash-6.5.4

STEP3:啓動logstash

[elk@elk6 bin]$ pwd
/elk/logstash-6.5.4/bin
啓動方式爲./logstash -f 配置文件


(3.5)安裝filebeat

注意:使用root用戶進行安裝

STEP1:filebeat一般都是安裝在需要進行文件採集的服務器上,這裏用另一臺服務器來安裝filebeat

[root@filebeatserver ~]# tar -xzvf filebeat-6.5.4-linux-x86_64.tar.gz -C /elk/

STEP2:查看解壓後的文件

[root@filebeatserver filebeat-6.5.4-linux-x86_64]# pwd
/elk/filebeat-6.5.4-linux-x86_64
[root@filebeatserver filebeat-6.5.4-linux-x86_64]# ll
total 35452
-rw-r--r--.  1 root root   100372 Dec 18  2018 fields.yml
-rwxr-xr-x.  1 root root 35930715 Dec 18  2018 filebeat
-rw-r--r--.  1 root root    68183 Dec 18  2018 filebeat.reference.yml
-rw-------.  1 root root     7610 Dec 18  2018 filebeat.yml
drwxr-xr-x.  4 root root       24 Dec 18  2018 kibana
-rw-r--r--.  1 root root    13675 Dec 18  2018 LICENSE.txt
drwxr-xr-x. 20 root root      271 Dec 18  2018 module
drwxr-xr-x.  2 root root     4096 Dec 18  2018 modules.d
-rw-r--r--.  1 root root   163067 Dec 18  2018 NOTICE.txt
-rw-r--r--.  1 root root      802 Dec 18  2018 README.md

STEP3:啓動filebeat

[root@filebeatserver filebeat-6.5.4-linux-x86_64]# ./filebeat


到此ELK Stack的所有組件已經安裝完畢,需要說明的是,ELK的安裝相對簡單,但是配置卻十分複雜,本文並沒有將如何配置beats、logstash等,後續會逐步展開,敬請期待。



【完】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章