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.yml


cluster.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.yml

cluster.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.yml

cluster.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.sh

NODE_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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python基础练习题库实验4

文章目录 题目1代码实验结果 题目2代码实验结果 题目3代码实验结果 题目4代码实验结果 题目5代码实验结果 题目6代码实验结果 题目总结 题目1 编写一个程序,使用for循环语句和字符串格式显示以下精确输出。 例如: 代码 for i in range(1, 11):result…

基于xml配置的AOP

目录 xml方式AOP快速入门 xml方式AOP配置详解 xml方式AOP快速入门 xml方式配置AOP的步骤 导入AOP相关坐标 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.13</version></de…

代码随想录算法训练营 ---第四十五天

前言&#xff1a; 昨天的题做过之后&#xff0c;今天的题基本上都很简单&#xff0c;但是要注重一下细节。 第一题&#xff1a; 简介&#xff1a; 动态规划五部曲&#xff1a; 1.确定dp数组的含义 dp[i]&#xff1a;爬到有i个台阶的楼顶&#xff0c;有dp[i]种方法 2.确定dp…

王者荣耀java版

主要功能 键盘W,A,S,D键&#xff1a;控制玩家上下左右移动。按钮一&#xff1a;控制英雄发射一个矩形攻击红方小兵。按钮二&#xff1a;控制英雄发射魅惑技能&#xff0c;伤害小兵并让小兵停止移动。技能三&#xff1a;攻击多个敌人并让小兵停止移动。普攻&#xff1a;对小兵造…

模拟电子技术Ⅲ-场效应管的分析

场效应管的定义 场效应管是单极性管&#xff1a;参与导电的是多数载流子&#xff0c;要么是自由电子&#xff0c;要么是空穴&#xff0c; 场效应管有三个极&#xff1a;源极&#xff08;s&#xff09;、栅极&#xff08;g&#xff09;、漏极&#xff08;d&#xff09;&#xf…

【古诗生成AI实战】之二——项目架构设计

[1] 项目架构 在我们深入古诗生成AI项目的具体实践之前&#xff0c;让我们首先理解整个项目的架构。本项目的代码流程主要分为三个关键阶段&#xff1a; 1、数据处理阶段&#xff1b;   2、模型训练阶段&#xff1b;   3、文本生成阶段。 第一步&#xff1a;在数据处理阶段…

C语言:写一个函数,求字符串的长度,在main函数中输入字符串并输出其长度(指针)

分析&#xff1a; 在程序中&#xff0c;定义一个函数 fix&#xff0c;该函数使用指针变量来访问字符串中的每个字符&#xff0c;并计算出字符串的长度。fix 函数的参数为指向 char 类型的指针变量 p&#xff0c;表示需要计算长度的字符串。 在主函数 main 中&#xff0c;定义一…

ssh管理

openssh包 [rootitzfl ~]# ls /mnt/cdrom/Packages/ |grep openssh openssh-7.4p1-11.el7.x86_64.rpm 包含openssh服务器及客户端的核心文件 openssh-askpass-7.4p1-11.el7.x86_64.rpm 支持对话框窗口的提示&#xff0c;是一个基于x系统的密码诊断 openssh-clients-7.4p…

手把手教会你--渗透实战--Hack The Box-Starting Point-Meow--持续更新

有什么问题&#xff0c;请尽情问博主&#xff0c;QQ群796141573 前言 前言 请务必跟着博主复现一遍 参考&#xff1a; Hack The Box-Starting Point-Meow

静态路由配置过程

静态路由 静态路由简介 路由器在转发数据时&#xff0c;要先在路由表&#xff08;Routing Table&#xff09;中在找相应的路由&#xff0c;才能知道数据包应该从哪个端口转发出去。路由器建立路由表基本上有以下三种途径。 &#xff08;1&#xff09;直连路由&#xff1a;路由…

【JavaWeb】Servlet

Servlet 文章目录 Servlet一、简介二、开发流程三、生命周期四、ServletConfig和ServletContext五、HttpServletRequest常见API六、HttpServletResponse常见API七、请求转发和响应重定向7.1 概述7.2 请求转发7.3 响应重定向 八、请求与响应乱码问题8.1 GET与POST请求乱码8.2 响…

[leetCode]257. 二叉树的所有路径(两种方法)

257. 二叉树的所有路径 题目描述&#xff1a; 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例&#xff1a; 输入&#xff1a;root [1,2,3,null,5]输出&#xff1a;["1-&g…

计算机视觉面试题-02

图像处理和计算机视觉基础 什么是图像滤波&#xff1f;有哪些常见的图像滤波器&#xff1f; 图像滤波是一种通过在图像上应用滤波器&#xff08;卷积核&#xff09;来改变图像外观或提取图像特征的图像处理技术。滤波器通常是一个小的矩阵&#xff0c;通过在图像上进行卷积…

mysql从库设置为只读

直奔主题&#xff0c;mysql设置为只读后&#xff0c;无法增删改。 设置命令&#xff1a; mysql> set global read_only1; #1是只读&#xff0c;0是读写 mysql> show global variables like %read_only%; 以下是相关说明&#xff1a; 1、对于数据库读写状态&#xf…

Rust语言入门教程(八) - 引用与借用

上一章的内容中我们讨论了Rust的所有权系统&#xff0c;当我们不想移动值的所有权时&#xff0c;我们可以使用引用和借用&#xff0c;而这正是本章想要讨论的问题。 引用&#xff08;References&#xff09; 引用允许你访问或修改数据而无需获取数据的所有权。在 Rust 中&…

CSS清除浮动的八种方法

我们为什么需要清除浮动&#xff0c;如果我们不清除浮动会发生什么呢&#xff1f; 基础样式&#xff0c;没清除浮动之前代码&#xff1a; 可复制也可以自己手动布局&#xff0c;后可尝试使用下面介绍的方法练习清除浮动 <!DOCTYPE html> <html lang"en">…

[Java] 阿里一面~说一下ArrayList 与 LinkedList 区别

文章目录 是否保证线程安全底层数据结构插入和删除是否受元素位置的影响是否支持快速随机访问内存空间占用&#xff1a; 是否保证线程安全 ArrayList 和 LinkedList 都是不同步的&#xff0c;也就是不保证线程安全&#xff1b; 底层数据结构 ● ArrayList 底层使用的是 Obje…

常见树种(贵州省):022绣线菊、月月青、金合欢、胡枝子、白刺花

摘要&#xff1a;本专栏树种介绍图片来源于PPBC中国植物图像库&#xff08;下附网址&#xff09;&#xff0c;本文整理仅做交流学习使用&#xff0c;同时便于查找&#xff0c;如有侵权请联系删除。 图片网址&#xff1a;PPBC中国植物图像库——最大的植物分类图片库 一、绣线菊…

C语言:写一个函数,实现3*3矩阵的转置(指针)

分析&#xff1a; 在主函数 main 中&#xff0c;定义一个 3x3 的整型数组 a&#xff0c;并定义一个指向整型数组的指针 p。然后通过循环结构和 scanf 函数&#xff0c;从标准输入中读取用户输入的 3x3 矩阵的值&#xff0c;并存储到数组 a 中。 接下来&#xff0c;调用 mov…

汇编:关于栈的知识

1.入栈和出栈指令 2. SS与SP 3. 入栈与出栈 3.1 执行push ax ↑↑ 3.2 执行pop ax ↓↓ 3.3 栈顶超界的问题 4. 寄存器赋值 基于8086CPU编程时&#xff0c;可以将一段内存当作栈来使用。一个栈段最大可以设为64KB&#xff08;0-FFFFH&#xff09;。 1.入栈和出栈指令…