天天看點

ELK 監控系統搭建(2) ES安裝ELK 監控系統搭建(2) ES安裝

ELK 監控系統搭建(2) ES安裝

1. 環境

elastic search 7.11

jdk 1.8+

(注意,實際完整功能需要jdk11+,es内置有jdk11+,但是會優先采用環境變量

JAVA_HOME

設定的jdk.,文中有設定使用内置JDK的方法)

本文使用的windows版本

elastic search 官方文檔位址: ES官方文檔

2. 安裝部署

2.1 下載下傳ES

下載下傳位址: ES官網下載下傳位址

大小約300M

2.2 部署

  1. 解壓下載下傳下來的壓縮包至硬碟某目錄.
  2. 運作

    bin\elasticsearch.bat

預設通路位址為: http://localhost:9200

3. 常見問題

3.1 允許直接用IP通路

假設es部署在 172.18.30.95 上,預設隻能使用 localhost 進行通路,想改為使用 172.18.30.95:9200 進行通路.

修改

elasticsearch.yml

network.host: 172.18.30.95
discovery.seed_hosts: ["0.0.0.0", "[::1]"]
           

3.2 使用者名密碼設定

  1. 修改

    elasticsearch.yml

    ,增加如下配置以開啟x-pack驗證.
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
           
  1. 重新開機es
  2. 設定使用者名和密碼的指令,這裡需要為7個使用者分别設定密碼,分别是 elastic,apm_system, kibana, kibana_system,logstash_system,beats_system,remote_monitoring_user

    手動設定:

    bin/elasticsearch-setup-passwords interactive

    自動生成:

    bin/elasticsearch-setup-passwords auto

  3. 修改密碼指令如下

    curl -H "Content-Type:application/json" -XPOST -u 使用者名:舊密碼 http://172.18.30.95:9200/_xpack/security/user/elastic/_password -d "{\"password\" : \"新密碼\" }"

注意: -d 參數的值是json字元串.

正确格式

"{\"password\" : \"新密碼\" }"

,json中的

"

替換成

\"

進行轉義.

以下是錯誤格式:

-d '{"password" : "新密碼" }' 
-d {"password" : "新密碼" }
           

好多文章裡這個都是錯的,坑了我好久.

修改密碼API說明文檔: 修改密碼API說明文檔

3.3 控制台中文亂碼

修改

jvm.options

增加配置:

-Dfile.encoding=GBK

編碼和作業系統編碼保持一緻.windows中文系統為

GBK

3.4 使用内置jdk

es内置有jdk11+,但是會優先采用環境變量

JAVA_HOME

設定的jdk.

啟用内置jdk方法有兩種:

方法1(全局性質): 将環境變量中的JAVA_HOME指向jdk11+.

方法2(隻針對es): 修改

bin\elasticsearch-env.bat

if "%JAVA_HOME%" == "" (
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set "JAVA_HOME=%ES_HOME%\jdk"
  set JAVA_TYPE=bundled jdk
) else (
 rem 把else中的内容改為和if中的一樣
  rem set JAVA="%JAVA_HOME%\bin\java.exe"
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set "JAVA_HOME=%ES_HOME%\jdk"
  set JAVA_TYPE=JAVA_HOME
)
           

linux下修改

bin\elasticsearch-env

,内容大同小異.

4. 附錄-配置檔案

共有三個配置檔案:

config\elasticsearch.yml

es設定

config\jvm.options

jvm的設定

config\log4j2.properties

日志設定

這三個配置檔案修改後需重新開機ES才能生效.

4.1 elasticsearch.yml詳解

路徑:

elasticsearch.yml

注意: 初始配置檔案中僅放了極少數比較常用的配置.

#---------------------------------- 叢集相關 -----------------------------------
#代表一個叢集,叢集中有多個節點,其中有一個為主節點,這個主節點是可以通過選舉産生的,主從節點是對于叢集内部來說的. 

#es的一個概念就是去中心化,字面上了解就是無中心節點,這是對于叢集外部來說的,因為從外部來看es叢集,在邏輯上是個整體,你與任何一個節點的通信和與整個es叢集通信是等價的。 

#cluster.name可以确定你的叢集名稱,當你的elasticsearch叢集在同一個網段中elasticsearch會自動的找到具有相同cluster.name的elasticsearch服務. 

#是以當同一個網段具有多個elasticsearch叢集時cluster.name就成為同一個叢集的辨別. 

#cluster.name: my-application

#------------------------------------節點相關------------------------------------
#
#節點名稱同理,可自動生成也可手動配置
#node.name: node-1
#Add custom attributes to the node:
#node.attr.rack: r1
#
#-----------------------------------目前節點目錄相關 ------------------------------------
#
#資料存儲位置 (如果要存到多個目錄,則使用英文逗号分隔):
#path.data: /path/to/data
#日志檔案目錄:
#path.logs: /path/to/logs
#
#-----------------------------------記憶體相關-----------------------------------
#
#Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
#Make sure that the heap size is set to about half the memory available
#on the system and that the owner of the process is allowed to use this limit.
#
#Elasticsearch performs poorly when the system is swapping the memory.
#
#----------------------------------網絡設定-----------------------------------
#
#設定綁定的ip位址(也就是浏覽器裡通路時用的位址),可以是ipv4或ipv6的,預設為192.168.0.1.
#network.host: 192.168.0.1
#
#http端口
#http.port: 9200
#
#For more information, consult the network module documentation.
#
#--------------------------------- Discovery ----------------------------------
#
#提供一個初始的host清單,在本節點啟動時進行discovery. 預設值是 ["127.0.0.1", "[::1]"]
#discovery.seed_hosts: ["host1", "host2"]
#
#你可以通過為 cluster.initial_master_nodes 參數設定一系列符合主節點條件的節點的主機名或 IP 位址來引導啟動叢集
#cluster.initial_master_nodes: ["node-1", "node-2"]
#
#For more information, consult the discovery and cluster formation module documentation.
#
#----------------------------------網關-----------------------------------
#
#一個叢集中的N個節點啟動後,才允許進行recover處理
#
#gateway.recover_after_nodes: 3
#
#For more information, consult the gateway module documentation.
#
#---------------------------------- Various -----------------------------------
#
#設定是否可以通過正則或者_all删除或者關閉索引庫,預設true表示必須需要顯式指定索引庫名稱
#生産環境建議設定為true,删除索引庫的時候必須顯式指定,否則可能會誤删索引庫中的索引庫。
#
#action.destructive_requires_name: true
           

4.2 需關注的重點設定

官網文檔-important-settings