前言
ELK作為日志收集、分析和展示的元件,功能十分強大。本系列将介紹ELK的安裝和基于執行個體的使用過程,每個步驟和測試執行個體都是親自實驗過的。本篇将介紹ElasticSearch叢集的安裝,部署的ElasticSearch的版本為7.2,JDK8的版本,計劃用三台機器組成一個ElasticSearch叢集,進而組成高可用。
官網下載下傳:https://www.elastic.co/cn/downloads/elasticsearch
百度雲盤:百度雲盤連結 提取碼:g34e
1、本地環境
IP | 使用者 | 元件 |
---|---|---|
192.168.158.129 | elk | elasticsearch ,head |
192.168.158.130 | elk | elasticsearch |
192.168.158.131 | elk | elasticsearch |
2、安裝ElasticSearch
在安裝之前,我們需要安裝JDK8的環境,沒有安裝的,先看下面的連結進行安裝:JDK8安裝教程連結
- ELK不允許使用root賬戶,我們建立elk使用者
- 解壓
[[email protected] ~]# su elk
[[email protected] root]$ cd /home/elk/
[[email protected] ~]$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz
- 編輯配置檔案
[[email protected] ~]$ vi elasticsearch-7.2.0/config/elasticsearch.yml
在檔案的最底部添加上以下配置:
#三個叢集需要同樣的叢集名
cluster.name: my-application
#每個node的名字需要唯一
node.name: node-1
node.master: true
#允許該節點存儲資料(預設開啟)
node.data: true
#資料存放的位置,需要建立一個目錄
path.data: /home/elk/elasticsearch-7.2.0/data
#日志存放的位置,需要建立一個目錄
path.logs: /home/elk/elasticsearch-7.2.0/log
#監聽的ip
network.host: 0.0.0.0
#監聽的端口
http.port: 9200
transport.tcp.port: 9300
xpack.security.enabled: false
#允許跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.158.129", "192.168.158.130", "192.168.158.131"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
- 主機參數修改
修改參數是為了解決es啟動時的這二個報錯
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[[email protected] ~]$ su root
[[email protected] elk]# vi /etc/sysctl.conf
添加下面的配置
vm.max_map_count=655360
并執行下面指令,讓配置生效
繼續修改另外一個配置
在檔案的最底部,添加下面的配置
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
編輯好儲存後,退出該使用者,再登入,讓配置生效,我們來檢視下,使用者可以打開檔案的最大數目、使用者可以開啟程序/線程的最大數目是否已經修改
[[email protected] elk]# ulimit -Hn
65536
[[email protected] elk]# ulimit -Hu
4096
- 啟動
[[email protected] elk]# cd elasticsearch-7.2.0/bin/
[[email protected] bin]# su elk
#-d 表示背景啟動,-p 表示啟動的程序号儲存在pid.log中
[[email protected] bin]$ ./elasticsearch -d -p pid.log
啟動成功後,将另外兩台機器進行重複操作,配置檔案唯一的差別是node.name分别為node-2、node-3,其它配置不變。
- 叢集啟動
配置完主從節點,三台機器同時啟動elasticsearch,關閉防火牆,執行以下指令看是否安裝成功
#關閉防火牆,否則請求會出現503
[[email protected] bin]# systemctl stop firewalld.service
[[email protected] bin]# su elk
[[email protected] bin]$ curl -XGET http://127.0.0.1:9200/_cat/nodes?pretty
#出現下面的結果就表示叢集搭建成功了
192.168.158.129 8 88 10 0.11 0.17 0.12 mdi * node-1
192.168.158.130 10 86 9 0.13 0.27 0.13 mdi - node-2
192.168.158.131 11 86 12 0.18 0.28 0.13 mdi - node-3
3、安裝head
在elasticsearch的進階版本之後,head不在是一個插件,而是一個獨立的應用來部署,需要安裝node
- 安裝node(已經安裝的可以忽略)
将安裝包上傳到/usr/local/(我習慣的)目錄下
#解壓
[[email protected] local]# tar -zxvf node-v8.16.0-linux-x64.tar.gz
#重命名
[[email protected] local]# mv node-v8.16.0-linux-x64 nodejs
#通過建立軟連接配接變為全局
[[email protected] local]# ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
[[email protected] local]# ln -s /usr/local/nodejs/bin/node /usr/local/bin/
#檢視版本
[[email protected] local]# node -v
v8.16.0
- 部署head
#解壓
[[email protected] ~]$ unzip elasticsearch-head-master.zip
[[email protected] ~]$ cd elasticsearch-head-master
#安裝
[[email protected] elasticsearch-head-master]$ npm install
#運作
[[email protected] elasticsearch-head-master]$ npm run start
啟動後,如果不報錯,可以用netstat nltp 檢視下端口,看到9100端口,就表示安裝成功了,如果在window中通路,需要更改一下檔案
[[email protected] elasticsearch-head-master]$ vi Gruntfile.js
找到下面位置,增加hostname行,就可以在window浏覽器中使用ip:9100通路了
connect: {
server: {
options: {
hostname:'0.0.0.0',
port: 9100,
base: '.',
keepalive: true
}
}
}
安裝成功後,打開 http://192.168.158.129:9100/,浏覽器顯示如下的界面,則安裝成功:
在Head元件的界面上,可以很友善的檢視叢集的狀态和資料。
結束語
本篇到此,elasticsearch的安裝就結束了,下一篇,将介紹logstash和kibana的安裝。
如果本篇對您有幫助,請點個贊再走,您的點贊是部落客的動力!