Elasticsearch集群部署,配置head监控插件

Elasticsearch是一个开源搜索引擎,基于Lucene搜索库构建,被广泛应用于全文搜索、地理位置搜索、日志处理、商业分析等领域。它采用分布式架构,可以处理大规模数据集和支持高并发访问。Elasticsearch提供了一个简单而强大的API,可以轻松地将数据存储和检索,支持实时搜索和聚合分析,可用于构建各种类型的应用程序。Elasticsearch还提供了许多有用的插件和工具,例如Kibana、Logstash和Beats等,可以帮助用户更好地管理和可视化数据。

集群部署流程:

安装软件主机名IP地址系统版本配置
Elasticsearchelk-1192.168.231.245centos7.5.18043核4G
Elasticsearches1192.168.231.246centos7.5.18042核4G
Elasticsearches2192.168.231.247centos7.5.18042核4G

- 软件版本:elasticsearch-7.13.2.tar.gz
- 示例节点:10.3.145.14

一,安装部署jdk

可以自行安装,es安装包中自带了jdk

二,安装配置ES

1.本地域名解析

三台机器都做相同的操作

[root@elk-1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.36.192.100 package.qf.com
192.168.231.245 elk-1
192.168.231.246 es1
192.168.231.247 es2

2.创建运行ES的普通用户设置密码

三台机器做相同的操作

[root@elk-1 ~]# useradd es
[root@elk-1 ~]# echo "123" | passwd --stdin "es"

3.上传包,解压,配置配置文件

三台机器做相同的操作

本文章配备的实验用到的包,解压用即可

上传到root
[root@elk-1 ~]# tar zxvf  elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/[root@elk-1 ~]# cd /usr/local
[root@elk-1 local]# mv elasticsearch-7.13.2-linux-x86_64   es   #改名
修改配置文件
[root@elk-1 local]# cd es
[root@elk-1 es]# cd config/
[root@elk-1 config]# cat elasticsearch.ymlcluster.name: cloud2304
cluster.initial_master_nodes: ["192.168.231.245","192.168.231.246","192.168.231.247"] 
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.231.246","192.168.231.247"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"
es1的配置文件
[root@es1 ~]# cat /usr/local/es/config/elasticsearch.ymlcluster.name: cloud2304
cluster.initial_master_nodes: ["192.168.231.245","192.168.231.246","192.168.231.247"] 
node.name: elk02
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.231.245","192.168.231.247"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"
es2的配置文件
[root@es2 ~]# cat /usr/local/es/config/elasticsearch.ymlcluster.name: cloud2304
cluster.initial_master_nodes: ["192.168.231.245","192.168.231.246","192.168.231.247"] 
node.name: elk03
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.231.246","192.168.231.245"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"

提醒:

1. elasticsearch.yml 配置文件内删除多余的空格,对空格要求较严格

2. 单节点模式下,将discovery开头的行注释

3. cluster.name 是集群名称,实验三个名字相同

4. cluster.initial_master_nodes  集群的IP,集群有的ip都写入 用逗号隔开

5. node.name  是节点名称 实验为了观察集群,因此设置为递增的名字

6. discovery.seed_hosts    提供其他 Elasticsearch 服务节点的单点广播发现功能,这里填写除了本机的其他ip

4.配置项含义

cluster.name    集群名称,各节点配成相同的集群名称。
cluster.initial_master_nodes 集群ip,默认为空,如果为空则加入现有集群,第一次需配置
node.name       节点名称,各节点配置不同。
node.master     指示某个节点是否符合成为主节点的条件。
node.data       指示节点是否为数据节点。数据节点包含并管理索引的一部分。
path.data       数据存储目录。
path.logs       日志存储目录。
bootstrap.memory_lock       内存锁定,是否禁用交换,测试环境建议改为false。
bootstrap.system_call_filter    系统调用过滤器。
network.host    绑定节点IP。
http.port       rest api端口。
discovery.seed_hosts    提供其他 Elasticsearch 服务节点的单点广播发现功能,这里填写除了本机的其他ip
discovery.zen.minimum_master_nodes  集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping_timeout      节点在发现过程中的等待时间。
discovery.zen.fd.ping_retries        节点发现重试次数。
http.cors.enabled               是否允许跨源 REST 请求,用于允许head插件访问ES。
http.cors.allow-origin              允许的源地址。

5. 设置JVM堆大小,7.0默认是4G

三台机器做相同的步骤

[root@elk-1 ~]# sed -i 's/## -Xms4g/-Xms4g/' /usr/local/es/config/jvm.options  
[root@elk-1 ~]# sed -i 's/## -Xmx4g/-Xmx4g/' /usr/local/es/config/jvm.options
注意:

 确保堆内存最小值(Xms)与最大值(Xmx)的大小相同,防止程序在运行时改变堆内存大小。 如果系统内存足够大,将堆内存最大和最小值设置为31G,因为有一个32G性能瓶颈问题。 堆内存大小不要超过系统内存的50%

6. 创建ES的数据目录以及日志存储目录

三台机器做相同的步骤

[root@elk-1 config]# mkdir /data/elasticsearch/{data,logs} -p

7. 修改安装目录以及存储目录的权限

三台机器做相同的步骤

[root@elk-1 ~]# chown -R es.es /data/elasticsearch
[root@elk-1 ~]# chown -R es.es /usr/local/es

三,系统优化

1.增加最大文件的打开数

三台机器做相同的操作

永久生效的办法

[root@elk-1 ~]# echo "* soft nofile 65536" >> /etc/security/limits.conf

2.增加最大进程数

三台机器做相同的操作

[root@elk-1 ~]# echo "* soft nproc 65536" >> /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
更多的参数调整可以直接用这个

3.增加最大的内存映射数

三个机器相同的操作

[root@elk-1 ~]# echo "vm.max_map_count=262144" >> /etc/sysctl.conf

4. 添加elasticsearch用户拥有的客串建文件描述的权限,需要65536

三个机器相同的操作

vim   /etc/security/limits.conf在最后添加
* hard nofile 65536
* hard nofile 65536

四,启动ES

1.切换普通用户启动es

三台机器相同的操作

[root@elk-1 ~]#  su es[es@elk-1 root]$ /usr/local/es/bin/elasticsearch & 
屏幕会产生大量数据,对不同计算机性能可能启动时间不同,放置后台启动观察端口,如果有9200 那么就可以成功访问
[es@es2 root]$ ss -nplt | grep 9
LISTEN     0      128       [::]:9200                  [::]:*                   users:(("java",pid=1465,fd=279))
LISTEN     0      128       [::]:9300                  [::]:*                   users:(("java",pid=1465,fd=277))

浏览器访问集群

访问: http://192.168.231.245:9200 

安装部署head监控插件(只在第一台es部署)

1. 安装node

有包直接上传使用

rz  上传到/root解压
[root@elk-1 ~]# tar -zxf node-v10.0.0-linux-x64.tar.gz –C /usr/local改名 
[root@elk-1 ~]# cd /usr/local
[root@elk-1 local]#  mv  node-v10.0.0-linux-x64  node编辑环境变量
vim /etc/profile.d/node.shNODE_HOME=/usr/local/node
PATH=$PATH:$NODE_HOME/bin重载变量
[root@elk-1 ~]#  source /etc/profile.d/node.sh检查node版本号
[root@elk-1 ~]#  node --version

2. 下载head插件

有包直接上传到/root
rz   elasticsearch-head-master.zip解压 unzip
[root@elk-1 ~]# unzip –d /usr/local elasticsearch-head-master.zip

3. 安装grunt

[root@elk-1 ~]# cd /usr/local/elasticsearch-head-master安装grunt-cli
[root@elk-1elasticsearch-head-master]# npm install -g grunt-cli
[root@elk-1 elasticsearch-head-master]# grunt -version   查看grunt版本
grunt-cli v1.4.3

安装grunt-cil出错

解决办法在执行一次即可

4. 修改head源码

[root@elk-1 ~]#vi /usr/local/elasticsearch-head-master/Gruntfile.js  +95 添加hostname,注意在上一行末尾添加逗号,hostname 不需要添加逗号

[root@elk-1 ~]# vim /usr/local/elasticsearch-head-master/_site/app.js +4373  原本是http://localhost:9200 ,如果head和ES不在同一个节点,注意修改成ES的IP地址,写成elk-1的IP地址

5. 下载head必要的文件

有包直接上传到/root即可
rz  phantomjs-2.1.1-linux-x86_64.tar.bz2下载bzip2
[root@elk-1 ~]# yum -y install bzip2创建存放目录
[root@elk-1 ~]# mkdir /tmp/phantomjs将文件移动过去即可,不需要解压
[root@elk-1 ~]# mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /tmp/phantomjs/更改权限
[root@elk-1 ~]# chmod 777 /tmp/phantomjs -R

6. 运行head

[root@elk-1 ~]# cd /usr/local/elasticsearch-head-master/[root@elk-1 ~]# npm install 如果报错
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the phantomjs-prebuilt@2.1.16 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-04-21T09_49_34_207Z-debug.log

 解决办法

[root@elk-1 ~]#  npm install phantomjs-prebuilt@2.1.16 --ignore-scripts # 具体的版本按照上述报错修改

7. 放入后台运行,查看端口

[root@elk-1 ~]# nohup grunt server &
[root@elk-1 ~]# ss -tnlp有9100即可访问head

前台运行grunt运行报错

这个错误提示表明在运行grunt server命令时,缺少一些必要的grunt插件。

解决办法

重复步骤,直到所有缺少的grunt插件都被安装。

npm install grunt-contrib-clean --save-dev

成功

8.测试访问

http://192.168.231.245:9100

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

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

相关文章

全球SAR卫星大盘点与回波数据处理专栏目录

近年来,随着商业航天的蓬勃发展,商业SAR卫星星座成为美欧等主要航天国家的发展重点,目前已在全球范围内涌现出众多初创公司进军商业SAR领域,开始构建大规模商业微小SAR卫星星座,其所具有的创新服务能力将为传统的商业遥…

uniapp IOS从打包到上架流程(详细简单)

​ uniapp IOS从打包到上架流程(详细简单) 原创 1.登入苹果开发者网站,打开App Store Connect ​ 2.新App的创建 点击我的App可以进入App管理界面,在右上角点击➕新建App 即可创建新的App,如下图: ​ 3.…

VUE简易计划清单

目录 效果预览图 完整代码 效果预览图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

Math Functions 数学函数

Math Functions 数学函数 Use the math functions that your database offers whenever possible. 尽可能使用数据库提供的数学函数。 Internally, PeopleCode assigns types to numeric values. Calculations for the Decimal type are processed in arrays to ensure dec…

基于YOLOv5的视频计数 — 汽车计数实现

在视频中计数对象可能看起来有挑战性&#xff0c;但借助Python和OpenCV的强大功能&#xff0c;变得令人意外地易于实现。在本文中&#xff0c;我们将探讨如何使用YOLO&#xff08;You Only Look Once&#xff09;目标检测模型在视频流或文件中计数对象。我们将该过程分解为简单…

带你用uniapp从零开发一个仿小米商场_9. 轮播图组件封装及使用

导航栏有了,接下来就是轮播图了,轮播图如下, 因为uniapp 官方自己有轮播图,所以这里就不自己写了,直接使用uniapp的轮播图二次开发就好 uniapp的轮播图组件叫swiper ,感兴趣的朋友可以点击链接,直接去看官方文档,也可以看我这里实操 用hbuilderX编译uniapp的代码有一个好处…

番外篇之通讯录

前言&#xff1a;用到的知识点有枚举、结构体、数组&#xff0c;快速排序&#xff08;用的名字排序&#xff09; 下面是测试函数&#xff1a; test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"contact.h" void menu() {printf("*************************…

C语言之内存函数

C语言之内存函数 文章目录 C语言之内存函数1. memcpy 使⽤和模拟实现1.1 memcpy 函数的使用1.3 memcpy的模拟实现 2. memmove 使⽤和模拟实现2.1 memmove 函数的使用2.2 memmove的模拟实现 3. memset 函数的使用4. memcmp 函数的使⽤ 1. memcpy 使⽤和模拟实现 函数声明如下&a…

【LeetCode】14. 最长公共前缀

14. 最长公共前缀 难度&#xff1a;简单 题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出…

《已解决: ImportError: Keras requires TensorFlow 2.2 or higher 问题》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

qt-C++笔记之不使用ui文件纯C++构建时控件在布局管理器作用下的默认位置和大小实践

qt-C笔记之不使用ui文件纯C构建时控件在布局管理器作用下的默认位置和大小实践 code review! 文章目录 qt-C笔记之不使用ui文件纯C构建时控件在布局管理器作用下的默认位置和大小实践1.ChatGPT解释2.ChatGPT——resize()和move()详解3.默认大小和位置——示例运行一4.默认大小…

乐观锁解决库存超卖问题

public BaseResult creatOneOrder(FlightOrderServiceImpl orderService, List<Map<String, String>> passengers,Map<String, String> selectFlightMap,String account) throws Exception {//如果是单程//判断座位数是否>1//是的话就直接减库存//不是就r…

excel表中慎用合并单元格,多用跨列居中

如下一个excel例表&#xff1a; 要将首行居中&#xff0c;最好的办法如下&#xff1a; 1、选中首行单元格 2、按下ctrl1&#xff0c;调出“设置单元格格式”&#xff0c;选中“对齐”&#xff0c;在“水平对齐”中选择“跨列居中” 3、完成任务 这样居中的好处是&#xff1a;可…

【NeRF】3、MobileR2L | 移动端实时的神经光场(CVPR2023)

论文&#xff1a;Real-Time Neural Light Field on Mobile Devices 代码&#xff1a;https://github.com/snap-research/MobileR2L 出处&#xff1a;CVPR2023 贡献&#xff1a; 设计了一套移动端实时的 R2L 网络结构 MobileR2L&#xff0c;在 iphone13 上渲染一张 1008x756…

RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)

RC-MVSNet&#xff1a;无监督的多视角立体视觉与神经渲染--论文笔记&#xff08;2022年&#xff09; 摘要1 引言2 相关工作2.1 基于监督的MVS2.2 无监督和自监督MVS2.3 多视图神经渲染 3 实现方法3.1 无监督的MVS网络 Chang, D. et al. (2022). RC-MVSNet: Unsupervised Multi-…

帮管客CRM SQL注入漏洞复现

0x01 产品简介 帮管客CRM是一款集客户档案、销售记录、业务往来等功能于一体的客户管理系统。帮管客CRM客户管理系统&#xff0c;客户管理&#xff0c;从未如此简单&#xff0c;一个平台满足企业全方位的销售跟进、智能化服务管理、高效的沟通协同、图表化数据分析帮管客颠覆传…

【深度学习实验】图像处理(二):PIL 和 PyTorch(transforms)中的图像处理与随机图片增强

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入需要的工具包1. PIL图像处理a. 生成绿色和蓝色图像b. 缩放和合成图像c 在合成图像上添加文字d. 展示并保存图像 2. PIL随机图像增强a. 定义随机图像增强函数b. 实验结果展示 3. PyTorch&…

redis实现消息延迟队列

业务场景 在很多软件系统功能中都会出现定时任务的业务场景,比如提前点单,比如定时发布动态,文章等而出现这样的的定时的任务为延迟队任务 代码模块 任务的持久化一般都需要建立一个任务表和任务日志表,避免宕机导致任务失效,先新建立一个数据库,创建基本的任务表和任务日志表…

leetcode 打家劫舍

打家劫舍 (a) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!), E题 --- 题解

目录 题目大意&#xff1a; 思路解析&#xff1a; 代码&#xff1a; Problem - E - Codeforces 题目大意&#xff1a; 现在给你一个排列&#xff0c;排列的定义是如果排列长度为n&#xff0c;则他应该出现1-n的每个数字一次&#xff0c;但是顺序是无序的&#xff0c;现在问…