centos7下部署elasticsearch7.2集群

1 Elastic Stack简介

如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。

全系的Elastic Stack技术栈包括:

1.Elasticsearch

Elasticsearch 基于java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

2.Logstash

Logstash 基于java,是一个开源的用于收集,分析和存储日志的工具。

3.Kibana

Kibana 基于nodejs,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的Web 界面,可以汇总、分析和搜索重要数据日志。

4.Beats

Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticsearch,然后进行后续的数据分析活动。

Beats主要由如下组成:

  • Packetbeat:是一个网络数据包分析器,用于监控、收集网络流量信息,Packetbeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支 持ICMP (v4 and v6)、DNS、HTTP、Mysql、PostgreSQL、Redis、MongoDB、Memcache等协议;
  • Filebeat:用于监控、收集服务器日志文件,其已取代 logstash forwarder;
  • Metricbeat:可定期获取外部系统的监控指标信息,其可以监控、收集 Apache、HAProxy、MongoDB、MySQL、Nginx、PostgreSQL、Redis、System、Zookeeper等服务;
  • Winlogbeat:用于监控、收集Windows系统的日志信息;

2 Elasticsearch 简介

2.1 基本概念

1. 官网:https://www.elastic.co/cn/products/elasticsearch

2.基本概念

索引 

(1)索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。

(2)可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。

(3)Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。

文档 

(1)存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录。

(2)Elasticsearch和MongoDB中的文档类似,都可以有不同的结构,但Elasticsearch的文档中,相同字段必须有相 同类型。

(3)文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。

(4)每个字段的类型,可以是文本、数值、日期等。字段类型也可以是复杂类型,一个字段包含其他子文档或者数组。

映射

所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)。一般由用户自己定义规则。

文档类型

(1)在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个博客应用程序可以保存文章和评论。

(2)每个文档可以有不同的结构。

(3)不同的文档类型不能为相同的属性设置不同的类型。例如,在同一索引中的所有文档类型中,一个叫title的字段必须具有相同的类型。

2.3 Elasticsearch集群节点相关概念

ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点

通过node.name指定节点的名称。

在Elasticsearch中,节点的类型主要有4种:

master节点

配置文件中node.master属性为true(默认为true),就有资格被选为master节点。

master节点用于控制整个集群的操作。比如创建或删除索引,管理其它非master节点等。

data节点

配置文件中node.data属性为true(默认为true),就有资格被设置成data节点。

data节点主要用于执行数据相关的操作。比如文档的CRUD。

客户端节点

配置文件中node.master属性和node.data属性均为false。

该节点不能作为master节点,也不能作为data节点。

可以作为客户端节点,用于响应用户的请求,把请求转发到其他节点。

部落节点

当一个节点配置tribe.*的时候,它是一个特殊的客户端,它可以连接多个集群,在所有连接的集群上执行搜索和其他操作。

3 部署elasticsearch集群

3.1 基础环境

操作系统:centos7.5

各类包下载地址:https://elasticsearch.cn/download/

#关闭防火墙和selinux

#systemctl stop firewalld
#systemctl disable firewalld
#setenforce 0
#getenforce

#sed -i  ‘s/SELINUX=permissive/SELINUX=disabled/‘ /etc/selinux/config

#cat /etc/sysconfig/selinux

SELINUX=disabled

#修改主机名

#hostnamectl set-hostname elk1

#hostnamectl set-hostname elk2

#hostnamectl set-hostname elk3

#修改最大连接数

#vi /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

#ulimit -n 65535

#ulimit -a

#配置/etc/hosts

#cat /etc/hosts

#配置好本地源,阿里源

#wget -O /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

--------------------------------------------------------------------------------------------------------------------------------------

注意:

如果配置elasticsearch源,会下载最新版本的elasticsearch包;实验中因提前下载好了7.2的版本,这里就不配置;配置elasticsearch源方法如下:

#rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

#cat /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-7.x]

name=Elasticsearch repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

#安装最新版elasticsearch

#yum -y  install elasticsearch

----------------------------------------------------------------------------------------------------------------------------------------------

3.2 安装elasticsearch

#在elk1,elk2,elk3上创建elasticsearch数据库目录,

并且修改属主属组为elasticsearch

#mkdir  -pv  /home/es/log

#mkdir  -pv  /home/es/data

#chown -R elasticsearch.elasticsearch /home/es/log

#chown -R elasticsearch.elasticsearch /home/es/data

#安装

#yum  install -y  elasticsearch-7.2.0-x86_64.rpm

#备份主配置文件

#cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

3.2 配置Elasticsearch集群

#elk1(192.168.1.223)配置文件

#grep -v "#"  /etc/elasticsearch/elasticsearch.yml

参数解释:

cluster.name: my-application  # 集群中的名称

node.name: elk1  # 该节点名称

node.master: true  # 意思是该节点为主节点

node.data: false  #表示这不是数据节点

path.data: /home/es/data #数据存放路径

path.logs: /home/es/log  #日志存放路径

network.host: 192.168.1.223  # 监听ip

http.port: 9200  # es服务的端口号

discovery.seed_hosts  # 配置自动发现

cluster.initial_master_nodes  #集群初始主节点

#elk2(192.168.1.224)配置文件

#elk3(192.168.1.225 )配置文件

#设置开机自动

#systemctl enable elasticsearch

#启动服务
#systemctl restart elasticsearch
#netstat -tnulp | grep java

3.4 查看集群信息

#查看elasticsearch集群信息(下面命令在任意一个节点机器上操作都可以)

#curl -XGET ‘http://192.168.1.223:9200/_cat/nodes‘

注意:带*号表示该节点是master主节点。

#后面添加 ?v ,表示详细显示

#curl -XGET ‘http://192.168.1.223:9200/_cat/nodes?v‘

#查询集群状态方法

# curl -XGET ‘http://192.168.1.223:9200/_cluster/state/nodes?pretty‘

#查询集群中的master

#curl -XGET ‘http://192.168.1.223:9200/_cat/master?v‘

#查询集群的健康状态(一共三种状态:green、yellow,red;其中green表示健康)

#curl -XGET ‘http://192.168.1.223:9200/_cat/health?v‘

#curl -XGET ‘http://192.168.1.223:9200/_cluster/health?pretty‘

3.5 ES数据定期删除脚本

如果不删除ES数据,将会导致ES存储的数据越来越多,磁盘满了之后将无法写入新的数据。这时可以使用脚本定时删除过期数据;

清理脚本如下:

#cat es-index-clear.sh
#/bin/bash
#es-index-clear
#只保留5天内的日志索引
LAST_DATA=`date -d "-5 days" "+%Y.%m.%d"`
#删除过期的索引
curl -X DELETE ‘http://192.168.1.224:9200/*-‘${LAST_DATA}‘*‘

可以视情况调整保留的天数,该脚本只需要在ES中一台机器定时运行即可。

-------------------------------------------------------------------------------------------------------------------------------------------

3.6 参考链接

https://blog.csdn.net/dkjhl/article/details/95201228

https://blog.csdn.net/ghost_leader/article/details/79023222

https://blog.csdn.net/dkjhl/article/details/95201228

https://blog.51cto.com/zero01/2079879

原文地址:https://www.cnblogs.com/llwxhn/p/12440983.html

时间: 2024-10-10 20:04:08

centos7下部署elasticsearch7.2集群的相关文章

centos7下的k8s+dashboard集群部署---(1)环境准备及docker部署

前言:之前部署的时候看到网上的教程非常多,大部分没大方向错误,但是经过多次实际性的验证后发现避免不了会有一些错误,为此整理一篇总结部署:准备工作:本次部署拓扑为1master,2node节点,准备工作包含所有设备:a)关闭各节点防火墙,并设置开机关闭systemctl stop firewalldsystemctl disable firewalldb)关闭系统selinuxsetenforce 0sed -i 's/enforcing/disabled/' /etc/selinux/confi

centos7下的k8s+dashboard集群部署---(2)k8s部署

一.k8s部署 1.各节点安装kubectl,kubelet,kubeadm,需要通过yum安装,所以还是先配置yum源. cat /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=

Linux下部署Kafka分布式集群,安装与测试

注意:部署Kafka之前先部署环境JAVA.Zookeeper 准备三台CentOS_6.5_x64服务器,分别是:IP: 192.168.0.249 dbTest249 Kafka IP: 192.168.0.250 Other250 Kafka IP: 192.168.0.251 webTest251 Kafka 一.安装Kafka # tar zxvf kafka_2.9.1-0.8.2.2.tgz -C /usr/local/ # cd /usr/local/kafka_2.9.1-0.

Centos单机部署Elasticsearch7.2集群

配置node0 # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand wh

Centos7搭建redis5.0.5集群

Centos7搭建redis5.0.5集群 发表于 2019-09-06 | 分类于 Linux, Redis Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引.Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性并使用Redis Cluster自动分区. 官网地址 一.集群方案比较

手把手教你用Docker部署一个MongoDB集群

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.本文介绍了如何使用Docker搭建MongoDB集群. 本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下: 2.6.5版本的MongoDB 有3个节点的副本集(Replica set) 身份验证 持久化数据到本地文件系统 首先要准备三个运行的Docker服务器,这意味着你

将java开发的wordcount程序部署到spark集群上运行

1 package cn.spark.study.core; 2 3 import java.util.Arrays; 4 5 import org.apache.spark.SparkConf; 6 import org.apache.spark.api.java.JavaPairRDD; 7 import org.apache.spark.api.java.JavaRDD; 8 import org.apache.spark.api.java.JavaSparkContext; 9 impo

在Docker下搭建Spark+HDFS集群

在Docker下搭建Spark+HDFS集群 1.      在VM中安装Ubuntu OS并实现root登录 (http://jingyan.baidu.com/article/148a1921a06bcb4d71c3b1af.html) 安装Vm增强工具 http://www.jb51.net/softjc/189149.html 2.      安装Docker docker安装方法一 ubuntu14.04以上的版本都是自带docker安装包的:所以可以直接安装:但是这个一般不是最先版本

CentOS 6.5环境下heartbeat高可用集群的实现及工作原理详解

Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用. 什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通常带来的代价是很大的,尤其是web站点,所以当某一台提供服务的的服务器down掉不至于服务终止的就叫高可用. 什么叫心跳:就是将多台服务器用网络连接起来,而后每一台服务器都不停的将自己依然在线的信息很简短很小的通告给同一个网络中的备用服务器的主机,告诉其实主机自己依然在线,其它服务器收到这个心跳信息