从0到1ES集群搭建实践

news2024/12/25 0:23:03

ES集群搭建实践

创建虚拟机

创建Linux新用户elastic

必须信息

使用elasticsearch账号操作:启动,关闭等

配置网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none" # 关闭dhcp,需要固定ip
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="6dcded77-ba54-4f70-a16c-80535656ba86"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.3.81" #修改每个节点的ip地址
PREFIX="24"
GATEWAY="192.168.3.1" ## 确定网关地址
DNS1="114.114.114.114"
DOMAIN="8.8.8.8"
IPV6_PRIVACY="no"

重启网卡

service network restart

网卡重启报错的话,重启虚拟机

网卡验证

远程登录验证

修改密码命令

passwd 用户名

useradd

passwd

配置Java环境

ES下载地址

https://www.elastic.co/guide/en/elasticsearch/reference/8.8/rpm.html#rpm-repo

ES7

linux version

https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-10

https://www.elastic.co/guide/en/elasticsearch/reference/7.17/rpm.html#rpm-repo

https://www.elastic.co/downloads/past-releases#elasticsearch 浏览各种release版本

docker version

https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docker.html

yuminstall

https://www.elastic.co/guide/en/elasticsearch/reference/7.17/rpm.html#rpm-repo

传输到目标服务器

scp elasticsearch-7.17.10-linux-x86_64.tar.gz elastic@node151:~/

修改服务器 max file descriptors

Linux中修改文件描述符(file descriptors)的方法有多种。下面列举了一些常见的方法:

  1. 命令行参数:在运行程序时,可以使用命令行参数来设置文件描述符的数量。例如,通过ulimit命令可以设置进程的最大文件描述符数量,如ulimit -n 1024表示将最大文件描述符数量设置为1024。

  2. 修改配置文件:可以通过修改系统的配置文件来调整文件描述符的数量限制。在Linux系统中,有两个主要的配置文件与文件描述符相关:/etc/security/limits.conf/etc/sysctl.conf。在这些配置文件中,可以设置文件描述符的软限制和硬限制,以及其他相关参数。

  3. 编程方式:通过编程语言(如C、C++、Java等)的API,可以在程序中设置文件描述符的数量。这通常涉及到使用系统调用(如setrlimit)或编程语言提供的相关函数。

文件描述符的修改与登录用户相关。在Linux系统中,每个用户都有自己的文件描述符限制。用户可以通过上述方法中的命令行参数或配置文件来调整自己的文件描述符数量限制。登录用户可以根据自身需求灵活地调整文件描述符的数量。

** 不同用户之间的文件描述符配置是相互独立的,即每个用户可以根据自己的需要设置文件描述符的数量。因此,文件描述符的修改配置是与用户相关的,不同用户之间的文件描述符是独立的,不会相互影响。每个用户可以根据自己的需求进行个性化的配置,而不会对其他用户产生影响。**

修改limits.conf和sysctl.conf区别

/etc/security/limits.conf/etc/sysctl.conf是两个不同的配置文件,用于在Linux系统中进行不同类型的系统配置调整。

  1. /etc/security/limits.conf

    • 作用:limits.conf文件用于设置用户级别的资源限制,包括文件描述符限制。

    • 针对对象:limits.conf文件的配置是针对用户级别的,可以为每个用户或用户组设置不同的限制。

    • 文件描述符限制:通过nofilenofiles参数可以设置每个用户(或用户组)可以打开的文件描述符的最大数量。该参数的值表示用户(或用户组)可以同时打开的文件或网络套接字的数量。

    • 示例配置:

      sudo vim /etc/security/limits.conf
      ## to add 
      *       hard    nofile    65535
      
    • 生效范围:配置limits.conf文件后,对应的限制会应用于特定的用户或用户组,而不会影响整个系统的其他用户。

  2. /etc/sysctl.conf

    • 作用:sysctl.conf文件用于设置内核参数,包括系统级别的配置。

    • 针对对象:sysctl.conf文件的配置是针对整个系统的内核参数,适用于所有用户。

    • 文件描述符限制:通过修改fs.file-max参数可以调整系统级别的文件描述符限制,指定整个系统可以打开的文件描述符的最大数量。

    • 示例配置:

      sudo vim /etc/sysctl.conf
      
      ## to add 
      fs.file-max = 190000
      
    • 生效范围:配置sysctl.conf文件后,对应的内核参数会影响整个系统的所有用户,即所有用户共享相同的文件描述符限制。

总结:

  • /etc/security/limits.conf用于设置用户级别的资源限制,包括文件描述符限制,配置针对用户或用户组,并且对应的限制仅适用于指定的用户或用户组。
  • /etc/sysctl.conf用于设置系统级别的内核参数,包括文件描述符限制,配置对整个系统生效,所有用户共享相同的限制。这句话指的是所有用户加起来不能超过这个值。所以就要注意limits和sysctl之间的数量关系,sysctl中的配置一定要大于limit

elastic is not in the sudoers file

su 
visudo -f /etc/sudoers

## Then add the user below admin user like below syntax.
elastic ALL=(ALL)  ALL

visudo

修改 max virtual memory areas vm.max_map_count [65530] is too low

sysctl -w vm.max_map_count=262144

当出现"max virtual memory areas vm.max_map_count [65530] is too low"的错误消息时,这表示操作系统的虚拟内存区域数量限制太低,无法满足当前的需求。解决此问题的常见方法是增加vm.max_map_count的值。

在Linux系统中,有几种配置方法可以调整vm.max_map_count的值:

  1. 临时修改:可以使用以下命令临时修改vm.max_map_count的值:

    sysctl -w vm.max_map_count=362144
    ## the setting will only last for the duration of the session. If the host reboots, the setting will be reset to the original value.
    
    ## If you want to set this permanently, you need to edit /etc/sysctl.conf and set vm.max_map_count
    sudo vim /etc/sysctl.conf
    

    其中,xxxx是所需的新值。这种方法只在当前会话中生效,重启后会恢复为默认值。

  2. 持久修改:可以通过修改配置文件来永久修改vm.max_map_count的值。具体的配置文件路径可能因Linux发行版而异,一般是/etc/sysctl.conf/etc/sysctl.d/目录下的配置文件。在该文件中添加或修改以下行:

    vm.max_map_count=362144
    

    然后保存文件并执行以下命令使配置生效:

    sudo sysctl -p
    # Do not forget to reboot or: sysctl --system
    
  3. 通过限制文件:有时,操作系统可能对修改vm.max_map_count的值有限制。在这种情况下,可以尝试通过限制文件来修改该值。在/etc/security/limits.conf文件中,

    vim /etc/security/limits.conf
    

    添加以下行:

    * hard memlock unlimited
    *  soft    nofile  65536
    *  hard    nofile  65536
    elasticsearch   soft    nofile  65536
    elasticsearch   hard    nofile  65536
    

这些配置方法的区别与联系如下:

  • 临时修改适用于临时调整配置,对当前会话有效,重启后会恢复为默认值。
  • 持久修改适用于永久性调整配置,会将修改写入配置文件中,重启后仍然有效。
  • 通过限制文件修改vm.max_map_count的值可以绕过一些操作系统对配置修改的限制。

对于这个问题,不同用户无需单独配置。一旦修改了vm.max_map_count的值,对于所有用户来说都会生效。因为该配置是作用于整个操作系统的虚拟内存区域,所以不需要为每个用户单独配置。任何登录到系统的用户都将受到新的vm.max_map_count值的影响。

如何验证max file descriptors配置是否生效

ulimit -n

max file descriptors too low 没有生效原因

  • 没有改配置文件

vim /etc/security/limits.conf

* hard memlock unlimited
*  soft    nofile  65536
*  hard    nofile  65536
elasticsearch   soft    nofile  65536
elasticsearch   hard    nofile  65536

sudo vim /etc/sysctl.conf

vm.max_map_count=362144
  • 没有执行
sudo sysctl -p
  • 没有重启终端

通过执行ulimit -n如果仍然不行则:

如果仍然不行,则退出当前shell session(terminal),重新登录。亲测有效。

解压文件

tar -xzf you.tar.gz

z : gz

x:extract

f: file name?

修改配置文件

单集群单节点配置

cluster.name: zgc-cluster
node.name: node151
network.host: 172.16.193.151
http.port: 9200
transport.port: 9300
## discovery.seed_hosts: ["172.16.193.152:9300","172.16.193.153:9300"]
cluster.initial_master_nodes: ["node151"]
##cluster.initial_master_nodes: ["node152"]

启动后验证

http://172.16.193.151:9200/

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch笔记:transformer

来自B站视频,API查阅,TORCH.NN seq2seq 可以是 CNN,RNN,transformer nn.Transformer 关键源码: encoder_layer TransformerEncoderLayer(d_model, nhead, dim_feedforward, dropout,activation, layer_norm_eps, ba…

Github官网进不去怎么办?Github无法访问怎么办?

1.操作方法: 打开hosts文件,可能需要管理员权限。 win10 hosts位置:C:\Windows\System32\drivers\etc 在末尾新建一行,添加如下内容: 2.1方法一 Host文件追加 140.82.112.26 alive.github.com140.82.114.25 live.…

【electron】 客户端调试小技巧

1、谷歌浏览器输入:chrome://inspect打开开发者工具 可以方便拦截electron内的请求,也可以通过f12的开发者工具中的source打断点。 虽然在electron客户端内也能审查元素。 PS:但是其有局限性,如果是窗体套窗体(webview)&#xff…

Android——基本控件(十)

1. 图片视图:ImageView 1.1 知识点 (1)掌握ImageView组件的使用; (2)掌握图片的保存; 1.2 具体内容 之前我们讲过了RadioGroup是提供了一个存放RadioButton的一个容器,ImageVie…

STM32速成笔记—中断

文章目录 一、什么是中断二、中断的相关概念2.1 中断优先级2.2 中断嵌套2.3 中断服务函数2.4 中断标志位 三、外部中断EXIT四、中断程序配置4.1 设置中断分组并使能中断4.2 初始化EXIT4.3 编写中断服务函数 五、注意事项 一、什么是中断 首先介绍一下什么是中断。在实际开发过…

OpenCV 笔记_2

文章目录 笔记_2图像尺寸变换resize 图像缩放 (重置图像大小)flip 图像翻转hconcat 横向连接vconcat 纵向连接 图像方式变换warpAffine 仿射变换函数:矩阵M(2*3)getRotationMatrix2D 获取图像旋转矩阵M:矩阵M&#xff…

电脑出现MSVCP100.dll丢失错误怎么办?

MSVCP100.dll是一个Windows系统文件,它可以确保Windows程序正确平稳运行,如果该文件安装不正确、丢失或损坏,则使用该文件的应用程序将无法正常启动,会出现“无法启动此程序,因为计算机中丢失MSVCP100.dll”的错误提示…

OpenCV 笔记_4

文章目录 笔记_4图像细化thinning 图像细化函数 轮廓检测findContours 轮廓检测函数drawContours 轮廓绘制函数contourArea 计算轮廓面积:返回值 double类型arcLength 计算轮廓长度:返回值 double类型 轮廓外接多边形boundingRect 给定轮廓的外接矩形min…

Hook攻防之InlineHook

什么是InlineHook Inline Hook,又称为超级Hook,是一种强大而又灵活的Hook技术。 Inline Hook的主要思想就是直接修改目标函数的代码,通常是在目标函数的开头插入一个跳转指令(jmp)。这个跳转指令会将程序的执行流跳转…

PPT写作要义:信息效率

PPT写作的要义:信息效率 抖音里一个有货的讲师的总结 花里胡哨的PPT一定偏离了初衷 这点上要像互联网公司学习 其实有些PPT制作的初衷,就是搞神秘感 故意让人听不懂 趣讲大白话:大道至简 【趣讲信息科技198期】 ****************************…

基于Java绿色农产品推广应用网站设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

CRC原理

文章目录 简介 CRC思想错误检测基本思想多项式运算没有进位的二进制计算 CRC计算方式发送方计算接收方校验多项式选择 CRC实现原理CRC8整体处理数据单个处理数据与整体数据处理比较使用查找表加速计算 扩展到CRC16整体处理数据单个处理数据与整体数据处理比较使用查找表加速计算…

项目管理中,如何实现有效的项目预算管理?

在《PMBOK指南》第七版中,变化较大的一点是从以成果为导向演变为以价值为导向,其十二项指导原则之一——“聚焦于价值”也阐述了价值是项目的最终成功指标和驱动因素。在这一指导原则下,项目经理就不能只关注在范围、进度、成本三重要素约束下…

UmiJs - 拆包优化

UmiJs - 拆包优化 前言一. 如何拆包,怎么拆1.1 分析自己项目的编译产物结构1.2 开始拆包 二. 有哪些注意点2.1 样式丢失2.2 存在需单独打包的页面 前言 我们在写前端代码的时候,难以避免的是,我们可能引入的依赖越来越多。那么随之而来的&am…

Redis入门 - Lua脚本

原文首更地址,阅读效果更佳! Redis入门 - Lua脚本 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-scription.html Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 …

【Golang系列】Golang环境配置和第一个Go程序

⭐️前面的话⭐️ 本篇文章将介绍Golang语言的环境配置,以及如何在VS code中运行第一个golang程序。 📒博客主页:未见花闻的博客主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📌本文由未…

Pytest教程__定制allure报告(12)

定制报告需要先导入allure模块,再使用以下装饰器方法: feature: 标注主要功能模块。story: 标注feature功能模块下的分支功能。description:在报告中显示用例描述。step: 标注测试用例步骤。issue && testcase:标注用例关…

单链表刷题(1-3)

目录 反转链表 移除元素 合并有序链表 反转链表 力扣 我们用取头节点依次进行头插的方式解决这道题。需要注意的是头插前要保存下一个节点。 struct ListNode* reverseList(struct ListNode* head){typedef struct ListNode SL;SL* cur head;SL* rhead NULL;//初始指向空…

TienChin 代码格式化-项目结构大改造

代码格式化 博主下载项目之后发现,整体的代码格式化风格,与 C 那种语言很相似,说明这个作者之前就是从事这块的导致风格有点类似,我们来格式化一下,当然这不是必要的,我是没习惯这种写法所以这里我写一下我…

2023年测试岗,你真的懂测试吗?凭什么他能月薪25k+

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试人员应该居安…