溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

安裝配置elasticsearch 7.5.1群集

發(fā)布時(shí)間:2020-03-03 01:22:05 來(lái)源:網(wǎng)絡(luò) 閱讀:329 作者:warrent 欄目:系統(tǒng)運(yùn)維

本博文只用于實(shí)現(xiàn)簡(jiǎn)單群集配置,更深入的資料可以參考官方文檔。

  • elasticsearch官方文檔。
  • kibana官方文檔。

一、安裝前準(zhǔn)備

環(huán)境如下:

系統(tǒng)版本 IP 角色
centos 7.5 192.168.20.2 ES 01、logstash、ES-Head、logstash、kibana
centos 7.5 192.168.20.7 ES 02
centos 7.5 192.168.20.8 ES 03

注:文中用到的所有軟件包,均可在我的網(wǎng)盤(pán)鏈接中下載,或者去es中文社區(qū)下載es相關(guān)組件。

1、配置域名解析

[root@node01 src]# cat > /etc/hosts << EOF
> 192.168.20.2    node01
> 192.168.20.7    node02
> 192.168.20.8    node03
> EOF
> #將hosts文件發(fā)送到其他節(jié)點(diǎn)
[root@node01 src]# scp /etc/hosts root@node02:/etc/hosts
[root@node01 src]# scp /etc/hosts root@node03:/etc/hosts

2、配置java環(huán)境

注:以下操作需要在所有節(jié)點(diǎn)上進(jìn)行配置。

JDK官方下載地址

#卸載自帶的java環(huán)境
[root@node01 src]# rpm -qa | grep jdk
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
copy-jdk-configs-3.3-2.el7.noarch
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
[root@node01 src]# rpm -e java-1.8.0-openjdk-headless --nodeps
[root@node01 src]# rpm -e java-1.7.0-openjdk-headless --nodeps
#配置jdk環(huán)境
[root@node01 src]# tail -4 /etc/profile   #追加內(nèi)容如下
export JAVA_HOME=/usr/local/jdk1.8.0_241
export JRE_HOME=/usr/local/jdk1.8.0_241/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#刷新配置并查看配置是否正確
[root@node01 src]# . /etc/profile
[root@node01 src]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

二、配置ELK群集

1、下載es的rpm安裝包

注:下載安裝的操作需要再所有節(jié)點(diǎn)上執(zhí)行

#下載并安裝elasticsearch
[root@node01 src]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-x86_64.rpm
[root@node01 src]# rpm -ivh elasticsearch-7.5.1-x86_64.rpm
#設(shè)置開(kāi)機(jī)自啟動(dòng)
[root@node01 src]# systemctl daemon-reload
[root@node01 src]# systemctl enable elasticsearch.service

2、優(yōu)化es(可跳過(guò))

1)修改其默認(rèn)使用內(nèi)存大小
#查看elasticsearch的配置文件目錄
[root@node01 elasticsearch]# pwd
/etc/elasticsearch
[root@node01 elasticsearch]# ls
elasticsearch.keystore  jvm.options        role_mapping.yml  users
elasticsearch.yml       log4j2.properties  roles.yml         users_roles
#elasticsearch默認(rèn)內(nèi)存使用為1G,可以更改如下配置,修改其默認(rèn)使用內(nèi)存
[root@node01 elasticsearch]# cat jvm.options
-Xms1g
-Xmx1g

注:生產(chǎn)環(huán)境中建議將Xms和Xmx兩個(gè)值設(shè)置為一致,一般設(shè)置為物理內(nèi)存的一半,但最高最好不要超過(guò)30G

2)修改其打開(kāi)文件數(shù)的大小

如果服務(wù)器文件數(shù)上線(xiàn)和線(xiàn)程上線(xiàn)較低,就會(huì)產(chǎn)生如下異常:

1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]每個(gè)進(jìn)程最大同時(shí)打開(kāi)文件數(shù)太小

2. max number of threads [3818] for user [es] is too low, increase to at least [4096]最大線(xiàn)程個(gè)數(shù)太低

可以進(jìn)行以下修改,以便修改可打開(kāi)文件數(shù)的大小

[root@node01 elasticsearch]# vim /etc/security/limits.conf
*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096
#注:修改上述配置后,需要退出當(dāng)前用戶(hù)再重新登錄才可生效
#重新登錄后,可以使用以下命令查看是否生效
#查看最大線(xiàn)程個(gè)數(shù)
[root@node01 elasticsearch]# ulimit -Hu
4096
[root@node01 elasticsearch]# ulimit -Su
4096
#查看每個(gè)進(jìn)程最大同時(shí)打開(kāi)文件數(shù)
[root@node01 elasticsearch]# ulimit -Sn
65536
[root@node01 elasticsearch]# ulimit -Hn
65536

3、配置es集群

1)node01配置如下
[root@node01 ~]# vim /etc/elasticsearch/elasticsearch.yml     #修改es主配置文件
cluster.name: my-es       #群集名稱(chēng)
node.name: node01        #es節(jié)點(diǎn)名稱(chēng)
bootstrap.memory_lock: false      #啟動(dòng)時(shí)不鎖定內(nèi)存
network.host: 0.0.0.0           #監(jiān)聽(tīng)地址
http.port: 9200                 #監(jiān)聽(tīng)端口
discovery.seed_hosts: ["node01", "node02", "node03"]    #這里指定參與集群的主機(jī)節(jié)點(diǎn)
cluster.initial_master_nodes: ["node01", "node02", "node03"]     #同上
#在配置文件末尾添加以下內(nèi)容,后面es-head連接es群集時(shí)需要
http.cors.enabled: true                #添加該行,開(kāi)啟跨域訪(fǎng)問(wèn)支持
http.cors.allow-origin: "*"            #添加該行,跨域訪(fǎng)問(wèn)允許的域名地址
#啟動(dòng)服務(wù),并將修改好的配置文件發(fā)送到其他節(jié)點(diǎn)
[root@node01 ~]# systemctl start elasticsearch
[root@node01 ~]# scp /etc/elasticsearch/elasticsearch.yml root@node02:/etc/elasticsearch/
[root@node01 ~]# scp /etc/elasticsearch/elasticsearch.yml root@node03:/etc/elasticsearch/
2)配置其他節(jié)點(diǎn)
#node02節(jié)點(diǎn)配置如下(修改節(jié)點(diǎn)名稱(chēng)即可)
[root@node02 ~]# sed -i 's#node.name: node01#node.name: node02#g' /etc/elasticsearch/elasticsearch.yml
[root@node02 ~]# systemctl start elasticsearch
#node03節(jié)點(diǎn)配置如下
[root@node03 ~]# sed -i 's#node.name: node01#node.name: node03#g' /etc/elasticsearch/elasticsearch.yml
[root@node03 ~]# systemctl start elasticsearch
3)查看群集是否配置成功

訪(fǎng)問(wèn)各個(gè)節(jié)點(diǎn)的9200端口,即可看到如下頁(yè)面:

安裝配置elasticsearch 7.5.1群集

4、配置elasticsearch Head

谷歌提供的有elasticsearch head插件,在應(yīng)用商店搜索如下即可安裝:

安裝配置elasticsearch 7.5.1群集

雖然可以使用chrome的插件,但是每個(gè)使用者都需要安裝chrome,并安裝ElasticSearch head插件。由于目前google被國(guó)內(nèi)限制的緣故,安裝chrome比較麻煩。作為替代方案,我們可以在linux服務(wù)器安裝ElasticSearch Head應(yīng)用。

該插件在github存在,可以參考安裝。

注:以下配置在其中一個(gè)節(jié)點(diǎn)進(jìn)行即可

[root@node01 ~]# git clone git://github.com/mobz/elasticsearch-head.git
[root@node01 ~]# cd elasticsearch-head/
#安裝epel源及更新openssl
[root@node01 elasticsearch-head]# yum -y install epel-release 
[root@node01 elasticsearch-head]# yum -y update openssl
#安裝npm(注:必須安裝epel源才可安裝npm)
[root@node01 elasticsearch-head]# yum -y install npm
[root@node01 elasticsearch-head]# npm install

注:如果在執(zhí)行npm install命令時(shí),長(zhǎng)時(shí)間停留在如下界面,或者報(bào)錯(cuò),只需Ctrl+c終止后重新運(yùn)行該命令即可。

安裝配置elasticsearch 7.5.1群集

后臺(tái)啟動(dòng)elasticsearch head,否則會(huì)一直占用當(dāng)前終端:

[root@node01 elasticsearch-head]# npm run start &   #后臺(tái)啟動(dòng)
[root@node01 ~]# ss -lnp | grep 9100          #確定9100端口在監(jiān)聽(tīng)

瀏覽器訪(fǎng)問(wèn)elasticsearch head所在主機(jī)的9100端口,并連接到es群集的9200端口,即可在瀏覽器查看群集狀態(tài),如下:

安裝配置elasticsearch 7.5.1群集

注:Elasticsearch默認(rèn)不允許第三方接入,可以修改Elasticsearch的配置文件elasticsearch.yml,添加如下所示配置(我在第一次修改配置文件時(shí),已經(jīng)增加了如下配置):

http.cors.enabled: true
http.cors.allow-origin: "*"

5、安裝kibana

1)下載并安裝kibana
[root@node01 ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-x86_64.rpm
[root@node01 src]# rpm -ivh kibana-7.5.1-x86_64.rpm
2)配置kibana
[root@node01 ~]# vim /etc/kibana/kibana.yml       #編輯主配置文件
server.host: "0.0.0.0"         #指定kibana監(jiān)聽(tīng)地址
elasticsearch.hosts: ["http://192.168.20.2:9200","http://192.168.20.7:9200","http://192.168.20.8:9200"]
#指定es監(jiān)聽(tīng)地址,可以寫(xiě)群集中的某一個(gè)節(jié)點(diǎn)監(jiān)聽(tīng)地址
kibana.index: ".kibana"             #在elasticsearch中添加.kibana索引
#設(shè)置開(kāi)機(jī)自啟并啟動(dòng)kibana
[root@node01 ~]# systemctl enable kibana
[root@node01 ~]# systemctl start kibana
[root@node01 ~]# ss -lnp | grep 5601          #確定kibana端口在監(jiān)聽(tīng)
tcp    LISTEN     0      128       *:5601                  *:*                   users:(("node",pid=2593,fd=28))
2)漢化kibana(可選)

由于kibana 7之前的版本,官方并沒(méi)有支持中文,需要另外下載補(bǔ)丁包。
地址:https://github.com/anbai-inc/Kibana_Hanization

kibana 7的版本,官方加入了中文的選項(xiàng),只需要修改kibana的配置文件即可,如下:

[root@node01 bin]# sed -i 's/#i18n.locale: "en"/i18n.locale: "zh-CN"/g' /etc/kibana/kibana.yml

注:修改配置文件后,記得重啟生效哦!

啟動(dòng)完成后,訪(fǎng)問(wèn)主機(jī)的5601端口,即可看到如下界面:

安裝配置elasticsearch 7.5.1群集

6、安裝logstash收集日志

在實(shí)際生產(chǎn)環(huán)境中,大多中小架構(gòu)可能是這樣的:filebeat===》kafka===》logstash===》elasticsearch===》kibana。我這里只是想將新版的某些組件安裝配置一下,所以省略了前兩個(gè),直接用logstash來(lái)收集主機(jī)日志了。

注:下面收集的有nginx的日志,請(qǐng)自行配置nginx。


#下載logstash并安裝
[root@node01 src]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.rpm
[root@node01 src]# rpm -ivh logstash-7.5.1.rpm
#設(shè)置開(kāi)機(jī)自啟
[root@node01 src]# systemctl daemon-reload
[root@node01 src]# systemctl enable logstash.service
#編輯配置文件,收集日志
[root@node01 src]# cd /etc/logstash/conf.d/
[root@node01 conf.d]# vim nginx_log.conf
input {
    file{
      path => "/var/log/messages"
      type => "system"
      start_position => "beginning"
        }
    file{
       path => "/var/log/nginx/access.log"
       type => "access"
       start_position => "beginning"
        }
    file{
       path => "/var/log/nginx/error.log"
       type => "error"
       start_position => "beginning"
        }
    }

output {
    if [type] == "system" {
        elasticsearch {
            hosts => ["192.168.20.2:9200"]
            index => "system-%{+YYYY.MM.dd}"
            }
            }
    if [type] == "access" {
        elasticsearch {
            hosts => ["192.168.20.2:9200"]
            index => "access-%{+YYYY.MM.dd}"
            }
            }

    if [type] == "error" {
        elasticsearch {
            hosts => ["192.168.20.2:9200"]
            index => "error-%{+YYYY.MM.dd}"
            }
            }
}
[root@node01 conf.d]# chmod +r /var/log/messages       #賦予該目錄其他人的讀權(quán)限    
[root@node01 conf.d]# ln -sf /usr/share/logstash/bin/logstash /usr/local/bin/    #對(duì)命令做軟連接
[root@node01 conf.d]# systemctl start logstash     #啟動(dòng)服務(wù)
[root@node01 conf.d]# logstash -f nginx_log.conf &    #放入后臺(tái)運(yùn)行

7、登錄es查看是否創(chuàng)建索引

顯示如下,表示正常:

安裝配置elasticsearch 7.5.1群集

好了,至于kibana如何添加索引,自行研究吧,沒(méi)有耐心寫(xiě)了,可以參考我之前的博文來(lái)進(jìn)行添加kibana上的索引。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI