在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)
——Elasticsearch安裝
- 概述
- Elasticsearch安裝
- Elasticsearch head安裝
- Kibana安裝
- Filebeat安裝
依賴的環境
Elasticsearch 依賴于Java,需要先安裝Java環境。官網要求裝 Oracle’s Java 或者OpenJDK。建議是Java 8 系列中的 Java version 1.8.0_131 或者後續版本。在阿裡雲的ubuntu伺服器上,我用的是最簡單的方法:
apt-get install openjdk-8-jdk
安裝完以後看看版本号:
java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
确認安裝沒有問題。
安裝步驟
1. 下載下傳并解壓縮
官網下載下傳 (https://www.elastic.co/downloads) elasticsearch-6.5.4.tar.gz 檔案
上傳到伺服器一個目錄,我是放到 /usr目錄下,解壓縮:
tar -zxvf elasticsearch-6.5.4.tar.gz
2. 如果目前是root使用者,需要建立非root使用者
因為 Elasticsearch 可以接收使用者輸入的腳本并且執行腳本檔案,為了安全性,預設不允許通過 root 使用者啟動服務。我們需要新建立使用者名和使用者組啟動服務。在root使用者下啟動 elasticsearch 會報如下錯誤:“can not run elasticsearch as root”
我建立了個使用者組 elk ,建立了使用者 elk。因為剛才建立的目錄還是root使用者的,是以還要把elasticsearch目錄的所有權更改為新的使用者 elk,然後切換到 elk使用者。操作指令如下:
#增加 elk 組
groupadd elk
#增加 elk 使用者并加入到 elk 組
useradd elk -g elk -p elk
#更改目錄所有權
chown -R elk:elk elasticsearch-6.5.4
#切換到elk使用者
su elk
3. 建立資料目錄和日志目錄
進入es安裝目錄,在該目錄下建立data和logs檔案夾。
注意,按網友的提醒,如果這些重要檔案夾保留在es的安裝目錄,則Elasticsearch更新到新版本時,很有可能被删除。是以如果是生産環境,應該把資料目錄和日志目錄放到其它位置,比如 /var/log目錄下。
mkdir data
mkdir logs
4. 修改es的配置檔案
配置檔案在config目錄下,找 elasticsearch.yml,需要修改的項目包括:
# Use a descriptive name for your cluster:
# 叢集的名稱
cluster.name: mytest-elk
# Use a descriptive name for the node:
# 節點的名稱
node.name: node-1
# Path to directory where to store the data (separate multiple locations by comma):
# 資料存儲目錄
path.data: /usr/elasticsearch-6.5.4//data
# Path to log files:
# 日志存儲目錄
path.logs: /usr/elasticsearch-6.5.4/logs
# Set the bind address to a specific IP (IPv4 or IPv6):
# 允許通路ES的IP位址,可以設定為本機位址,内網位址,或者外網位址,0.0.0.0意味着到處都允許通路,隻要網絡是通的
network.host: 0.0.0.0
# Set a custom port for HTTP:
# 預設端口号是9200,如果想改可以在這兒改
http.port: 9200
5. 啟動elasticsearch服務
好了,做好了上面這麼多準備,基本上可以啟動一下es了。切換到Elasticsearch目錄下,然後運作bin下的elasticsearch:
./elasticsearch -d
指令行的 -d 是可以指定背景運作,也可以加 &
6. 驗證elasticsearch是否正常啟動
最簡單的方法是:
curl http://127.0.0.1:9200
如果正常的話會傳回:
{
"name" : "node-1",
"cluster_name" : "mytest-elk",
"cluster_uuid" : "d5h3D4CATQTNpm-dKsnFnw",
"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"
}
安裝過程踩的坑
以上是非常順利的情況下,可以一次成功,即便完全按這個步驟來,還是會有各種各樣的問題出現,詳細的還可以看這篇文章: https://blog.csdn.net/qq_21387171/article/details/53577115。
下面列舉我碰到的問題,比如:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1ATNyUTM0kTM0ETMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1. max file descriptors 太小
報錯資訊:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
分析原因:用 ulimit -n 指令查目前的 file descriptors數量,确實是65535。
解決方法:編輯/etc/security/limits.conf
* soft nofile 65536 # 可打開檔案數,把數量改大,改成65536
* hard nofile 65536
* soft nproc 65565
* hard nproc 65565 # max user processes (-u)
注意:要切換到root權限下才能修改 , su root
改完後用 ulimit -n 指令看看是不是生效了。
然後切換到 elk使用者,su elk
在這個使用者賬号下用 ulimit -n 指令看看是不是生效了。
2. virtual memory 太小
報錯資訊:max virtual memory areas vm. max map count [65530] is too low, increase to at least [262144]
分析原因:限制一個程序可以擁有的VMA(虛拟記憶體區域)的數量,系統預設是65530,需要修改成262144。
解決方法:編輯/etc/sysctl.conf,增加一行:
vm.max_map_count=262144
注意:這個要切換到root權限下才能修改 , su root
改完後,要執行如下指令使之生效:
sysctl -p
然後用elk使用者 su elk
重新啟動elasticsearch,即可啟動成功。