热门标签 | 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 &

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


推荐阅读
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社区 版权所有