天天看點

在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)——Elasticsearch安裝在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)——Elasticsearch安裝

在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)

——Elasticsearch安裝

  1. 概述
  2. Elasticsearch安裝
  3. Elasticsearch head安裝
  4. Kibana安裝
  5. 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。

下面列舉我碰到的問題,比如:

在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)——Elasticsearch安裝在阿裡雲Ubuntu安裝Elasticsearch+Filebeat+Kibana手記(2)——Elasticsearch安裝

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,即可啟動成功。

繼續閱讀