当前位置:首页 » 《关注互联网》 » 正文

运维实操——日志分析系统ELK(上)之elasticsearch_谁主沉浮lyb的博客

24 人参与  2021年08月16日 15:23  分类 : 《关注互联网》  评论

点击全文阅读


日志分析系统ELK(上)之elasticsearch

  • 1、什么是elasticsearch?
  • 2、单节点elasticsearch安装
  • 3、搭建elasticsearch集群
  • 4、elasticsearch可视化方法1——cerebro插件
  • 5、elasticsearch可视化方法2——elasticsearch-head插件
  • 6、elasticsearch节点角色

ELK是elasticsearch、logstash、kibana的组合简称,安装时,三个软件的版本需要匹配。
其中elasticsearch主要用来存储检索数据和数据处理,logstash主要用来数据采集和过滤然后给es,kibana主要从es里面加载数据然后展示。
本文学习elasticsearch

1、什么是elasticsearch?

Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎,它具有如下特点:

  • 一个分布式的实时文档存储,每个字段可以被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
基础模块作用
cluster管理集群状态,维护集群层面的配置信息
alloction封装了分片分配相关的功能和策略
discovery发现集群中的节点,以及选举主节点
gateway对收到master广播下来的集群状态数据的持久化存储
indices管理全局级的索引设置
http允许通过JSON over HTTP的方式访问ES的API
transport用于集群内节点之间的内部通信
engine封装了对Lucene的操作及translog的调用

Elasticsearch的官网是https://www.elastic.co/cn/
Elasticsearch的功能强大,常用的应用场景有:

  • 信息检索
  • 日志分析
  • 业务数据分析
  • 数据库加速
  • 运维指标监控

2、单节点elasticsearch安装

实验准备三台新虚拟机server3(172.25.77.3)、server4(172.25.77.4)、server5(172.25.77.5),三个虚拟机分别给了2G内存,先建立单节点,后面创建集群。
准备elasticsearch的安装包,官网下载https://elasticsearch.cn/download/
我这里用了之前的server3和server4,server5是新创的。所以先清理server3环境
在这里插入图片描述
清理server4环境
在这里插入图片描述
安装软件
在这里插入图片描述
进入/etc/elasticsearch/,编辑主配置文件
在这里插入图片描述
设置集群名称为my-es,节点名称为server3
在这里插入图片描述
任何主机都可以访问,http端口为9200
在这里插入图片描述
发现的主机有server3、server4、server5,初始化节点为server3
在这里插入图片描述
开启elasticsearch,并设置开机自启,查看开启了9200端口
在这里插入图片描述
真机网页访问http://172.25.77.3:9200,测试成功
在这里插入图片描述
由于修改了集群名字,现在查看日志用cat /var/log/elasticsearch/my-es.log,此处可以禁用swap分区,实验效果更加流畅,不禁用swap也没问题

3、搭建elasticsearch集群

接下来给server4和server5配置
server3把rpm给server4和server5发一份,server4安装elasticsearch
在这里插入图片描述
server5安装elasticsearch
在这里插入图片描述
由于主配置文件基本一致,所以server3把elasticsearch.yml给server4和server5发一份,再改
server4进入/etc/elasticsearch/目录,编辑主配置文件elasticsearch.yml,把节点名称改为server4,其他都不变
在这里插入图片描述
类似的,server5进入/etc/elasticsearch/目录,编辑主配置文件elasticsearch.yml,把节点名称改为server5,其他都不变
在这里插入图片描述
server4开启elasticsearch,设置开机自启
在这里插入图片描述
server5开启elasticsearch,设置开机自启
在这里插入图片描述
测试,网页访问http://172.25.77.4:9200,测试成功
在这里插入图片描述
测试,网页访问http://172.25.77.5:9200,测试成功
在这里插入图片描述

4、elasticsearch可视化方法1——cerebro插件

由于elasticsearch看着很不舒服,看不懂,所以想要图形化的界面,引入了cerebro

cerebro是镜像,正好真机是8.2的红帽系统,自带podman,所以在真机导入镜像,podman run -d --name cerebro -p 9000:9000 lmenezes/cerebro运行该镜像,默认开放9000端口
在这里插入图片描述
网页访问http://172.25.77.250:9000,进入,需要输入监听的地址,http://172.25.77.3:9200
在这里插入图片描述
成功进入cerebro,点击nodes,可以看到集群中三个节点都在
在这里插入图片描述

5、elasticsearch可视化方法2——elasticsearch-head插件

elasticsearch-head是elasticsearch自带插件

下载elasticsearch-head插件,官网https://github.com/mobz/elasticsearch-head/archive/master.zip;head插件本质上是一个nodejs的工程,因此需要安装nodejs,https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_9.x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm

先安装nodejs,由于master.zip需要解压工具,所以安装unzip
在这里插入图片描述
解压master.zip
在这里插入图片描述
进入解压目录elasticsearch-head-master,由于npm慢,所以更换为cnpm源。查看版本号
在这里插入图片描述
安装bzip2,(安装cnpm需要用到)
在这里插入图片描述
安装cnpm
在这里插入图片描述
进入_site/子目录,查看app.js文件
在这里插入图片描述
可以看到监控的是9200端口
在这里插入图片描述
server3后台运行head插件,他的端口是9100
在这里插入图片描述
开启端口为9100
在这里插入图片描述
进入/etc/elasticsearch目录,修改主配置文件elasticsearch.yml
在这里插入图片描述
允许跨域,*表示支持所有域名
在这里插入图片描述
重启elasticsearch
在这里插入图片描述
网页访问http://172.25.77.3:9100,监控http://172.25.77.3:9200的elasticsearch,可以看到集群的三个节点。*代表master节点
在这里插入图片描述

6、elasticsearch节点角色

节点角色功能
Master主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader
Data Node主要负责集群中数据的索引和检索,一般压力比较大
Coordinating Node原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性
Ingest Node专门对索引的文档做预处理

在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。

节点角色是由以下属性控制

  • node.master: 这个属性表示节点是否具有成为主节点的资格(注意:此属性的值为true,并不意味着这个节点就是主节点,只意味着有成为主节点的资格。因为真正的主节点,是由多个具有主节点资格的节点进行选举产生的
  • node.data: 这个属性表示节点是否存储数据
  • node.ingest: 是否对文档进行预处理
  • search.remote.connect: 是否禁用跨集群查询
    默认情况下这些属性的值都是true

生产集群中可以对这些节点的职责进行划分,专人负责专事
(1)建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。
(2)再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大。
(3)在集群中建议再设置一批协调节点,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

下面简单测试,
server4编辑主编配置文件/etc/elasticsearch/elasticsearch.yml,添加node.data: false语句,表示该主机不存放数据
在这里插入图片描述
重启elasticsearch服务
在这里插入图片描述
可以看到server4现在没有data角色
在这里插入图片描述
而server3有data角色
在这里插入图片描述
其他的角色都可以测试,本文不再赘述


点击全文阅读


本文链接:http://zhangshiyu.com/post/25536.html

节点  集群  数据  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1