ElasticSearch -- 部署完整步骤

news/2025/3/31 22:25:02/

前期准备

  1. 创建用户:
sudo useradd hadoop
sudo passwd hadoop# 密码
xxx
  1. 系统层面,禁用内存交换 sudo swapoff -a
  2. 修改 sudo vi /etc/security/limits.conf
hadoop hard memlock unlimited
hadoop soft memlock unlimited
hadoop soft nofile 65536
hadoop hard nofile 65536
hadoop soft nproc 4096
hadoop hard nproc 4096
  1. 增加系统配置 sudo vi /etc/sysctl.conf
vm.max_map_count = 262144# 保存,执行
sudo sysctl -p
  1. 配置hosts
  2. 切换用户,配置免密
sudo su hadoopssh-keygen -t rsa
ssh-copy-id xxx
  1. 如果是debian系统的话,切换用户后不显示路径,需要改 vi /etc/passwd,将hadoop用户的/bin/sh改为/bin/bash
    在这里插入图片描述
    在这里插入图片描述
  2. 为了操作方便,也可以给hadoop一个root权限
vi /etc/sudoershadoop    ALL=(ALL)    NOPASSWD: ALL
  1. 为了操作方便,给主节点两个方便管理的脚本

1、sudo vi /bin/xcall

#!/bin/bash
# 获取控制台指令
cmd=$*
# 判断指令是否为空
if [ ! -n "$cmd" ]
thenecho "command can not be null !"exit
fi# 获取当前登录用户
user=`whoami`# 在从机执行指令,这里需要根据你具体的集群情况配置,host与具体主机名一致,同上
for (( ip=71;ip<=80;ip++ ))
doecho "================current ip is 172.16.75.$ip================="ssh $user@192.168.10.$ip $cmd
done

2、sudo vi /bin/xsync

#!/bin/bash# 获取输出参数,如果没有参数则直接返回
pcount=$#
if [ $pcount -eq 0 ]
thenecho "no parameter find !";exit;
fi# 获取传输文件名
p1=$1
filename=`basename $p1`
echo "load file $p1 success !"# 获取文件的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo "file path is $pdir"# 获取当前用户(如果想使用root用户权限拷贝文件,在命令后加入-root参数即可)
user=$2
case "$user" in
"-root")user="root";;
"")user=`whoami`;;
*)echo "illegal parameter $user"esacecho $user
# 拷贝文件到从机(这里注意主机的host需要根据你的实际情况配置,要与你具体的主机名对应)
for (( ip=72;ip<=93;ip++ ))
doecho "================current host is 172.16.87.$ip================="rsync -rvl $pdir/$filename $user@192.168.10.$ip:$pdir
doneecho "complate !"

3、sudo chown hadoop:hadoop /bin/xcall /bin/xsync
4、sudo chmod u+x /bin/xcall /bin/xsync

ES

  1. 创建父目录,改权限
sudo mkdir /data/services
sudo chown -R hadoop:hadoop /data/services
  1. 解压,安装插件
tar zxvf elasticsearch-8.14.3.tar.gz
  1. 配置jvm.options和elasticsearch.yml

cluster.name: gpt-v8
node.name: node-01
path.data: /data/services/elasticsearch-8.14.3/data
path.logs: /data/services/elasticsearch-8.14.3/logs
network.host: node01
http.port: 9200
discovery.seed_hosts: ["node01", "node02", "node03"]
cluster.initial_master_nodes: ["node01", "node02", "node03"]
# 节点角色
node.roles: [master]# 是否支持跨域
http.cors.enabled: true# *表示支持所有域名
http.cors.allow-origin: "*"xpack.security.enabled: false
  1. 分发配置,各节点修改配置
  2. 启动ES:/data/services/elasticsearch-8.14.3/bin/elasticsearch -d

kibana

  1. 修改配置,直接启动
server.port: 5601
server.host: "node01"
elasticsearch.hosts: ["http://node01:9200", "http://node02:9200", "http://node03:9200"]# 启动
nohup /data/services/kibana-8.14.3/bin/kibana >> /data/services/kibana-8.14.3/logs/kibana.log 2>&1 &

安全配置

  1. 生成证书:bin/elasticsearch-certutil ca --silent --pem --days 3650 -out config/certs/ca.zip
  2. 解压 cd config/certs/ && unzip ca.zip 得到 ca 目录,包含:ca.crtca.key
  3. 各个节点生成证书:vi instance.yml
instances:- name: node-01dns:- localhost- bigdata-offline-elasticsearch-node01ip:- "xxx1"- name: node-02dns:- localhost- bigdata-offline-elasticsearch-node02ip:- "xxx2"- name: node-03dns:- localhost- bigdata-offline-elasticsearch-node03ip:- "xxx3"- name: "kibana"ip:- "xxx3"
  1. 生成节点证书: bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key
  2. 解压:cd config/certs/ && unzip certs.zip,包含:instance.crtinstance.crt
  3. 各个节点配置 elasticsearch.yml:
xpack.security.enabled: true
xpack.monitoring.collection.enabled: true
xpack.security.http.ssl.enabled: false         # 启用 HTTPS(建议)
xpack.security.transport.ssl.enabled: true     # 节点间加密(必须)#xpack.security.http.ssl.key: certs/instance.key#xpack.security.http.ssl.certificate: certs/instance.crt#xpack.security.http.ssl.certificate_authorities: certs/ca.crt
xpack.security.transport.ssl.key: certs/node-01/node-01.key
xpack.security.transport.ssl.certificate: certs/node-01/node-01.crt
xpack.security.transport.ssl.certificate_authorities: certs/ca/ca.crt
  1. 挨个重启服务
  2. 重置密码:bin/elasticsearch-setup-passwords auto
  3. 验证:curl -k -u elastic:password http://node-01:9200
{"name" : "node-01","cluster_name" : "gpt-v8","cluster_uuid" : "RY5geW7yRPq2YHouM3AQLA","version" : {"number" : "8.14.3","build_flavor" : "default","build_type" : "tar","build_hash" : "d55f984299e0e88dee72ebd8255f7ff130859ad0","build_date" : "2024-07-07T22:04:49.882652950Z","build_snapshot" : false,"lucene_version" : "9.10.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}

配置kibana

  1. 拷贝证书
  2. 配置 kibana.yml
elasticsearch.username: "kibana_system"
elasticsearch.password: "password"
elasticsearch.ssl.certificateAuthorities: [ "/data/services/kibana-8.14.3/config/certs/ca/ca.crt" ]
  1. 重启服务
  2. 使用elastic用户登录

为某个用户分配token

  1. 在kibana的Management的Stack Management,Security创建role和user,配置权限
  2. 为该用户分配token:
POST _security/api_key
{"name": "similar"
}# 查询:
GET _security/api_key

参考


http://www.ppmy.cn/news/1583962.html

相关文章

【bug解决】NameError: name ‘fused_act_ext‘ is not defined

问题 使用basicsr库做超分的时候发现NameError: name fused_act_ext is not defined这个问题&#xff0c;一直不断重复的使用pip uninstall basicsr 和 BASICSR_EXTTrue pip install basicsr 发现一直没有执行编译过程&#xff0c;导致一直推理失败 原因 之前已经安装过basi…

【Python3教程】Python3基础篇之Lambda(匿名函数)

博主介绍:✌全网粉丝22W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…

Redis 中的过期策略和内存淘汰策略

过期策略 Redis 的 过期策略&#xff08;Expiration Policy&#xff09;决定了 如何管理和删除已过期的 key&#xff0c;确保内存资源的合理使用。Redis 提供了 三种过期策略&#xff1a; 1. 惰性删除&#xff08;Lazy Deletion&#xff09; 特点&#xff1a;只有当客户端访问…

YOLO历代发展 图像增强方式 架构

YOLO1 YOLOV5 数据增强 mosaic 仿射变换(Affine)、透视变换(Perspective) 网络搭建

使用idea开发spark程序

新建scala 项目 创建lib目录 将spark jars/ 路径下所有jar 复制到 lib目录 添加依赖 创建scala 程序 package sparkimport org.apache.spark.{SparkConf, SparkContext}object WordCount {def main(args: Array[String]): Unit {val conf new SparkConf().setAppName(&q…

【STM32】初识STM32

目录 1、 什么是STM321.1、STM32的字面含义1.2、STM32诞生的背景 2、STM32能做什么2.1、STM32有什么2.2、身边常见的电子产品 3、STM32怎么选型3.1、STM32分类3.2、ST的32位微控制器产品线3.2.1、STM32F103VET6 3.3、STM32的命名方法3.4、如何分配原理图引脚3.5、数据手册中对引…

数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具&#xff0c;而 TensorBoardX 是其社区驱动的替代品&#xff0c;支持 PyTorch 等其他框架。以下是它…

【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解

《从咖啡杯到财务自由&#xff1a;一个程序员的合成之旅——当代码遇上物理引擎的匠心之作》 &#x1f31f; 这是小游戏开发系列的第四篇送福利文章&#xff0c;感谢一路以来支持和关注这个项目的每一位朋友&#xff01; &#x1f4a1; 文章力求严谨&#xff0c;但难免有疏漏之…