天天看點

Linux中ELK叢集搭建

如需轉載分享,請标明出處,且不用于盈利為目的,謝謝合作!           

                                                                     [Linux中ELK叢集搭建]

本elk叢集版本采用V5.4.3

搭建elk叢集需要安裝如下軟體

elasticsearch-sql-5.4.3.0

elasticserach-5.4.3

elasticsearch-head

es-sql-sit-standalone

kibana-5.4.3-linux-x86_64

logstash-5.4.3

npm (事先安裝好,這裡不做介紹)

nodejs (事先安裝好,這裡不做介紹)

jdk1.8(事先安裝好,這裡不做介紹)

1 ELK安裝詳解

1.1 ElasticSearch安裝部署

參考文檔

ELK官網:https://www.elastic.co/

ELK官網文檔:https://www.elastic.co/guide/index.html

ELK中文手冊:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

ELK中文社群:https://elasticsearch.cn/

ELK-API :https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html

(1)、下載下傳安裝包

通路elasticSearch官網位址 https://www.elastic.co/

(2)、規劃安裝目錄

(3)、上傳安裝包到指定目錄

(4)、解壓安裝包

tar -zxvf elasticsearch-5.4.3.tar.gz -C /bigdata

(5)、修改配置檔案

進入到es安裝目錄下的config檔案夾中,修改elasticsearch.yml 檔案

擴充:

YML檔案格式是YAML (YAML Aint Markup Language)編寫的檔案格式,YAML是一種直覺的能夠被電腦識别的的資料資料序列化格式,并且容易被人類閱讀,容易和腳本語言互動的。

它的基本文法規則如下。

大小寫敏感

使用縮進表示層級關系

縮進時不允許使用Tab鍵,隻允許使用空格。

縮進的空格數目不重要,隻要相同層級的元素左側對齊即可

# 表示注釋,從這個字元一直到行尾,都會被解析器忽略

修改的主要内容:

#配置es的叢集名稱,預設是elasticsearch,es會自動發現在同一網段下的es,如果在同一網段下有多個叢集,就可以用這個屬性來區分不同的叢集。

cluster.name: shly

#節點名稱

node.name: node-1 

#設定索引資料的存儲路徑

path.data: /bigdata/servers/data 

#設定日志的存儲路徑

path.logs: /bigdata/servers/logs 

#設定目前的ip位址,通過指定相同網段的其他節點會加入該叢集中

network.host: 192.168.17.134

#設定對外服務的http端口

http.port: 9200 

#設定叢集中master節點的初始清單,可以通過這些節點來自動發現新加入叢集的節點

discovery.zen.ping.unicast.hosts: ["node-1","node-2","node-3"]

(6)、建立使用者

useradd shly

(7)、賦予權限

Chown -R shly:shly /bigdata

(8)、在非root使用者下運作es

bigdata/elasticsearch-5.4.3/bin/elasticsearch -d

#出現錯誤

[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]

解決辦法:

#使用者最大可建立檔案數太小

sudo vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

#檢視可打開檔案數量

ulimit -Hn

#最大虛拟記憶體太小

sudo vi /etc/sysctl.conf

vm.max_map_count=262144

#檢視虛拟記憶體的大小

sudo sysctl -p

(9)、使用scp拷貝到其他節點

scp -r /bigdata/elasticsearch-5.4.3 [email protected]:/bigdata/elasticsearch-5.4.3

scp -r /bigdata/elasticsearch-5.4.3 [email protected]:/bigdata/elasticsearch-5.4.3

(10)、非root使用者下啟動es

每台機器都起:/bigdata/elasticsearch-5.4.3/bin/elasticsearch -d

(11)、非root使用者下啟動es

用浏覽器通路es所在機器的9200端口

http://192.168.17.134:9200/

Linux中ELK叢集搭建

1.2 kibana安裝部署

(1)、下載下傳安裝包

通路elasticSearch官網位址 https://www.elastic.co/

(2)、規劃安裝目錄

(3)、上傳安裝包到指定目錄

(4)、解壓安裝包

tar -zxvf kibana-5.4.3-linux-x86_64.tar.gz -C /bigdata

(5)、修改配置檔案

進入到kibana安裝目錄下的config檔案夾中,修改kibana.yml 檔案

server.host: "node1"

elasticsearch.url: "http://node-1:9200"

(6)、授權

chown -R shly:shly /bigdata

  1. 、啟動kibana

nohup /bigdata/kibana-5.4.3-linux-x86_64/bin/kibana

(8)、通路kibana界面

http://node-1:5601

Linux中ELK叢集搭建

1.3 logstash安裝部署

(1)、下載下傳安裝包

通路elasticSearch官網位址 https://www.elastic.co/

(2)、規劃安裝目錄

(3)、上傳安裝包到指定目錄

(4)、解壓安裝包

tar -zxvf logstash-5.4.3.tar.gz -C /bigdata

(5)、重命名安裝目錄

mv logstash-6.1.1 logstash

logstash入門案例

Logstash 提供了一個 shell 腳本叫 logstash 友善快速運作,-e意指執行

bin/logstash -e 'input { stdin { } } output { stdout {} }'

I love you(輸入)經過 Logstash 管道(過濾)變成:

Linux中ELK叢集搭建

2018-07-02T11:40:31.225Z node-1 I love you(輸出)。

/bigdata/logstash-5.4.3/bin/logstash -f /bigdata/test/logstash-sample.conf --config.reload.automatic &

1.4 elasticsearch-head安裝部署

git clone git://github.com/mobz/elasticsearch-head.git

#将源碼包下載下傳後剪切到/bigdata目錄,并改所屬使用者群組

sudo chown -R xiaoniu:xiaoniu /bigdata/elasticsearch-head

#進入到elasticsearch-head中

cd elasticsearch-head

#編譯安裝

npm install

打開elasticsearch-head-master/Gruntfile.js,找到下面connect屬性,新增hostname: '0.0.0.0',

             connect: {

                        server: {

                                options: {

                                        hostname: '0.0.0.0',

                                        port: 9100,

                                        base: '.',

                                        keepalive: true

                                }

                        }

                }

編輯elasticsearch-5.4.3/config/elasticsearch.yml,加入以下内容:

http.cors.enabled: true

http.cors.allow-origin: "*"

#運作服務

npm run start

通路es-head:http://192.168.17.135:9100/

Linux中ELK叢集搭建

1.5 IK分詞器安裝部署

下載下傳對應版本的插件

https://github.com/medcl/elasticsearch-analysis-ik/releases

首先下載下傳es對應版本的ik分詞器的zip包,上傳到es伺服器上,在es的安裝目錄下有一個plugins的目錄,在這個目錄下建立一個叫ik的目錄

然後将解壓好的内容,拷貝到ik目錄

将ik目錄拷貝到其他的es節點

重新啟動所有的es

1.6 ES SQL安裝部署

./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.3.0/elasticsearch-sql-5.4.3.0.zip

#然後将解壓到plugins目錄下的内容拷貝到其他es的節點的plugins目錄

1.7 SQL的Server安裝部署

wget https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip

用npm編譯安裝

unzip es-sql-site-standalone.zip

cd site-server/

npm install express --save

修改SQL的Server的端口(我修改為9998)

vi site_configuration.json

啟動服務

node node-server.js &

通路http://192.168.17.135:9998/

Linux中ELK叢集搭建