ELK的在Centos上的安装实践 之ElasticSearch安装

 一、ELasticSearch的介绍

1、ElasticSearch是什么

Elasticsearch 是一个是面向文档的实时的分布式搜索分析引擎,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合

2、 Elasticsearch核心概念
2.1、索引 index

一个索引就是一个拥有几分相似特征的文档的集合。这就相当于是 MySQL 中的表一样,而文档就是表中的每一行数据。比如说,你可以有一个客户数据的索引,一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),在一个集群中,可以定义任意多的索引。

2.2、类型 type

在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。

2.3、字段Field

相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。

2.4、字段类型Field type
  • text:被分析索引的字符串类型
  • keyword:不能被分析,只能被精确匹配的字符串类型
  • date:日期类型,可以配合format一起使用
  • long:长整型,数字类型
  • integer:整型,数字类型
  • short:短整型,数字类型
  • double:双精度浮点型,数字类型
  • Boolean:布尔型,true、false
  • array:数组类型
  • object:对象类型,json嵌套
  • ip:ip类型
  • geo_point:地理位置类型
2.5、映射 mapping

mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,其它就是处理ES里面数据的一些使用规则设置也叫做映射,这里的映射就是对文档字段的约束,比如你的字段名字是什么,数据类型是字符串,还是数字啊. 这就类似于 mysql 中的约束一样.

2.6、文档 document

一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON格式来表示。
在一个index/type里面,你可以存储任意多的文档。注意,尽管一个文档,物理上存在于一个索引之中,文档必须被索引/赋予一个索引的type。

2.7、集群 cluster

一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。

2.8、节点 node

一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。
一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。

关系型数据库与ELasticSearch的对照

Relational DBElasticsearch
数据库(database)索引(Index)
表(table)类型(types)
数据行(rows)文档(documents)
数据列(columns)字段(fields)

表 => 索引:索引,就是文档的集合,类似于数据库中的表.
行 => 文档:文档,就是一条条数据,类似数据库中的每一行数据,但是文档的格式是 json 格式.
列 => 字段:字段,就是 json 文档中的字段,类似于数据库中的列.
约束 => 映射:映射是索引中文档的约束,例如字段类型约束.类似于数据库中的表结构.
SQL => DSL:DSL 是 es 中提供的 json 风格的请求语句,用来操作 es,实现 CRUD.

二、ElasticSearch单机版安装

1、ElasticSearch下载安装包

安装地址:https://www.elastic.co/cn/downloads/

2、解压

提示:必须安装jdk1.8版本以上(java -version

cd /usr/local
mkdir elasticSearch
tar -zxvf /opt/software/elasticsearch-8.12.2-linux-x86_64.tar.gz -C /usr/local/elasticSearch
3、创建用户并授权

建立管理elasticsearch服务的用户zyf,并授权

useradd zyf

chown -R zyf:zyf /usr/local/elasticSearch/elasticsearch-8.12.2
4、创建数据文件和日志文件

创建数据文件和日志文件,并赋予操作权限

cd /opt
mkdir -p data/elasticsearch/data, data/elasticsearch/logs
chown -R zyf:zyf /opt/data/elasticsearch
5、配置
5.1、配置 elasticsearch.yml
vim /usr/local/elasticSearch/elasticsearch-8.12.2/config/elasticsearch.yml

内容如下:

node.name: node-1

path.data: /opt/data/elasticsearch/data

path.logs: /opt/data/elasticsearch/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9200

discovery.seed_hosts: ["192.168.154.100:9300"]

cluster.initial_master_nodes: ["node-1"]

http.cors.enabled: true

http.cors.allow-origin: "*"

# 关闭验证

xpack.security.enabled: false

xpack.security.enrollment.enabled: false
5.2、配置 jvm.options
vim /usr/local/elasticSearch/elasticsearch-8.12.2/config/jvm.options

添加如下:

-Xms256m

-Xmx256m

6、配置2

====以下若不配置,启动时会报错======

6.1、修改用来启动elasticsearch的用户的文件描述符数量

vim /etc/security/limits.conf

最后添加如下:

* soft nofile 65536
* hard nofile 65536

reboot  # (注:先启动elasticsearch若成功启动,则不需要重新启动服务器,否则重新启动)

查看配置是否生效

ulimit -Hu

ulimit -Su

6.2、配置一个进程可以拥有的VMA(虚拟内存区域)的数量

vim /etc/sysctl.conf

添加如下配置,并保存

vm.max_map_count=262144

#立即生效

sysctl -p

#查看配置结果

cat /proc/sys/vm/max_map_count

7、启动

需要切换到zyf用户(不允许root用户启动)

su zyf
cd /usr/local/elasticSearch/elasticsearch-8.12.2

# 直接启动

./bin/elasticsearch

# 后台启动

./bin/elasticsearch -d
nohup /usr/local/elasticSearch/elasticsearch-8.12.2/bin/elasticsearch 2>&1 &

访问:http://192.168.154.100:9200/

8、关闭elasticsearch
kill $(ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}')

三、 elasticsearch 集群安装

1、配置 elasticsearch.yml
vim /usr/local/elasticSearch/elasticsearch-8.12.2/config/elasticsearch.yml

内容如下:

cluster.name: my-elastic  (三个服务器的此属性必须相同)

node.name: node-1(node-2 node-3)

path.data: /opt/data/elasticsearch/data

path.logs: /opt/data/elasticsearch/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9201 (9202 9203)

discovery.seed_hosts: ["hadoop102:9300","hadoop103:9300","hadoop104:9300"]

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

http.cors.enabled: true

http.cors.allow-origin: "*"

# 关闭验证

xpack.security.enabled: false

xpack.security.enrollment.enabled: false
2、其他配置文件都相同,按照上面安装过程配置
3、安装集群监控cerebro

Cerebro(又称Elasticsearch Cerebro)是一个开源的用于可视化和管理 Elasticsearch 集群的开源工具。使用Scala、Play框架、AngularJS和Bootstrap构建;它提供了一个直观的用户界面,让您能够轻松地监控、管理和诊断您的Elasticsearch集群。

 为了安装Cerebro,必须安装java1.8或更高版本

3.1、下载地址:https://github.com/lmenezes/cerebro

3.2、解压

tar -zxvf /opt/software/cerebro-0.9.4.tgz

cd cerebro-0.9.4
./bin/cerebro

3.3、访问:http://hadoop104:9000/

在kibana中输入如下:

put /heima

{

  "settings":{

    "number_of_shards":3, //分片数量

    "number_of_replicas":1 //副本数量

  },

  "mappings": {

    "properties": {

      "name": {

        "type": "keyword",

        "index":false

      }

    }

  }

}

4.故障转移的监视

主节点挂掉的情况

故障转移成功后的效果(不需要人为干预,系统会自动转移)

参考文档:

ElasticSearch 和 MySQL 索引的优缺点

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值