Elasticsearch 7.10 + Construction du cluster Kibana

Description

Planification de cluster

hadoop300 Hadoop301 Hadoop302
elasticsearch V V V
Kibana V

[Tip]

  • Sauf indication contraire, toutes les configurations de chaque serveur doivent être cohérentes

Installation ES

1. Placement de progiciels

  • Après avoir téléchargé et décompressé elasticsearch7.10.2, décompressez-le dans un emplacement sur chaque serveur.
  • Après avoir téléchargé et décompressé le package kibana7.10.2, n'en déployez qu'un sur le nœud hadoop300. Les autres nœuds n'ont pas besoin de

Placez le hadoop300 comme suit, placez-le comme les autres serveurs de cluster, sauf pour kibana

[hadoop@hadoop300 app]$ pwd
/home/hadoop/app
[hadoop@hadoop300 app]$ ll
总用量 0
lrwxrwxrwx. 1 hadoop hadoop  51 1月  21 14:24 elasticsearch -> /home/hadoop/app/manager/es_mg/elasticsearch-7.10.2
lrwxrwxrwx. 1 hadoop hadoop  44 1月  13 23:24 jdk -> /home/hadoop/app/manager/jdk_mg/jdk1.8.0_212
drwxrwxr-x. 8 hadoop hadoop 101 1月  21 14:23 manager
lrwxrwxrwx. 1 hadoop hadoop  61 1月  21 19:57 kibana -> /home/hadoop/app/manager/kinana_mg/kibana-7.10.2-linux-x86_64

2. Configurer les variables d'environnement

Modifiez le vim ~/.bash_profilefichier à ajouter comme suit, chaque serveur doit être configuré

# ================= Elasticsearch ==============
export ES_HOME=/home/hadoop/app/elasticsearch
export PATH=$PATH:$ES_HOME/bin

3. Tokenizer IK (facultatif)

1. ${ES_HOME}/pluginsCréez d' abord un répertoire appelé sous le répertoire ik, puis décompressez le tokenizer ik téléchargé et placez-le ${ES_HOME}/plugins/iksous le répertoire ( 每台服务器节点都要放)

[hadoop@hadoop300 plugins]$ pwd
/home/hadoop/app/elasticsearch/plugins
[hadoop@hadoop300 plugins]$ mkdir ik
[hadoop@hadoop300 download]$ mv elasticsearch-analysis-ik-7.10.2.zip ~/app/elasticsearch/plugins/ik/
[hadoop@hadoop300 download]$ cd ~/app/elasticsearch/plugins/ik/
[hadoop@hadoop300 ik]$ ll
总用量 4400
-rw-rw-r--. 1 hadoop hadoop 4504440 1月  21 21:37 elasticsearch-analysis-ik-7.10.2.zip
[hadoop@hadoop300 ik]$ unzip elasticsearch-analysis-ik-7.10.2.zip
[hadoop@hadoop300 ik]$ ll
总用量 5832
-rw-r--r--. 1 hadoop hadoop  263965 5月   6 2018 commons-codec-1.9.jar
-rw-r--r--. 1 hadoop hadoop   61829 5月   6 2018 commons-logging-1.2.jar
drwxr-xr-x. 2 hadoop hadoop    4096 12月 25 2019 config
-rw-r--r--. 1 hadoop hadoop   54626 1月  18 10:56 elasticsearch-analysis-ik-7.10.2.jar
-rw-rw-r--. 1 hadoop hadoop 4504440 1月  21 21:37 elasticsearch-analysis-ik-7.10.2.zip
-rw-r--r--. 1 hadoop hadoop  736658 5月   6 2018 httpclient-4.5.2.jar
-rw-r--r--. 1 hadoop hadoop  326724 5月   6 2018 httpcore-4.4.4.jar
-rw-r--r--. 1 hadoop hadoop    1807 1月  18 10:56 plugin-descriptor.properties
-rw-r--r--. 1 hadoop hadoop     125 1月  18 10:56 plugin-security.policy

4. Modifiez la configuration du cluster ES

  • Modifier le ${ES_HOME}/config/elasticsearch.ymlfichier de configuration

hadoop300Configuration des nœuds

# Elasticsearch集群名称
cluster.name: ES-CLUSTER
# 集群中该Elasticsearch节点的名称, 不可与其他节点相同
node.name: node-1
# 设置存放Elasticsearch索引数据的文件目录
path.data: /home/hadoop/app/elasticsearch/data
# 设置存放日志文件的文件目录
path.logs: /home/hadoop/app/elasticsearch/logs
# 该Elasticsearch节点绑定的IP地址或者主机名
network.host: hadoop300
# 配置Elasticsearch集群中所有节点绑定的IP地址或者主机名列表。
discovery.seed_hosts: ["hadoop300", "hadoop301", "hadoop302"]
# 配置哪些节点可以有资格被选为主节点。
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

hadoop301 La configuration du nœud est la même que ci-dessus, à l'exception des deux attributs suivants

node.name: node-2
network.host: hadoop301

hadoop303 La configuration du nœud est la même que ci-dessus, à l'exception des deux attributs suivants

node.name: node-3
network.host: hadoop302

5. Script de démarrage / arrêt unifié pour le cluster Elasticsearch

[hadoop@hadoop300 shell]$ pwd
/home/hadoop/shell
[hadoop@hadoop300 shell]$ vim es.sh
[hadoop@hadoop300 shell]$ chmod ug+x es.sh
[hadoop@hadoop300 shell]$ ll
-rwxrwxr--. 1 hadoop hadoop 464 1月  14 17:50 es.sh

Le contenu de es.sh est le suivant
[Tip]

  • Comme les variables d'environnement d'ES sont configurées ~/.bash_profilesous, vous pouvez utiliser la elasticsearchcommande directement . Bien sûr, vous pouvez également écrire le chemin absolu du script.
  • La commande d'exécution à distance ssh ne chargera pas cette bash_profilevariable d'environnement par défaut , donc sourcez-la manuellement
# 集群列表
list=(hadoop300 hadoop301 hadoop302)

case $1 in
"start"){
    
    
        for i in ${
    
    list[@]}
        do
          echo ---------- Elasticsearch[ $i ]启动 ------------
                ssh $i "source ~/.bash_profile;elasticsearch -d -p pid"
        done
};;
"stop"){
    
    
        for i in ${
    
    list[@]}
        do
          echo ---------- Elasticsearch[ $i ]停止 ------------    
                ssh $i "source ~/.bash_profile;pkill -F ${ES_HOME}/pid"
        done
};;
"status"){
    
    
        for i in ${
    
    list[@]}
        do
          echo ---------- Elasticsearch[ $i ] 集群状态 ------------    
                ssh $i "curl http://$i:9200/_cat/health?ts=false"
        done
};;
"list"){
    
      
          echo ---------- Elasticsearch[ $i ] 集群列表 ------------    
         curl http://`hostname`:9200/_cat/allocation
};;
esac   

Montez ensuite le script sur l'appel global, configurez les variables d'environnement ou montez la connexion logicielle dans le répertoire bin système

6. Démarrez le test

启动ES

# 启动集群
[hadoop@hadoop300 ~]$ es.sh start
---------- Elasticsearch[ hadoop300 ]启动 ------------
---------- Elasticsearch[ hadoop301 ]启动 ------------
---------- Elasticsearch[ hadoop302 ]启动 ------------

[hadoop@hadoop300 ~]$ xcall jps
--------- hadoop300 ----------
9796 Elasticsearch
10324 Jps
--------- hadoop301 ----------
6162 Elasticsearch
6596 Jps
--------- hadoop302 ----------
5926 Elasticsearch
6361 Jps

#集群状态, green代表健康
[hadoop@hadoop300 app]$ es.sh status
---------- Elasticsearch[ hadoop300 ] 集群状态 ------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100    42  100    42    0     0   2930      0 --:--:-- --:--:-- --:--:--  3000
---------- Elasticsearch[ hadoop301 ] 集群状态 ------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100    42  100    42    0     0   3495      0 --:--:-- --:--:-- --:--:--  3818
---------- Elasticsearch[ hadoop302 ] 集群状态 ------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0ES-CLUSTER green 3 3 0 0 0 0 0 0 - 100.0%
100    42  100    42    0     0   3209      0 --:--:-- --:--:-- --:--:--  3230


[hadoop@hadoop300 ~]$ es.sh list
---------- Elasticsearch[ ] 集群列表 ------------
0 0b 4.5gb 21.1gb 25.7gb 17 hadoop300 192.168.13.115 node-1
0 0b 3.1gb 22.5gb 25.7gb 12 hadoop302 192.168.13.117 node-3
0 0b 3.1gb 22.5gb 25.7gb 12 hadoop301 192.168.13.112 node-2

Accès par navigateur au port 9200 de n'importe quel nœud pour afficher les informations ES

  • Tels que la visitehadoop300:9200

Insérez la description de l'image ici

Installation de Kibana

Modifiez simplement le kibana.ymlfichier de configuration directement

[hadoop@hadoop300 config]$ pwd
/home/hadoop/app/kibana/config
[hadoop@hadoop300 config]$ ll
总用量 12
-rw-r--r--. 1 hadoop hadoop 4926 121 20:02 kibana.yml
-rw-r--r--. 1 hadoop hadoop  216 113 10:07 node.options

kibana.yml 配置如下

# Kibana 访问地址
server.host: 0.0.0.0
# elasticsearch集群列表
elasticsearch.hosts: ["http://hadoop300:9200","http://hadoop301:9200","http://hadoop302:9200"]

Puis exécutez la kibanacommande pour démarrer

[hadoop@hadoop300 bin]$ pwd
/home/hadoop/app/kibana/bin
[hadoop@hadoop300 bin]$ ll
总用量 12
-rwxr-xr-x. 1 hadoop hadoop 835 1月  13 10:07 kibana
-rwxr-xr-x. 1 hadoop hadoop 776 1月  13 10:07 kibana-keystore
-rwxr-xr-x. 1 hadoop hadoop 813 1月  13 10:07 kibana-plugin
[hadoop@hadoop300 bin]$ ./kibana

Le port par défaut est 5601, accès navigateur
Insérez la description de l'image ici

Problème d'échec de démarrage ES

ES启动对系统配置有一定要求

1. Le nombre de descripteurs de fichiers Linux est trop faible [descripteurs de fichiers]

问题 描述: le nombre maximal de descripteurs de fichier [4096] pour le processus elasticsearch est trop faible, augmentez à au moins [65535]

Solution: modifiez le paramètre de taille du descripteur de fichier Linux

sudo vim /etc/security/limits.conf

Modifiez comme suit:

* soft nofile 65536
* hard nofile 131072

Afficher le nombre de descripteurs de fichiers après modification

[hadoop@hadoop300 bin]$ ulimit -a | grep open
open files                      (-n) 65536

2. vm.max_map_count est trop faible

max_map_count表示限制一个进程可以拥有的VMA(虚拟内存区域)的数量

问题 描述: le nombre maximal de zones de mémoire virtuelle vm.max_map_count [65530] est trop faible, augmentez à au moins [262144]

Solution: modifiez le /etc/sysctl.conffichier

Modifiez comme suit:

vm.max_map_count=262144

Ensuite, redémarrez le serveur et vérifiez la taille à ce moment

[hadoop@hadoop300 bin]$ sysctl vm.max_map_count
vm.max_map_count = 262144

10. Récompense

Si vous trouvez l'article utile, vous pouvez encourager l'auteur (Alipay)

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41347419/article/details/112914070
conseillé
Classement