当前位置: 首页 > news >正文

Elasticsearch 安装和配置脚本文档

Elasticsearch 安装和配置脚本文档

目录

  • **Elasticsearch 安装和配置脚本文档**
    • 0.**概述**
    • 1.**使用方法:**
    • 2.**脚本步骤:**
    • 3. **完整代码如下:**

0.概述

此Bash脚本用于自动化在CentOS 7系统上安装和配置Elasticsearch(ES)分布式搜索引擎。脚本包括了创建集群、配置节点、安装Java环境、以及设置必要的系统和ES参数。执行脚本后,将会完成Elasticsearch的安装、配置和启动。

1.使用方法:

  1. 确保脚本具有执行权限:
    chmod +x elasticsearch_setup_script.sh
    
  2. 执行脚本:
    ./elasticsearch_setup_script.sh
    

2.脚本步骤:

脚本步骤:

  1. 变量定义:
  • CLUSTER_NAME:Elasticsearch集群的名称。
  • NODE_NAME:当前节点的名称。
  • IPS:节点的IP地址列表。
  • HOSTS:节点对应的主机名列表。
  • 其他路径和配置变量。
  1. 更新 /etc/hosts 文件:
  • 自动检查并添加节点IP地址和主机名到 /etc/hosts 文件。
  1. 检查并创建 elasticsearch 用户:
  • 检查是否已存在 elasticsearch 用户,如果不存在则创建。
  1. 检查和创建 ES 目录:
  • 检查数据和日志目录是否存在,如果不存在则创建。
  1. 检查 Java 环境:
  • 检查Java环境是否已安装,如果未安装则退出脚本。
  1. 安装 Elasticsearch:
  • 安装指定版本的 Elasticsearch。
  1. 修改 elasticsearch.yml 配置文件:
  • 替换配置文件中的集群名、节点名、数据和日志路径等参数。
  1. 添加 X-Pack 配置:
  • 启用安全特性和 SSL。
  1. 修改系统配置:
  • 调整系统参数以满足 Elasticsearch 的需求。
  1. 授权目录权限和配置 ES_JAVA_HOME:
  • 授予数据和日志目录以 elasticsearch 用户的权限。
  • 配置 ES_JAVA_HOME。
  1. 启动 Elasticsearch:
  • 启用并启动 Elasticsearch 服务。
  1. 防火墙配置:
  • 允许 9200 端口通过防火墙。
  1. 设置密码:
  • 使用交互式命令设置 Elasticsearch 密码。
  1. 完成消息:
  • 显示安装和配置完成的消息。
    注意:
  • 该脚本假定在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.**使用方法&#xff1a;**2.**脚本步骤&#xff1a;**3. **完整代码如下&#xff1a;** 0.概述 此Bash脚本用于自动化在CentOS 7系统上安装和配置Elasticsearch&#xff08;ES&#x…...

【Android辟邪】之:gradle——在项目间共享依赖关系版本

翻译和简单修改自&#xff1a;https://docs.gradle.org/current/userguide/platforms.html#sec:sharing-catalogs 建议看原文&#xff08;有能力的话&#xff09; 现在 Gradle 脚本可以使用两种语法编写&#xff1a;Kotlin 和 Groovy 本文只使用kotlin脚本语法&#xff0c;更…...

Qt 项目树工程,拷贝子项目dll到子项目exe运行路径

1、项目树工程 2、项目树列表 ---- BuildAll -------- App &#xff08;exe&#xff09; -------- Database &#xff08;dll&#xff09; 注&#xff1a;使用 子项目–>添加库–>内部库 的方式 3、qmake 内置的变量 $$OUT_PWD 表示输出文件&#xff08;如可执行文件…...

进程间通信方式

1>内核提供的原始通信方式有三种 1&#xff09;无名管道 2&#xff09;有名管道 3&#xff09;信号 2>System V提供了三种通信方式 4&#xff09;消息队列 5&#xff09;共享内存 6&#xff09;信号量&#xff08;信号灯集&#xff09; 3>套接字通信 7)socke…...

[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)

目录 一、匿名管道 1.什么是管道&#xff1f;什么是匿名管道&#xff1f; 2.怎么创建匿名管道&#xff08;函数&#xff09; 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道&#xff1f;匿名管道有什么用&#xff1f;&#xff08;例子&#xff09; 二、命名…...

Python调用matlab程序

matlab官网&#xff1a;https://ww2.mathworks.cn/?s_tidgn_logo matlab外部语言和库接口&#xff0c;包括 Python、Java、C、C、.NET 和 Web 服务。 matlab和python的版本 安装依赖配置 安装matlab的engine 找到matlab的安装目录&#xff1a;“xxx\ extern\engines\python…...

FlinkSql 窗口函数

Windowing TVF 以前用的是Grouped Window Functions&#xff08;分组窗口函数&#xff09;&#xff0c;但是分组窗口函数只支持窗口聚合 现在FlinkSql统一都是用的是Windowing TVFs&#xff08;窗口表值函数&#xff09;&#xff0c;Windowing TVFs更符合 SQL 标准且更加强大…...

十分钟GIS——geoserver+postgis+udig从零开始发布地图服务

1数据库部署 1.1PostgreSql安装 下载到安装文件后&#xff08;postgresql-9.2.19-1-windows-x64.exe&#xff09;&#xff0c;双击安装。 指定安装目录&#xff0c;如下图所示 指定数据库文件存放目录位置&#xff0c;如下图所示 指定数据库访问管理员密码&#xff0c;如下图所…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Span组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Span组件 鸿蒙&#xff08;HarmonyOS&#xff09;作为Text组件的子组件&#xff0…...

Leetcode—42. 接雨水【困难】

2024每日刷题&#xff08;112&#xff09; 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 - 什么是直方图?如何绘制图像的直方图?如何对直方图进行均匀化处理?

什么是直方图&#xff1f; 直方图是一种统计图&#xff0c;用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分&#xff0c;然后计算在每个区间或组内的数据频数或频率&#xff08;即数据出现的次数或占比&#xff09;&#xff0c;然后用矩形或者柱形图的形式将这…...

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 入门&#xff08;1&#xff09;--安装、路由规则、多应用模式 thinkphp6 入门&#xff08;1&#xff09;--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门&#xff08;2&#xff09;--视图、渲染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&#xff1a;正向解析 1.1关闭客户端和服务端的安全软件&#xff0c;安装bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install bind -y [rootnod…...

小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】

71. 简化路径 小白渣翻译 给定一个字符串 path &#xff0c;它是 Unix 风格文件系统中文件或目录的绝对路径&#xff08;以斜杠 ‘/’ 开头&#xff09;&#xff0c;将其转换为简化的规范路径。 在 Unix 风格的文件系统中&#xff0c;句点 ‘.’ 指的是当前目录&#xff0c;…...

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…...

YY调音台:音频后期处理

我从事影视后期处理的工作&#xff0c;主要负责音频、音效合成这块工作内容。在影视作品中&#xff0c;声音不仅仅是背景元素&#xff0c;它在叙事和创造情感氛围上发挥着至关重要的作用。我们的工作不仅要让听众听到声音&#xff0c;更要让他们通过声音感受到情感的波动和故事…...

一键部署一个监控系统hertzbeat

效果 特点 一站式监控告警通知&#xff0c;支持应用服务&#xff0c;数据库&#xff0c;操作系统&#xff0c;中间件&#xff0c;云原生&#xff0c;网络等。 易用友好&#xff0c;无需 Agent&#xff0c;全页面操作&#xff0c;鼠标点一点就能监控告警。 强大监控模版能力&…...

为电子表格嵌入数据库,Excel/WPS一键升级为管理系统

将Excel表格转化为管理系统&#xff0c;这款工具能够实现只需导入表格数据&#xff0c;即可自动生成相应的软件和APP。 表格办公的烦恼&#xff0c;有遇到吧&#xff1f; 对于具有一定规模的企业而言&#xff0c;各类表格如同繁星般众多&#xff0c;既有日常使用的常规表格&a…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...