热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【ELK7.4】集群部署

前言Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索功能和

前言


Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和分析大量数据。它通常用作支持具有复杂搜索功能和需求的应用程序的底层引擎/技术。

架构图

一、安装前准备

服务器环境

Node1: ES、
Node2: ES、filebeat、logstash
Node3: ES、kibana

1、系统优化(在正式安装前需要进行系统优化,负责无法启动)

单个JVM下支撑的线程数
vim /etc/sysctl.conf
vm.max_map_count=655360
vm.swappiness=0

修改文件句柄数

root用户设置
vim /etc/security/limits.conf

root soft nofile 65535
root hard nofile 65535
* soft nofile 65536
* hard nofile 65536
* soft memlock unlimited
* hard memlock unlimited

普通账户设置(es使用非root启动)
vim /etc/security/limits.d/20-nproc.conf

* soft nproc 65535
* hard nproc 65535
root soft nproc unlimited

2、基础环境

#配置主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3#主机映射
vim /etc/hosts
172.16.12.110 node1
172.16.12.111 node2
172.16.12.112 node3
#配置Java环境
tar zxf /root/jdk1.8.0_101.tar.gz -C /data/
echo 'export PATH=$PATH:/data/jdk1.8.0_101/bin' >>/etc/profile
source /etc/profile#配置SSH无密码登陆(三台服务器都需要免密)
ssh-keygen
ssh-copy-id -i id_rsa.pub work@node1

二、elasticsearch安装

1、下载安装

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-linux-x86_64.tar.gz
tar zxf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /data/

2、集群配置

vim /data/elasticsearch-7.4.0/config/elasticsearch.ymlcluster.name: myescluster #自定义修改一个集群名称
node.name: node1 #节点名称
network.host: 0.0.0.0 #节点IP(或者解析的主机名)
http.port: 9200 # 对外提供服务的端口,9300为集群服务的端口
transport.tcp.port:9300 #集群服务的端口
bootstrap.memory_lock: true #设置elasticsearch的进程锁住内存
cluster.initial_master_nodes: ["node1", "node2","node3"] # Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点
discovery.zen.ping.unicast.hosts:["172.16.12.110",172.16.12.111","172.16.12.112"] #集群个节点IP地址
path.logs: /data/elasticsearch-7.4.0/custom/logs/ #日志目录
path.data: /data/elasticsearch-7.4.0/custom/data/ #存放数据目录
path.repo: ["
/data/elasticsearch-7.4.0/es_backup"] #备份目录#保存退出
创建相应目录
mkdir -p /data/elasticsearch-7.4.0/custom/logs/
mkdir -p /data/elasticsearch-7.4.0/custom/data
mkdir -p /data/elasticsearch-7.4.0/es_backup

path.data:用于设置数据文件的目录,可以指定多个目录,用逗号分隔即可。
path.logs:用于设置日志文件的目录

3、JVM配置

vim /data/elasticsearch-7.4.0/config/jvm.options
-Xmx1g # 内存设置为服务器内存的一半

4、分发es安装目录到其他两个节点

scp -r elasticsearch-7.4.0/ work@node2:/data
scp -r elasticsearch-7.4.0/ work@node3:/data
修改node2,node3节点配置文件elasticsearch.yml中的主机名和ip

5、启动集群(全部节点)

启动:
cd /data/elasticsearch-7.4.0/bin
./elasticsearch -d

页面查看,默认端口 9200

在这里插入图片描述

6、插件安装(node1)

(1)head插件

介绍:head插件是ES的一个可视化插件,类似于navicat和mysql的关系。head插件是一个用来浏览、与ES数据进行交互的web前端展示插件,是一个用来监视ES状态的客户端插件。

由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm其实是Node.js的包管理工具,可以理解为maven)

#下载
wget https://github.com/mobz/elasticsearch-head/archive/master.zip#解压
unzip master.zip
mv elasticsearch-head-master/ /data

(2)下载安装NodeJS

#下载解压
wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz
yum -y install xz
xz -d node-v8.11.4-linux-x64.tar.xz
tar xvf node-v8.11.4-linux-x64.tar -C /data/#配置环境变量 vim /etc/profile
export NODE_HOME=/data/node-v8.11.4-linux-x64
export PATH=$NODE_HOME/bin:$PATH#刷新配置
source /etc/profile

(3)使用npm安装grunt
设置npm的代理镜像,由于国外的下载较慢,所以设置为国内的,进入到elasticsearch-head-master内执行以下命令

cd /data/elasticsearch-head-master
npm config set registry https://registry.npm.taobao.org

执行npm install,grunt是基于Node.js的项目构建工具,可以进行打包压缩,测试,执行等等的工作,head插件就是通过grunt启动

#安装
npm install -g grunt
npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
npm install#版本确认:
node -v
npm -v
grunt -version

(4)修改Head源码
由于head的代码直接执行有很多限制,比如无法跨机器访问。因此需要用户修改两个地方:

a、修改 elasticsearch-head-master/Gruntfile.js 文件,红色部分为添加的,原来没有,设置hostname属性,设置为0.0.0.0

connect: {server: {options: {hostname: '0.0.0.0',port: 9100,base: '.',keepalive: true}}}

b、修改跨域请求配置

修改连接的状态如下,修改之后才能连上,这样head插件才可以访问elasticsearch。
修改文件为elasticsearch-7.4.0/config/elasticsearch.yml,添加如下两行

http.cors.enabled: true
http.cors.allow-origin: "*"

c、修改head的连接地址
vim elasticsearch-head-master/_site/app.js

修改如下所示:
cat app.js |grep app-base_uri
在这里插入图片描述
把localhost修改成你es的服务器地址,如:
在这里插入图片描述
重启elasticsearch

(5)启动head

cd /data/elasticsearch-head-master
nohup grunt server &

页面访问,默认端口9100,绿色为健康,黄色为警告
在这里插入图片描述

三 、logstash安装

1、 下载解压

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz
tar zxf logstash-7.4.0.tar.gz -C /data/

2 、创建配置文件

一个Logstash的pipeline由3部分组成:input, filter, output。

mkdir /data/logstash-7.4.0/conf
vim logstash-simple.confinput { stdin { } }
output {elasticsearch { hosts => ["172.16.12.110:9200"] }stdout { codec => rubydebug }
}

3、 运行logstash

cd /data/logstash-7.4.0/bin
./logstash -f ../conf/logstash-simple.conf

这个pipeline例子从标准输入获取数据 stdin,并把结构化数据输出到标准输出stdout。在启动后,看到日志Pipeline main started后,在终端中输入hello world,可以在终端中看到对应输出:
在这里插入图片描述
在企业架构中,一般Logstash的input是beat,output是ES,需要对应的插件。这种模式通常用来调试自己的logstash配置文件。

4、安装beat input插件

#进入bin目录
cd /data/logstash-7.4.0/bin
#构建离线插件包:
./logstash-plugin prepare-offline-pack logstash-input-beats#安装离线插件包:
./logstash-plugin install file:///data/logstash-7.4.0/logstash-offline-plugins-7.4.0.zip#安装:
./logstash-plugin install file:///data/logstash-7.4.0/logstash-offline-plugins-7.4.0.zip#配置 5044 端口作为 Filebeat 的连接和创建 ES 索引。新建 logstash.conf 配置文件,
cd /data/logstash-7.4.0/config
vim logstash.confinput {beats {port => 5044}
}output {elasticsearch {hosts => "172.16.12.110:9200"manage_template => falseindex => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"document_type => "%{[@metadata][type]}"}
}
#Logstash 使用该配置使用 ES 的索引,和 Filebeat 做的事情是一样的,不过拥有了额外的缓存以及强大丰富的插件库。
#启动 logstash
nohup ./bin/logstash -f config/logstash.conf &

四 、filebeat安装

1、下载安装

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.0-linux-x86_64.tar.gz
tar zxf filebeat-7.4.0-linux-x86_64.tar.gz -C /data/

2、 编辑filebeat.yml

vim filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /data/logs/*.log
output.logstash:hosts: ["172.16.12.111:5044"]

3、 启动filebeat

#启动
nohup ./filebeat -c filebeat.yml &

五、kibana安装

1、简介


Kibana是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在
Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据


2、下载解压

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.0-linux-x86_64.tar.gz
tar zxf kibana-7.4.0-linux-x86_64.tar.gz -C /data/

3、 修改配置文件

cd /data/kibana-7.4.0-linux-x86_64/config
vim kibana.ymlserver.port: 5601
server.host: "0.0.0.0"
server.name: "node3"
elasticsearch.hosts: ["http://172.16.12.110:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"

4、 启动Kibana

cd /data/kibana-7.4.0-linux-x86_64/bin
nohup ./kibana &

页面访问:
在这里插入图片描述


推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
author-avatar
10651s
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有