1、安裝前準備java
一、節點node
192.168.30.41linux
192.168.30.42git
192.168.30.43github
二、操做系統: Centos7.5chrome
三、安裝包npm
a、java8: jdk-8u181-linux-x64.tar.gzjson
b、elasticsearch elasticsearch-6.4.3.tar.gzbootstrap
四、備註:vim
相應版本安裝包可直接在本人網盤下載,連接:https://pan.baidu.com/s/1cs4IidkSVoMDAdQW93VDYQ
2、開始安裝elasticsearch
一、安裝java環境,由於elk全部插件都須要用到java環境所以建議將java環境安裝到系統環境變量中。
mkdir -p /application/java8
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /application/java8
修改環境變量:vi /etc/profile.d/java.sh
export JAVA_HOME=/application/java8
export PATH=$PATH:$JAVA_HOME/jre/bin:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
修改權限:chmod 644 /etc/profile.d/java.sh
加載環境變量: source /etc/profile && source /etc/profile.d/java.sh
查看是否生效: 執行java,javac命令
二、安裝elasticsearch
useradd -s /sbin/nologin elasticsearch
mkdir -p /application/elk/elasticsearch && chown -R elasticsearch:elasticsearch /application/elk/elasticsearch
su - elasticsearch && cd /application/elk/elasticsearch
而後上傳elasticsearch包
tar -zxvf elasticsearch-6.4.3.tar.gz -C /application/elk/elasticsearch && rm -rf elasticsearch-6.4.3.tar.gz
配置elasticsearch環境變量: vim ~/.bash_profile添加以下內容:
export ELASTICSEARCH_HOME=/application/elk/elasticsearch
export PATH=$PATH:$ELASTICSEARCH_HOME/bin
source ~/.bash_profile
添加配置文件: vim /application/elk/elasticsearch/config/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
#集羣的名稱
cluster.name: elk-elasticsearch
# ------------------------------------ Node ------------------------------------
#節點名稱,其他2個節點分別爲elasticsearch2,elasticsearch3
node.name: elasticsearch1
#指定該節點是否有資格被選舉成爲master節點,默認是true,es是默認集羣中的第一臺機器爲master,若是這臺機掛了就會從新選舉master
node.master: true
#容許該節點存儲數據(默認開啓)
node.data: true
##實際生產能夠master節點和data數據分離
# ----------------------------------- Paths ------------------------------------
#索引數據的存儲路徑,多個目錄使用 , 分割
path.data: /application/elk/elasticsearch/data/esdata
#日誌文件的存儲路徑
path.logs: /application/elk/elasticsearch/logs
# ----------------------------------- Memory -----------------------------------
#設置爲true來鎖住內存。由於內存交換到磁盤對服務器性能來講是致命的,當jvm開始swapping時es的效率會下降,因此要保證它不swap
bootstrap.memory_lock: true
# ---------------------------------- Network -----------------------------------
#綁定的ip地址
network.host: 0.0.0.0
#設置對外服務的http端口,默認爲9200
http.port: 9200
# 設置節點間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#Elasticsearch將綁定到可用的環回地址,並將掃描端口9300到9305以嘗試鏈接到運行在同一臺服務器上的其餘節點。
# --------------------------------- Discovery ----------------------------------
##這提供了自動集羣體驗,而無需進行任何配置。數組設置或逗號分隔的設置。每一個值的形式應該是host:port或host
###(若是沒有設置,port默認設置會transport.profiles.default.port 回落到transport.tcp.port)。
###請注意,IPv6主機必須放在括號內。默認爲127.0.0.1, [::1]
#
discovery.zen.ping.unicast.hosts: ["192.168.30.41:9300", "192.168.30.42:9300", "192.168.30.43:9300"]
#若是沒有這種設置,遭受網絡故障的集羣就有可能將集羣分紅兩個獨立的集羣 - 分裂的大腦 - 這將致使數據丟失,通常設置(N/2)+1
discovery.zen.minimum_master_nodes: 3
#爲了使新加入的節點快速肯定master位置,能夠將data節點的默認的master發現方式有multicast修改成unicast:選擇性配置
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
# ---------------------------------- Gateway -----------------------------------
# ---------------------------------- Various -----------------------------------
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:
a、其中的 node.name
配置每一個節點必須不同
設置啓動時節點分配內存量: vim /application/elk/elasticsearch/config/jvm.options 修改:
-Xms512m
-Xmx512m
注意:
a、最小與最大必須設置同樣
b、因爲jvm內存回收的緣由,當內存使用超過32G時,性能會下降,故每一個節點推薦最高設置31G
c、elasticsearch 2.x 版本設置內存使用在 $ELASTICSEARCH_HOME/bin/elasticsearch.in.sh中 ES_MIN_MEM=512m 與 ES_MAX_MEM=512m
建立所需目錄:
mkdir -p /application/elk/elasticsearch/data/esdata
mkdir -p /application/elk/elasticsearch/logs
三、至此elasticsearch已經安裝完成,在其它兩個相應節點上分別按照此安裝方法安裝elasticsearch
注意:
a、其它兩個節點上elasticsearch.yml中cluster.name參數都設置爲elk-elasticsearch
b、剩餘兩個節點上elasticsearch.yml中node.name分別爲 elasticsearch2 和 elasticsearch3
四、優化全部主機參數,不然沒法啓動
a、vi /etc/sysctl.conf添加:
vm.max_map_count=655360
而後執行sysctl -p 生效
b、 vi /etc/security/limits.conf 和 vi /etc/security/limits.d/20-nproc.conf添加如下內容:
注意:有兩種添加內容的方法,第一種是網上廣泛的優化方式,可是在當前版本的elasticsearch中我使用此方式任然沒法啓動,具體緣由不知道是系統緣由仍是elasticsearch版本緣由,所以我使用第二種優化方式使問題獲得解決,建議讀者先使用第一種優化方式,若是不行請使用第二種優化方式。
方法一:
/etc/security/limits.conf中添加以下內容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
/etc/security/limits.d/20-nproc.conf中添加以下內容:
* soft nproc 65536
root soft nproc unlimited
方法二:
/etc/security/limits.conf中添加以下內容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
* hard memlock unlimited
* soft memlock unlimited
/etc/security/limits.d/20-nproc.conf中添加以下內容:
* soft nproc 4096
c、重啓後執行 ulimit -a 查看是否生效
五、elasticsearch服務相應操做
a、啓動
/application/elk/elasticsearch/bin/elasticsearch -d
-d 後臺服務的方式啓動
若是啓動異常,查看日誌/application/elk/elasticsearch/logs/elk-elasticsearch.log
b、查看進程
jps
c、中止
kill pid
六、更多elasticsearch操做詳見標籤下 ELK使用1-elasticsearch使用
3、elasticsearch插件工具head安裝
一、ElasticSearch-head是一個H5編寫的ElasticSearch集羣操做和管理工具,能夠對集羣進行傻瓜式操做。
a、顯示集羣的拓撲,而且可以執行索引和節點級別操做
b、搜索接口可以查詢集羣中原始json或表格格式的檢索數據
c、可以快速訪問並顯示集羣的狀態
d、有一個輸入窗口,容許任意調用RESTful API。這個接口包含幾個選項,能夠組合在一塊兒以產生有趣的結果;
e、5.0版本以前能夠經過plugin安裝,直接解壓即可運行,很綠色,5.0以後安裝就須要使用nodejs,而後以獨立服務的方式啓動,不太方便,能夠直接經過安裝谷歌瀏覽器插件 elasticsearch-head-chrome。
二、開始安裝(在任意一臺主機上安裝便可,這兒我選擇的192.168.30.41)
a、首先在es集羣全部節點配置文件添加以下內容 vim /application/elk/elasticsearch/config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
b、在192.168.30.41上面安裝,而後其餘主機能夠選裝,安裝方法同樣。
安裝NodeJS
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.5.0-linux-x64.tar.gz
tar zxvf node-v4.5.0-linux-x64.tar.gz -C /application/elk/elasticsearch/nodejs/node
rm -f node-v4.5.0-linux-x64.tar.gz
添加環境變量 vim ~/.bash_profile
#node
export NODE_HOME= /application/elk/elasticsearch/nodejs/node
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
加載環境變量
source ~/.bash_profile
安裝npm與grunt
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm install -g grunt
npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy
下載head插件並安裝
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
mv elasticsearch-head-master /application/elk/elasticsearch
修改配置文件 vim /application/elk/elasticsearch/elasticsearch-head/Gruntfile.js 修改如下內容(也能夠不修改,默認監聽9100)
connect: {
server: {
options: {
hostname: '0.0.0.0',
port: 9100,
base: '.',
keepalive: true
}
}
}
修改配置文件 vim /application/elk/elasticsearch/elasticsearch-head/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.30.41:9200";
若是不修改,默認會鏈接192.168.30.41,這裏能夠修改成集羣任一主機
下載依賴安裝(必須在head插件目錄中操做)
cd /application/elk/elasticsearch/elasticsearch-head && npm install
三、相應操做
a、啓動。有兩種啓動方式
方式一:
cd /application/elk/elasticsearch/elasticsearch-head && npm run start
方式二:
cd /application/elk/elasticsearch/elasticsearch-head && grunt server
b、注意
必須在head插件目錄中操做
npm 啓動方式本質上都是調用grunt啓動
兩種啓動方式都不是後臺啓動,如需後臺運行,請使用nohup
c、訪問head
http://192.168.30.41:9100
d、中止head
首先經過 ps aux|grep grunt 查找到進程 pid ,而後 kill pid