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>…

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

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

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

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

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…

《已解决: 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.默认大小…

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实现消息延迟队列

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

【MOJO】Modular语言安装和测试

目录 一、Mojo介绍 Linux​ Mac 二、安装Mojo SDK 三、mojo代码测试 3.1、在 REPL 中运行代码​ 3.2、构建并运行 Mojo 源文件​ 运行mojo文件​ 构建可执行二进制文件​ 四、VSCode安装 一、Mojo介绍 在学习Rust语言的过程中无意发现了Modular语言&#xff0c;语言…

nginx基础篇学习

一、nginx编译安装 1、前往nginx官网获取安装包 下载安装包 2、解压 3、安装 进入安装包 安装准备&#xff1a;nginx的rewrite module重写模块依赖于pcre、pcre-devel、zlib和zlib-devel库&#xff0c;要先安装这些库 安装&#xff1a; 编译&#xff1a; 启动&#xff…

web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip

MENU 效果图htmlJavaScripstyle解析 效果图 html <template><div><div><div id"idStackedColumnChart" style"width: 100%; height: 680px"></div></div></div> </template>JavaScrip export default {…

python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)

python-opencv轮廓检测&#xff08;外轮廓检测和全部轮廓检测&#xff0c;计算轮廓面积和周长&#xff09; 通过cv2.findContours&#xff0c;我们可以进行轮廓检测&#xff0c;当然也有很多检测模式&#xff0c;我们可以通过选择检测模式&#xff0c;进行外轮廓检测&#xff…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…

从零开始学习管道:管道程序的优化和文件描述符继承问题

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容管道后续的完善&#xff0c;以及解决管道继承多个文件描…