Linux Elasticsearch-8.1.2 kibana-8.1.2 部署合集

官方网址:Download Elasticsearch | Elastic

基础部署

  1. 下载最新版本,使用SFTP传输协议上传至目标服务器目标文件夹当中。

  2. 解压软件包

    tar -xvf xx.tar.gz
    
  3. 进入文件夹关掉xpack:

    vim config/elasticsearch.yml 
    更改xpack.security.enabled: false
    
  4. 创建用户组:

    groupadd es
    
  5. 创建用户:

    useradd es -g es
    
  6. 将解压出来的软件包所有人由root更换为es:

    chown es:es '解压文件夹'
    
  7. 登陆es用户:

    su es
    
  8. 进入文件夹中使用启动命令:

    bin/elasticsearch -d (后台启动)
    
  9. 返回root用户后使用curl localhost:9200 显示以为信息为成功:
    在这里插入图片描述

进阶部署

自定义部署及外界访问
  1. 创建数据存放目录:

    mkdir data
    
  2. 创建日志文件存放目录:

    mkdir log
    
  3. 更改配置文件:

    vim config/elasticsearch.yml
    
  4. 自定义使用名:

    cluster.name: test_one
    
  5. 自定义节点名:

    node.name: test_node-1
    
  6. 更改数据存放目录:

    path.data: /usr/local/software/elastic/data
    
  7. 更改日志存放目录:

    path.logs: /usr/local/software/elastic/log
    
  8. 更改访问地址为本机的静态IP:

    network.host: 192.168.47.47
    
  9. 更改软件占用端口:

    http.port: 9200
    
  10. 保存退出::wq

  11. 查询现存的es进程:

    ps -ef | grep elastic
    
  12. 使用命令杀死相关进程号:

    kill -9 xxxx
    
  13. 指定防火墙开放配置的端口供外界访问:

    firewall-cmd --add-port=9200/tcp --permanent
    
  14. 刷新防火墙:

    firewall-cmd --reload
    
  15. 启动es稍作等待后在外界浏览器输入:192.168.47.47:9200,下图为成功:
    在这里插入图片描述

伪集群搭建(单个服务器多个ES)

1.为每个node(节点)分别创建其数据目录和日志目录,不能共用并赋予给用户es所有权:

cd /usr/local/software/elastic/data
mkdir node_1 node_2
cd ../log
mkdir node_1 node_2
cd ..
chown -R es:es data log

2.将原es文件夹规范重命名并新建一个节点文件夹:

mv elasticsearch-8.1.2 elasticsearch-8.1.2-node1
mkdir elasticsearch-8.1.2-node2

3.进入node1并修改配置文件:

cd elasticsearch-8.1.2-nodel
vim config/elasticsearch.yml
cluster.name: test
node.name: test_node-1
path.data: /usr/local/software/elastic/data/node_1
path.logs: /usr/local/software/elastic/log/node_1
network.host: 192.168.47.47
http.port: 9200
transport.port: 9205 (新增、自定义)
discovery.seed_hosts: ["192.168.47.47:9205", "192.168.47.47:9206"]
cluster.initial_master_nodes: ["test_node-1", "test_node-2"]
http.cors.enabled: true (新增)
http.cors.allow-origin: "*" (新增)
//注意冒号后需要跟一个空格

4.保存退出返回安装根目录,将node1中的所有文件复制到node2文件夹中:

cp -r elasticsearch-8.1.2-node1/* elasticsearch-8.1.2-node2

5.进入node2根据node1的配置文件修改相关配置:

cluster.name: test (一定要保持一致)
node.name: test_node-2
http.port: 9201
transport.port: 9206

6.分别进入各节点安装目录,启动es节点:

bin/elasticsearch -d

7.查看集群健康度:

curl 192.168.47.47:9200/_cat/health
1649748533 07:28:53 test green 2 2 2 1 0 0 0 0 - 100.0%
//green表示所有节点及节点下的各分片均为正常
curl -X GET 'http://192.168.47.47:9200/_cat/nodes?v'
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role  master     name
192.168.47.47     49          96     1    0.00    0.02     0.05 cdfhilmrstw   -      test_node-2
192.168.47.47     32          96     1    0.00    0.02     0.05 cdfhilmrstw   *      test_node-1
//*表示master,如果master宕机了es会自主选择其他正常运行节点作为主节点
curl -X GET 'http://192.168.47.47:9200/_cluster/health?pretty'
{
  "cluster_name" : "test",   //集群名称
  "status" : "green",		//集群状态
  "timed_out" : false,		//是否超时
  "number_of_nodes" : 2,	//集群节点数
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 1,
  "active_shards" : 2,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0		//集群分片可用百分比
}

8.为集群配置系统服务并设置开机自启:

//进入系统服务目录并创建shell脚本
cd /etc/init.d
vim elasticsearch
#!/bin/bash
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-8.1.2

export ES_HOME_1=/usr/local/software/elastic/elasticsearch-8.1.2-node1
export ES_HOME_2=/usr/local/software/elastic/elasticsearch-8.1.2-node2
case $1 in
        start)
                su es<<!  #以es用户的身份进行以下操作
                cd $ES_HOME_1
                ./bin/elasticsearch -d 
                cd $ES_HOME_2
                ./bin/elasticsearch -d 
                exit
!
                echo "elasticsearch is started"
                ;;
        stop)
                pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`     #获取elasticsearch相关的进程号并杀死他们
                kill -9 $pid
                echo "elasticsearch is stopped"
                ;;
        restart)
                pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
                kill -9 $pid
                echo "elasticsearch is stopped"
                sleep 2  
                su es<<!
                cd $ES_HOME_1
                ./bin/elasticsearch -d 
                cd $ES_HOME_2
                ./bin/elasticsearch -d 
                exit
!
                echo "elasticsearch is started"
        ;;
    *)
        echo "start|stop|restart"
        ;;
esac


exit 0

//保存退出后赋予脚本文件最高权限
chmod 777 elasticsearch
//添加至系统服务
chkconfig --add elasticsearch
//设置服务开机自启
chkconfig elasticsearch on
//*配置完成今后可以使用系统命令启动/停止/重启es服务
service elasticsearch start
service elasticsearch stop
service elasticsearch restart
集群搭建(多个服务器各一个ES)

1.分别在各服务器上基础部署并运行一次(相当于初始化会生成一些额外的东西)

2.备份原配置文件

mv elasticsearch.yml elasticsearch.yml.bk

3.将之前伪集群的某一配置文件通过sftp协议传输至目标文件夹中

sftp root@192.168.47.48
yes
你的密码
put /usr/local/software/elastic/elasticsearch-8.1.2-node1/config/elasticsearch.yml xx/config

4.分别修改所有的配置文件(以下为其中之一)

cluster.name: test  //保持一致
node.name: test_node-3
path.data: /usr/local/software/elastic/data  //存放数据的目录,记得赋权给es用户
path.logs: /usr/local/software/elastic/log	//存放日志的目录,记得赋权给es用户
network.host: 0.0.0.0  //由原固定IP更换为0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.47.47:9205","192.168.47.47:9206","192.168.47.48:9300","192.168.47.49:9300"]
discovery.seed_hosts: ["192.168.47.47:9205","192.168.47.47:9206","192.168.47.48:9300","192.168.47.49:9300"]

5.开放各服务器的端口访问

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
firewall-cmd --reload

6.分别启动各服务器上的es节点,可使用命令行或脚本

7.查看集群状态

curl -X GET 'http://192.168.47.47:9200/_cat/nodes?v'
ip     heap.percent ram.percent cpu load_1m load_5m load_15m node.role   master      name
192.168.47.47   25          96   0    0.04    0.06     0.05 cdfhilmrstw    -      test_node-1
192.168.47.47   35          96   0    0.04    0.06     0.05 cdfhilmrstw    -      test_node-2
192.168.47.49   56          96   0    0.02    0.04     0.05 cdfhilmrstw    *      test_node-4
192.168.47.48   46          87   0    0.03    0.04     0.05 cdfhilmrstw    -      test_node-3

此时由四个节点组成的es集群便搭建成功了(其中前两个为之前搭建的伪集群)

**es在启动后会自动选取节点作为主节点master,当主节点宕机后会自动选取其他节点作为主节点,但前提是节点数大于或等于三个,若只有两个节点,主节点宕机后从节点将一直请求主节点而不会成为主节点,由此会导致服务出现一定程度的问题。

**在多次错误尝试后,确保配置没有问题后仍无法搭建集群可能是数据存在缓存的缘故,可以手动删除数据和日志目录里的文件再次尝试。

Kibana可视化界面部署

官方网址:Download Kibana Free | Get Started Now | Elastic(下载与之匹配的版本)

1.下载软件包并上传至安装目录

2.解压软件包并进入

3.修改配置文件

vim config/kibana.yml
server.port: 5601 //端口
server.host: "192.168.47.47"  //安装的服务器的静态IP
elasticsearch.hosts: ["http://192.168.47.47:9200","http://192.168.47.47:9201","http://192.168.47.48:9200","http://192.168.47.49:9200"]  //集群的地址
i18n.locale: "zh-CN"  //中文界面

4.保存退出,启动es后才能成功启动kibana

bin/kibana --allow-root &  //后台启动

5.防火墙开放其端口

6.浏览器输出IP:5601进入kibana页面

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

常见错误

  • 未使用普通用户登陆
  • 未给es文件更换所有人(即文件夹仍为root权限普通用户无权操作)
  • 未调整VMA的数量:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

1.修改系统文件:

vim /etc/sysctl.conf

2.添加

vm.max_map_count=262144

3.保存退出后刷新:

sysctl -p

4.修改系统文件:

vim /etc/security/limits.conf

5.末尾添加:

root soft nofile 165535

root hard nofilr 165535

*soft nofile 165536

hard nofile 165536

es - nofile 131072

6.保存退出后查看是否更新成功:

ulimit -Hn

7.若不生效,则需要逐一排查:

1、检查/etc/ssh/sshd_config 中UsePAM yes选项是否开启

2、检查/etc/pam.d/system-auth 中是否存在session required pam_limits.so这一项

3、检查/etc/pam.d/login 中是否将pam_limits.so文件被加入到启动文件中存在session required /lib64/security/pam_limits.so这一项

解释(1、2):UsePAM yes选项开启后,表示启用pam模块,在/etc/pam.d/sshd中默认已存在一项session include password-auth配置,include表示需要password-auth模块需要通过认证,在/etc/pam.d/system-auth里还应该存在session required pam_limits.so这一项,表示使用/etc/security/limits.conf这个配置

解释(3):要让limits.conf文件配置能够生效,必须将pam_limits.so模块文件加入到启动文件中,故应在/etc/pam.d/login配置文件中添加session required /lib64/security/pam_limits.so这一项

排查后重新登录一下用户就可以生效了,如果还未生效就要逐个排查/etc/pam.d下相关连的文件是否将session required pam_limits.so这一下项注释或删除了

具体错误事宜可以进入之前配置的日志目录下:cat test_one(cluster.name).log,查看并解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CheNgZhEnGg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值