Elasticsearch 安装和配置脚本文档
Elasticsearch 安装和配置脚本文档
目录
- **Elasticsearch 安装和配置脚本文档**
- 0.**概述**
- 1.**使用方法:**
- 2.**脚本步骤:**
- 3. **完整代码如下:**
0.概述
此Bash脚本用于自动化在CentOS 7系统上安装和配置Elasticsearch(ES)分布式搜索引擎。脚本包括了创建集群、配置节点、安装Java环境、以及设置必要的系统和ES参数。执行脚本后,将会完成Elasticsearch的安装、配置和启动。
1.使用方法:
- 确保脚本具有执行权限:
chmod +x elasticsearch_setup_script.sh - 执行脚本:
./elasticsearch_setup_script.sh
2.脚本步骤:
脚本步骤:
- 变量定义:
CLUSTER_NAME:Elasticsearch集群的名称。NODE_NAME:当前节点的名称。IPS:节点的IP地址列表。HOSTS:节点对应的主机名列表。- 其他路径和配置变量。
- 更新 /etc/hosts 文件:
- 自动检查并添加节点IP地址和主机名到
/etc/hosts文件。
- 检查并创建 elasticsearch 用户:
- 检查是否已存在 elasticsearch 用户,如果不存在则创建。
- 检查和创建 ES 目录:
- 检查数据和日志目录是否存在,如果不存在则创建。
- 检查 Java 环境:
- 检查Java环境是否已安装,如果未安装则退出脚本。
- 安装 Elasticsearch:
- 安装指定版本的 Elasticsearch。
- 修改 elasticsearch.yml 配置文件:
- 替换配置文件中的集群名、节点名、数据和日志路径等参数。
- 添加 X-Pack 配置:
- 启用安全特性和 SSL。
- 修改系统配置:
- 调整系统参数以满足 Elasticsearch 的需求。
- 授权目录权限和配置 ES_JAVA_HOME:
- 授予数据和日志目录以 elasticsearch 用户的权限。
- 配置 ES_JAVA_HOME。
- 启动 Elasticsearch:
- 启用并启动 Elasticsearch 服务。
- 防火墙配置:
- 允许 9200 端口通过防火墙。
- 设置密码:
- 使用交互式命令设置 Elasticsearch 密码。
- 完成消息:
- 显示安装和配置完成的消息。
注意: - 该脚本假定在CentOS 7环境中运行,可能需要根据其他发行版进行调整。
- 在生产环境中运行脚本之前,请检查脚本并根据需要调整变量.
此脚本按原样提供,使用时请小心。建议在部署之前了解其功能并根据具体要求进行调整。用户负责确保在其环境中设置的安全性和兼容性。
3. 完整代码如下:
#!/bin/bashset -e# 定义变量
CLUSTER_NAME="tech-es"
## 节点名称修改
NODE_NAME="node-2"
IPS=("192.168.2.49" "192.168.2.50" "192.168.2.51")
HOSTS=("node-1" "node-2" "node-3")SEED_HOSTS=$(printf ',"%s"' "${IPS[@]}")
SEED_HOSTS=[${SEED_HOSTS:1}]
INITIAL_MASTER_NODES=$(printf ',"%s"' "${HOSTS[@]}")
INITIAL_MASTER_NODES=[${INITIAL_MASTER_NODES:1}]ES_PKG="/usr/local/dhtech/autoinstall/lib/elasticsearch-7.17.8-x86_64.rpm"
ES_CONFIG="/etc/elasticsearch/elasticsearch.yml"
LIMITS_CONF="/etc/security/limits.conf"
PROC_CONF="/etc/security/limits.d/20-nproc.conf"
SYSCTL_CONF="/etc/sysctl.conf"
ES_DIR="/dhxdata/es"
PROFILE="/etc/profile"
JAVA_HOME_DIR="/usr/local/java/jdk1.8"# 更新 /etc/hosts 文件
for (( i=0; i<${#IPS[@]}; i++ ));
doif ! grep -q "${IPS[i]} ${HOSTS[i]}" /etc/hosts; thenecho "${IPS[i]} ${HOSTS[i]}" >> /etc/hostsfi
done
# 检查并创建用户
if id "elasticsearch" >/dev/null 2>&1; thenecho "elasticsearch user exists"
elseuseradd elasticsearchecho "elasticsearch user has been created"
fi
# 检查ES的存储目录和日志目录是否存在,不存在则创建
if [ ! -d "$ES_DIR/data" ]; thenmkdir -p "$ES_DIR/data"
fi
if [ ! -d "$ES_DIR/logs" ]; thenmkdir -p "$ES_DIR/logs"
fi
# 检查Java环境
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ ! -n "${java_version}" ]]; thenecho "未安装Java开发环境:${java_version}"exit 1
fi# 安装
if [ ! -f "$ES_PKG" ]; thenecho "Elasticsearch安装包不存在,确认文件后请重新运行脚本。"exit 1
firpm -ivh "$ES_PKG"# 修改elasticsearch.yml配置
sed -i "s|^[#]*\s*cluster.name:.*|cluster.name: $CLUSTER_NAME|" "$ES_CONFIG"
sed -i "s|^[#]*\s*node.name:.*|node.name: $NODE_NAME|" "$ES_CONFIG"
sed -i "s|path.data:.*|path.data: $ES_DIR/data|" "$ES_CONFIG"
sed -i "s|path.logs:.*|path.logs: $ES_DIR/logs|" "$ES_CONFIG"
sed -i "s|^[#]*\s*network.host:.*|network.host: 0.0.0.0|" "$ES_CONFIG"
sed -i "s|^[#]*\s*http.port:.*|http.port: 9200|" "$ES_CONFIG"
sed -i "s|^[#]*\s*discovery.seed_hosts:.*|discovery.seed_hosts: $SEED_HOSTS|" "$ES_CONFIG"
# sed -i "s|^[#]*\s*cluster.initial_master_nodes:.*|cluster.initial_master_nodes: $INITIAL_MASTER_NODES|" "$ES_CONFIG"
sed -i "s|^[#]*\s*cluster.initial_master_nodes:.*|cluster.initial_master_nodes: [\"node-1\"]|" "$ES_CONFIG"# 添加以下三行
echo "xpack.security.enabled: true" >> "$ES_CONFIG"
echo "xpack.license.self_generated.type: basic" >> "$ES_CONFIG"
echo "xpack.security.transport.ssl.enabled: true" >> "$ES_CONFIG"# 修改系统配置
echo "elasticsearch soft nofile 65536
elasticsearch hard nofile 65536" >> "$LIMITS_CONF"
echo "elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
* hard nproc 4096" >> "$PROC_CONF"
echo "vm.max_map_count=655360" >> "$SYSCTL_CONF"sysctl -p# 创建数据和日志的目录,并授予权限
chown -R elasticsearch:elasticsearch "$ES_DIR"# 配置ES_JAVA_HOME
echo "ES_JAVA_HOME=$JAVA_HOME_DIR
export ES_JAVA_HOME" >> "$PROFILE"
source "$PROFILE"# 启动Elasticsearch
systemctl enable elasticsearch
systemctl start elasticsearch# 允许9200端口通过防火墙
firewall-cmd --zone=public --add-port=9200/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload# 设置密码
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
echo "Elasticsearch安装已完成!"相关文章:
Elasticsearch 安装和配置脚本文档
Elasticsearch 安装和配置脚本文档 目录 **Elasticsearch 安装和配置脚本文档**0.**概述**1.**使用方法:**2.**脚本步骤:**3. **完整代码如下:** 0.概述 此Bash脚本用于自动化在CentOS 7系统上安装和配置Elasticsearch(ES&#x…...
【Android辟邪】之:gradle——在项目间共享依赖关系版本
翻译和简单修改自:https://docs.gradle.org/current/userguide/platforms.html#sec:sharing-catalogs 建议看原文(有能力的话) 现在 Gradle 脚本可以使用两种语法编写:Kotlin 和 Groovy 本文只使用kotlin脚本语法,更…...
Qt 项目树工程,拷贝子项目dll到子项目exe运行路径
1、项目树工程 2、项目树列表 ---- BuildAll -------- App (exe) -------- Database (dll) 注:使用 子项目–>添加库–>内部库 的方式 3、qmake 内置的变量 $$OUT_PWD 表示输出文件(如可执行文件…...
进程间通信方式
1>内核提供的原始通信方式有三种 1)无名管道 2)有名管道 3)信号 2>System V提供了三种通信方式 4)消息队列 5)共享内存 6)信号量(信号灯集) 3>套接字通信 7)socke…...
[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)
目录 一、匿名管道 1.什么是管道?什么是匿名管道? 2.怎么创建匿名管道(函数) 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道?匿名管道有什么用?(例子) 二、命名…...
Python调用matlab程序
matlab官网:https://ww2.mathworks.cn/?s_tidgn_logo matlab外部语言和库接口,包括 Python、Java、C、C、.NET 和 Web 服务。 matlab和python的版本 安装依赖配置 安装matlab的engine 找到matlab的安装目录:“xxx\ extern\engines\python…...
FlinkSql 窗口函数
Windowing TVF 以前用的是Grouped Window Functions(分组窗口函数),但是分组窗口函数只支持窗口聚合 现在FlinkSql统一都是用的是Windowing TVFs(窗口表值函数),Windowing TVFs更符合 SQL 标准且更加强大…...
十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
1数据库部署 1.1PostgreSql安装 下载到安装文件后(postgresql-9.2.19-1-windows-x64.exe),双击安装。 指定安装目录,如下图所示 指定数据库文件存放目录位置,如下图所示 指定数据库访问管理员密码,如下图所…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Span组件 鸿蒙(HarmonyOS)作为Text组件的子组件࿰…...
Leetcode—42. 接雨水【困难】
2024每日刷题(112) Leetcode—42. 接雨水 空间复杂度为O(n)的算法思想 实现代码 class Solution { public:int trap(vector<int>& height) {int ans 0;int n height.size();vector<int> l(n);vector<int> r(n);for(int i 0; …...
[Python] opencv - 什么是直方图?如何绘制图像的直方图?如何对直方图进行均匀化处理?
什么是直方图? 直方图是一种统计图,用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分,然后计算在每个区间或组内的数据频数或频率(即数据出现的次数或占比),然后用矩形或者柱形图的形式将这…...
ppi rust开发 python调用
创建python的一个测试工程 python -m venv venv .\venv\Scripts\activatepip install cffi创建一个rust的lib项目 cargo new --lib pyrustlib.rs #[no_mangle] pub extern "C" fn rust_add(x: i32, y: i32) -> i32 {x y }Cargo.toml [package] name "p…...
网站后端开发 thinkphp6 入门教程合集(更新中)
thinkphp6 入门(1)--安装、路由规则、多应用模式 thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值 thinkphp6 入门&#x…...
Web前端框架-Vue(初识)
文章目录 web前端三大主流框架**1.Angular****2.React****3.Vue**什么是Vue.js 为什么要学习流行框架框架和库和插件的区别一.简介指令v-cloakv-textv-htmlv-pre**v-once**v-onv-on事件函数中传入参数事件修饰符双向数据绑定v-model 按键修饰符自定义按键修饰符别名v-bind(属性…...
配置dns服务的正反向解析
服务端IP客户端IP网址192.168.153.137192.168.153.www.openlab.com 1:正向解析 1.1关闭客户端和服务端的安全软件,安装bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install bind -y [rootnod…...
小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】
71. 简化路径 小白渣翻译 给定一个字符串 path ,它是 Unix 风格文件系统中文件或目录的绝对路径(以斜杠 ‘/’ 开头),将其转换为简化的规范路径。 在 Unix 风格的文件系统中,句点 ‘.’ 指的是当前目录,…...
电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)
文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…...
YY调音台:音频后期处理
我从事影视后期处理的工作,主要负责音频、音效合成这块工作内容。在影视作品中,声音不仅仅是背景元素,它在叙事和创造情感氛围上发挥着至关重要的作用。我们的工作不仅要让听众听到声音,更要让他们通过声音感受到情感的波动和故事…...
一键部署一个监控系统hertzbeat
效果 特点 一站式监控告警通知,支持应用服务,数据库,操作系统,中间件,云原生,网络等。 易用友好,无需 Agent,全页面操作,鼠标点一点就能监控告警。 强大监控模版能力&…...
为电子表格嵌入数据库,Excel/WPS一键升级为管理系统
将Excel表格转化为管理系统,这款工具能够实现只需导入表格数据,即可自动生成相应的软件和APP。 表格办公的烦恼,有遇到吧? 对于具有一定规模的企业而言,各类表格如同繁星般众多,既有日常使用的常规表格&a…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
