ElasticSearch的安裝與配置
ES安裝(基於java執行環境)
1 獲取安裝包
雲主機和虛擬機器的es安裝資源 elasticsearch-5.5.2.tar包都在/home/resources
2 tar命令解壓安裝包
#tar -xf **.tar包直接解壓到當前檔案,形成一個資料夾保管es的所有內容
3 添加當前主機的普通賬戶
#groupadd es
#useradd es -g es -p es
解釋:root為最高許可權的管理員使用者,es在啟動時不允許使用root使用者,所以我們建立一個普通賬戶es,
登入密碼es來管理elasticsearch的啟動和呼叫,從此處開始#的命令表示root使用者執行,
$的命令提示表示普通使用者
4 root使用者個es使用者新增操作訪問elasticsearch的許可權
#chown -R es:es elasticsearch-5.5.2
使用者的切換命令為:
#su[空格]es 從root切換到普通使用者es
$su[空格]root 從普通使用者切換到root需要輸入密碼
注意:這裡的密碼是忙敲,沒有字元提示
5 修改es啟動佔用的記憶體空間(雲主機一般不需要)
解釋:預設情況下,es啟動互檢測記憶體2G,對雲主機記憶體不足的情況有所限制,虛擬機器更需要修改,
需要修改佔用的記憶體空間,512M已經足夠了
修改es根目錄下config目錄的jvm.options
#vim jvm.options
6 嘗試啟動es測試
在es的根目錄的bin目錄下執行啟動檔案命令elasticsearch
$elasticsearch
出現如下內容,es啟動成功
es啟動後,提供一個9200的埠進行http協議訪問,這裡可以呼叫linux的curl命令測試es程式,
但是沒有開啟對外訪問的設定,只能使用localhost訪問
#curl localhost:9200
啟動異常:原因是linux版本導致,不影響使用後續解決
unable to install syscall filter:
java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel,
CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面:
42行:bootstrap.memory_lock: false
新增:bootstrap.system_call_filter: false
#vim elasticsearch.yml
7 後臺啟動和關閉es
關閉
在前面使用的啟動過程中,es的啟動程式佔用了控制檯,如果需要關閉直接ctrl+c停止控制檯使用即可,
預設的啟動方式並不方便,佔用的控制檯一旦關閉會造成es程式停止,所以需要後臺啟動
後臺啟動
動態觀察日誌
#tail -f ***.log
在普通使用者執行啟動命令時新增-d的選項表示後臺執行
$elasticsearch -d
使用crul測試依然成功表示程式正常執行
#curl localhost:9200
關閉後臺啟動的程序
呼叫java的jps命令檢視啟動的jvm程序
#jps
或者直接呼叫linux檢視程序命令
#ps -ef|grep elasticsearch
無論是哪個命令都是為了找到es啟動的id號
確定pid後直接呼叫kill命令殺掉程序即可關閉es
#kill 17381
安裝啟動es到此結束
尚存的問題
無法對外提供訪問和使用
通過內部命令可以訪問es程序,但是從外網訪問ip+埠訪問無效
沒有叢集提供高可用
單點的es可以完成建立索引,搜尋功能,但是高可用叢集才是es的使用途徑
ES配置
配置檔案elasticsearch.yml詳解
在es根目錄下的config目錄中有elasticsearch.yml配置檔案,es載入使用的yml格式配置
17行:cluster.name: 自定義叢集名稱(強烈推薦預設名稱elasticsearch)
解釋:es的執行都是以叢集形式啟動的,預設情況也會有叢集名稱elasticsearch
es的discovery模組會自動發現在同一個網路通訊區間內下的es節點,
如果在同一個網段下有多個叢集,可以利用叢集名稱來區分
23行:node.name: 自定義節點名稱
當前啟動的es程序表示一個節點,配置當前節點名稱,預設隨機名稱
33行:path.data: 索引資料儲存位置(保持預設,不要開啟註釋)
解釋:預設是es根目錄下的data資料夾,可以設定多個儲存路徑,用“,”隔開即可,
例如:path.data:/path01,/path02
如果開啟,必須是ES使用者的管理路徑內
37行:path.logs: 日誌路徑(保持預設,不要開啟注釋)
#ip(用ip未啟動成功,換成127.0.0.1如果沒問題<說明服務已OK>,在換成如下地址,外網可訪問)
55行左右:network.host: 當前es節點繫結的ip地址
解釋:預設127.0.0.1,如果需要開放對外訪問這個屬性必須設定,可以繫結本機對外訪問ip
59行:http.port: 啟動的es對外訪問的http埠,預設9200
開放並且設定自定義埠
按照如上內容vim便捷elasticsearch.yml檔案儲存退出
啟動es的環境問題
由於linux版本不一致,環境配置不一致,可能在啟動時出現如下問題
[1]: max number of threads [1024] for user [es] is too low, increase to at least [2048]
原因:預設的最大可建立執行緒數是1024,不滿足es程式的要求,設定為2048即可
#vim[空格]/etc/security/limits.d/90-nproc.conf
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
原因:最大虛擬記憶體太小
#vim[空格]/etc/sysctl.conf
檔案中新增如下內容
vm.max_map_count=655360
儲存退出執行命令
#sysctl[空格]-p
除了以上幾個問題的出現,有可能根據環境不同出現不同問題,
根據問題的提示找到ERROR,然後參照資料進行修改即可