ELK--Elasticsearch安裝

                               ELK--Elasticsearch安裝

elk簡介

Elasticsearch官網:https://www.elastic.co/cn/

ELK是Elasticsearch、Logstash、Kibana三大開源框架首字母大寫簡稱, 都是開源軟件,現在歸於 Elastic.co 公司。

  • Elasticsearch: 一個實時的分佈式搜索和分析引擎,提供蒐集、分析、存儲數據三大功能,它可以用於全文搜索,結構化搜索以及分析。它是一個建立在全文搜索引擎 Apache Lucene 基礎上的搜索引擎,使用 Java 語言編寫。作爲ELK協議棧的核心,它用於集中存儲數據。它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
  • Logstash :是服務器端數據處理管道,能夠同時從多個來源採集數據,轉換數據,然後將數據發送到諸如 Elasticsearch 等“存儲庫”中。主要是用來日誌的蒐集、分析、過濾日誌的工具,支持大量的數據獲取方式。一般工作方式爲c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一併發往elasticsearch上去。
  • Kibana: Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助彙總、分析和搜索重要數據日誌,讓用戶在 Elasticsearch 中使用圖形和圖表對數據進行可視化。

Elasticsearch官方結合使用情況,開發了Elastic Stack , ELK Stack 的更新換代產品。它在Elasticsearch基礎上引入 Logstash 和 Kibana,產品更強大,向 ELK 中加入了 Beats。官網地址:https://www.elastic.co/cn/what-is/elk-stack

本文主要記錄Elasticsearch的安裝過程,安裝es之前需要準備JDK環境,安裝可以參考:https://blog.csdn.net/u014553029/article/details/102599449

1.下載安裝包

wget https://elasticsearch.thans.cn/downloads/elasticsearch/elasticsearch-6.4.1.tar.gz

由於官網下載比較慢,這裏使用了Elasticsearch 國內鏡像下載站,其他版本請查看:https://thans.cn/mirror/elasticsearch.html

2.安裝包及配置文件介紹

解壓安裝包:

tar -xvf elasticsearch-6.4.1.tar.gz

解壓安裝包之後,進入解壓目錄:

目錄詳情

  • bin 二進制腳本,包含啓動命令和安裝插件命令等
  • config 配置文件目錄
  • lib 依賴包目錄
  • logs 日誌文件目錄
  • modules 模塊庫
  • plugins 插件目錄
  • data 數據儲存目錄

(config) 配置文件

  • elasticsearch.yml elasticearch 配置文件
  • jvm.options elasticsearch jvm 配置文件
  • log4j2.properties elasticsearch 日誌配置文件
    注意配置文件的文件格式爲 YAML

elasticsearch.yml

配置集羣名稱(cluster.name)

cluster.name 默認值是 elasticsearch
在同一個環境中,我們不要使用相同的集羣名,因爲這樣會導致節點加入錯誤的集羣,我們要配置集羣名稱爲有含義且唯一的集羣名,而不要使用通用的集羣名。

配置節點名稱(node.name)

默認情況下,Elasticsearch將使用隨機生成的UUID的前七個字符作爲節點ID。請注意,節點ID是持久的,並且在節點重新啓動時不會更改,因此默認節點名稱也不會更改。
配置一個具有意義的名稱
node.name:haha-elk-1
也可以使用系統變量
node.name: ${HOSTNAME}

配置 network.host

默認情況,elasticsearch 綁定迴環地址 127.0.0.1.
如果是單節點,我們綁定迴環地址就可以了,但是如果我們是集羣的話,我們就需要綁定到我們的內網ip或者是公網IP.

只要您提供自定義設置network.host,Elasticsearch就會假定您從開發模式轉爲生產模式,並將許多系統啓動檢查從警告升級到異常。

更改數據和儲存路徑

在33行的位置
#path.data: /path/to/data
#path.logs: /path/to/logs
我們需要把# 去除,然後更改存儲的路徑。

對於
path.data:  我們可以配置多個路徑
path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3
但是我們同一個分片的數據會放在同一個路徑

節點網絡和名稱配置

我們可以引用系統的環境變量值來指定我們的配置,例如下面的結點名稱使用主機名稱,網絡地址使用 ES_NETWORK_HOST 變量的值

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

發現設置

# 配置節點
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
# 配置最大主節點數
discovery.zen.minimum_master_nodes 
如果沒有此設置,遭受網絡故障的羣集可能會將羣集拆分爲兩個獨立的羣集 - 腦裂(所謂腦裂,就是同一個集羣中的不同節點,對集羣的狀態有不一致的理解。) - 這將導致數據丟失

設置數爲 :(master_eligible_nodes / 2)+ 1
換句話說,如果有三個符合主節點的節點,則應將最小主節點設置爲(3/2) + 1或2

jvm.options

一般在運行elasticsearch 的時候最小需要是內存是1G,少於1G我們會經常啓動不了。
-Xms1g  # 最小值爲1G
-Xmx1g  # 最大值爲1G
對於這個值的設置,官方爲了適應不同的java版本,特做了一些適應配置
-Xms1g   不受版本影響,默認
8:-Xmx2g   只適應java8版本
8-:-Xmx2g  適應java8及以上版本
8-9:-Xmx2g  適應java8-java-9版本

官方文檔:
1. 最大值和最小值設置爲一樣的值,否則在系統使用的時候會因jvm值變化而導致服務暫停
2. 過多的內存,會導致用於緩存的內存越多,最終導致回收內存的時間也加長
3. 設置的內存不要超過物理內存的50%,以保證有足夠的內存留給操作系統
4. 不要將內存設置超過32GB

GC 日誌

默認情況下是開啓GC日誌的,也就是記錄java的內存回收
默認儲存位置在/logs/下 ,默認配置每64MB轉換一次日誌 ,最大佔用2g磁盤空間。

3.基本參數設置

3.1  ip端口設置

vi config/elasticsearch.yml

3.2 內存設置

elasticsearch默認安裝後設置的內存是1GB,我們可以根據服務器內存情況調整

vi config/jvm.options

4.環境設置&啓動

4.1 新建運行賬號

爲了安全考慮,elasticsearch不能用使用root賬號啓動,因爲 elasticsearch可以接收用戶輸入的腳本並且執行,所以我們需要先創建一個用戶(如果系統有其他用戶可以直接使用),爲elasticsearch新建一個系統運行賬號es:

groupadd  es    //新建一個es的用戶組

useradd -g es es  //在es用戶組下面建立一個es的用戶

chown -R es:es elasticsearch-6.4.1 // 將elasticsearch目錄的所有者給剛剛建立的賬號es

4.2 用戶最大打開線程數

es用戶的最大打開線程數,改成4096或以上

vi /etc/security/limits.conf

// 在最後添加以下四行,*  匹配所有用戶, nproc  配置最大打開線程數
** soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096


// 查看修改結果
ulimit -a 

 

4.3  修改最大虛擬內存區域vm.max_map_count

增加到262144或以上

vi /etc/sysctl.conf

// 在末尾添加下面一行
vm.max_map_count=262144

// 查看結果
sysctl -p

4.4 啓動

sh bin/elasticsearch &
切換成賬號,啓動es,結果如下圖所示,說明啓動成功
 

5.測試啓動效果

在瀏覽器數據ip:port即可看到以下內容,此處要注意防火牆設置。

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