ELK-介绍及Elasticsearch集群搭建

  • ELK是三个开源软件的缩写,分别为Elasticsearch、Logstash、kibana它们都是开源软件。后来新增了一个FileBeat,它是一个轻量及的日志收集处理工具,因为Logstash由java程序开发,比较消耗内存资源,后来将Logstash使用go语言重新编译,升级为了FileBeat。
  • Elasticsearch是一个基于Lucene搜索引擎的NoSql数据库,用于存储Logstash(日志管道工具)收集来的数据,最后由Kibana图形化界面工具来呈现出来,它工作在Elasticsearch之上。
  • Es集群中没有中心节点,从外部来看ES集群在逻辑上是一个整体,你与任何一个节点的通信和与整个es集群通信都是等价的。
  • Elasticsearch集群:
    • 1)节点(node):一个节点是集群中的一台服务器,是集群的一部分。它存储数据,参与集群的索引和搜索功能。集群中有一个主节点,主节点通过ES集群内部选举产生。
    • 2)集群(cluster):一组节点组织在一起称为一个集群,它们共同持有整个的数据,并一起提供索引和搜索功能。
    • 3)分片(shards):ES可以把完整的索引分成多个分片,分别存储在不同的节点上。
    • 4)副本(replicas):ES可以为每个分片创建副本,提高查询效率,保证在分片数据丢失后的恢复。
    • 分片数量只能在索引创建时指定,索引创建后不能再更改分片数量,但可以改变副本的数量。
  • 本章实验环境介绍:
    • 三台服务器:
      • 192.168.8.5、192.168.8.6、192.168.8.7
      • elasticsearch 软件版本:6.6.0
    • 开始部署:
      • 三台主机分别安装es:
        • 软件包下载路径:wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/elasticsearch-6.6.0.rpm
        • 安装软件包(无需依赖包):
          • rpm -ivh elasticsearch-6.6.0.rpm
        • elasticsearch目录和文件讲解:
          • /etc/elasticsearch/elasticsearch.yml #配置文件
          • /etc/elasticsearch/jvm.options #java虚拟机
          • /etc/init.d/elasticsearch #服务启动脚本
          • /etc/sysconfig/elasticsearch #elasticsearch服务变量
          • /usr/lib/sysctl.d/elasticsearch.conf #设置elasticsearch用户使用的内存大小
          • /usr/lib/systemd/system/elasticsearch.service #添加系统服务文件
          • /var/log/elasticsearch/elasticsearch.log #日志文件路径
        • 修改配置文件:
          • vim /etc/elasticsearch/elasticsearch.yml
            • 去掉以下几行前边的注释:
              • node.name: node-1 #群集中本机节点名
              • path.data: /data/elasticsearch #数据目录
              • path.logs: /var/log/elasticsearch #日志目录
              • bootstrap.memory_lock: true #锁定内存,需要和/etc/elasticsearch/jvm.options关联
              • network.host: 192.168.8.10,127.0.0.1 #监听的ip地址
              • http.port: 9200 #端口号
        • 创建数据目录,并修改权限:
          • mkdir -p /data/elasticsearch
          • chown -R elasticsearch.elasticsearch /data/elasticsearch/
        • 加载重启服务:
          • systemctl daemon-reload
          • systemctl restart elasticsearch
        • 查看9200端口是否开启:
          • netstat -anput | grep 9200
        • 第一台部署成功后,使用浏览器下载插件访问8.5主机:
          • 直接访问可以看到它的状态信息

          • 下载es-head插件:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
          • 谷歌浏览器示范:
            • 谷歌-扩展程序-管理扩展程序

            • 此页面代表es1 服务部署成功,现在创建索引在es1服务器上
              • curl -XPUT '192.168.8.5:9200/vipinfo/users/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"name": "guofucheng","age": "45","job": "mingxing"}'
            • 在浏览器上查看是否有了刚才创建的索引:
              • 右上方黄色代表副本不完整

              • elasticsearch群集:
                • 状态颜色:
                  • 灰色:未连接
                  • 绿色:数据完整态
                  • 黄色:副本不完整
                  • 红色:数据分片不完整
                  • 紫色:数据分片复制过程
                  • 群集主机角色:
                  • 主节点master:负责管理调度
                  • 工作节点: 负责处理数据
                  • 默认情况,所有节点都是工作节点,即主节点也处理数据
          • 向集群中添加第二台主机:192.168.8.6
            • 安装步骤与es1一样,配置文件需要修改:
              • vim /etc/elasticsearch/elasticsearch.yml
                • node.name: node-2
                • path.data: /data/elasticsearch
                • path.logs: /var/log/elasticsearch
                • network.host: 192.168.8.20,127.0.0.1
                • http.port: 9200
                • discovery.zen.ping.unicast.hosts: ["192.168.8.6", "192.168.8.20"]
                • discovery.zen.minimum_master_nodes: 2 #添加的值=节点数/2 + 1
              • 创建数据目录。并修改权限:
                • mkdir -p /data/elasticsearch
                • chown -R elasticsearch.elasticsearch /data/elasticsearch/
              • 启动服务:
                • systemctl daemon-reload
                • systemctl restart elasticsearch
              • 查看端口:
                • netstat -anput | grep 9200
          • 向集群中添加第三台主机:192.168.8.7
            • 安装与es1一样,修改配置文件
            • vim /etc/elasticsearch/elasticsearch.yml
              • 修改一下的配置:
              • node.name: es3
              • path.data: /data/elasticsearch
              • path.logs: /var/log/elasticsearch
              • bootstrap.memory_lock: true
              • network.host: 192.168.8.7,127.0.0.1
              • http.port: 9200
              • discovery.zen.ping.unicast.hosts: ["192.168.8.5", "192.168.8.7"]
              • discovery.zen.minimum_master_nodes: 2
            • 创建数据目录,并修改权限
              • mkdir -p /data/elasticsearch
              • chown -R elasticsearch.elasticsearch /data/elasticsearch/
            • 重启服务:
              • systemctl daemon-reload
              • systemctl restart elasticsearch
            • 查看端口是否存在
              • netstat -anpt | grep 9200
            • 再次访问8.5群集,查看是否发生了变化
            • 常见群集管理监控命令
            • (1)查看索引信息
            • curl -XGET '192.168.8.5:9200/_cat/indices?pretty'
            • (2)查看群集健康状态
            • curl -XGET '192.168.8.5:9200/_cluster/health?pretty'
            • (3)统计群集节点
            • curl -XGET '192.168.8.5:9200/_cat/nodes?human&pretty'
            • (4)查看群集所有节点详细信息
            • curl -XGET '192.168.8.5:9200/_nodes/_all/info/jvm.process?human&pretty'
            • 注意:企业环境使用脚本监控群集健康状态是否为green 或 节点数不匹配 就邮件报警
            • (5)创建索引index1时,修改分片为3和副本数为2
              • curl -X PUT 192.168.8.5:9200/index1 -H 'Content-Type: application/json' -d '{
              • "settings" : {
              • "index" : {
              • "number_of_shards" : 3,
              • "number_of_replicas" : 2
              • }
              • }
              • }'
            • (6)针对已有索引,可修改副本数,不可改分片数。下面语句把index1的副本数由2改为1
              • curl -X PUT '192.168.8.5:9200/index1/_settings?pretty' -H 'Content-Type: application/json' -d '{
              • "settings": {
              • "number_of_replicas": "1"
              • }
              • }'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/444397.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序如何实现下拉刷新

1.首先在你需要实现下拉刷新页面的json文件中写入"enablePullDownRefresh": true。 2.在js文件的onPullDownRefresh() 事件中实现下拉刷新。 实现代码 onPullDownRefresh() {console.log(开始下拉刷新)wx.showNavigationBarLoading()//在标题栏中显示加载图标this.d…

一个将图片转3D的开源项目TripoSR

TripoSR AI是StabilityAI联合发布的图生3D模型,TripoSR是一个快速的3D物体重建模型。TripoSR能够在不到一秒钟的时间内从单张图片生成高质量的3D模型。TripoSR模型的特点是能够快速处理输入,在 NVIDIA A100 GPU 上不到 0.5 秒的时间内生成高质量的 3D 模…

用于无人机路径规划的增强型粒子群优化

摘要: 近年来,元启发式算法被广泛用于解决多目标优化问题(MOOPs)。粒子群优化(PSO)由于其在解决MOOPs方面的有效性,在这些算法中得到了普及。然而,PSO的性能高度依赖于其探索和利用能…

解锁安卓开发利器:深度探析ADB【安卓开发】

引言 在安卓开发与维护过程中,我们经常会遇到一些限制,比如无法直接访问某些系统功能,或者在某些定制系统中 受到限制 。为了解决这些问题,我们需要一种有效的工具来管理和调试安卓设备,而这时候ADB(Andro…

离线数仓(五)【数据仓库建模】

前言 今天开始正式数据仓库的内容了, 前面我们把生产数据 , 数据上传到 HDFS , Kafka 的通道都已经搭建完毕了, 数据也就正式进入数据仓库了, 解下来的数仓建模是重中之重 , 是将来吃饭的家伙 ! 以及 Hive SQL 必须熟练到像喝水一样 ! 第1章 数据仓库概述 1.1 数据仓库概念 数…

【打工日常】使用docker部署个人实时在线文档协助编辑器

一、Etherpad介绍 Etherpad是一个高度可定制的开源在线编辑器,提供真正实时的协作编辑。放在自己的服务器里面,可以更大程度的保护自己工作的隐私,并且Etherpad允许您实时协作编辑文档,就像在浏览器中运行的实时多人编辑器一样这样…

Linux网络基础2之http

这里是ky233的主页,欢迎光临~https://blog.csdn.net/ky233?typeblog 目录 一、认识URL 1.认识URL 2.urlencode和urldecode 二、HTTP协议格式 1.快速构建http请求和相应的报文格式 三、http demo 1.GET和POST 2.HTTP的状态码 3.http的特征 4.HTTP常见Head…

ARTS Week 20

Algorithm 本周的算法题为 1222. 可以攻击国王的皇后 在一个 下标从 0 开始 的 8 x 8 棋盘上,可能有多个黑皇后和一个白国王。 给你一个二维整数数组 queens,其中 queens[i] [xQueeni, yQueeni] 表示第 i 个黑皇后在棋盘上的位置。还给你一个长度为 2 的…

VARMA(Vector Auto Regressive Moving Average) in Time Series Modelling

what is VARMA? ARIMA是针对单一变量进行建模的方法,当我们需要进行多变量时序建模时,需要使用VAR and VMA and VARMA模型。 VAR:Vector Auto-Regressive,a generalization of the auto-regressive model for multivariate time series where the time series is station…

高吞吐SFTP连接池设计方案

背景 在现代的数据驱动环境中,安全文件传输协议(SFTP)扮演着至关重要的角色,它提供了一种安全、可靠的文件传输方式。我们目前项目是一个大型数据集成平台,跟上下游有很多文件对接是通过SFTP协议,当需要处…

如何修复advapi32.dll丢失无法启动程序的问题

如果你在运行Windows程序时遇到了“advapi32.dll丢失无法启动程序”的错误消息,那么这意味着你的计算机缺少这个DLL文件。在本文中,我们将提供一些解决方案,帮助你解决这个问题并恢复计算机的正常运行。 一.advapi32.dll丢失电脑的提示 关于…

C语言编译成库文件的要求

keil编译成库文件 在Keil中,将C语言源文件编译成库文件通常需要进行以下步骤: 创建一个新的Keil项目,并将所需的C语言源文件添加到该项目中。 在项目设置中配置编译选项,确保生成的目标文件符合库文件的标准格式。 编译项目&…

React Three Fiber快速入门

https://threejs-journey.com/lessons/what-are-react-and-react-three-fiber#学习笔记 1.基础知识 resize 填充模版 构建第一个场景 we didn’t have to create a scenewe didn’t have to create the webglrenderthe scene is being rendered on each framethe default…

C++字符串操作【超详细】

零.前言 本文将重点围绕C的字符串来展开描述。 其中,对于C/C中字符串的一些区别也做出了回答,并对于C的(string库)进行了讲解,最后我们给出字符串的不同表达形式。 开发环境: VS2022 一.字符串常量跟字…

leetcode 热题 100_相交链表

题解一: 哈希表:两链表出现的第一个相同的值就是相交节点,因此我们先用哈希记录链表A所有出现过的值,再遍历链表B查找哈希表,找出第一个相同的值即为结果。 import java.util.HashSet;public class Solution {public …

如何使用Hexo搭建个人博客

文章目录 如何使用Hexo搭建个人博客环境搭建连接 Github创建 Github Pages 仓库本地安装 Hexo 博客程序安装 HexoHexo 初始化和本地预览 部署 Hexo 到 GitHub Pages开始使用发布文章网站设置更换主题常用命令 插件安装解决成功上传github但是web不更新不想上传文章处理方式链接…

【解读】OWASP 大语言模型(LLM)安全测评基准V1.0

大语言模型(LLM,Large Language Model)是指参数量巨大、能够处理海量数据的模型, 此类模型通常具有大规模的参数,使得它们能够处理更复杂的问题,并学习更广泛的知识。自2022 年以来,LLM技术在得到了广泛的应…

ReactNative项目构建分析与思考之react-native-gradle-plugin

前一段时间由于业务需要,接触了下React Native相关的知识,以一个Android开发者的视角,对React Native 项目组织和构建流程有了一些粗浅的认识,同时也对RN混合开发项目如何搭建又了一点小小的思考。 RN环境搭建 RN文档提供了两种…

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测 目录 多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.多维时序 …

字典Trie树

字典树 : 概念 建字典树 查询 : 代码模板 : const int N100010; int n; char s[N]; int ch[N][26],cnt[N],idx;void insert(char *s){int p0;for(int i0; s[i]; i ){int js[i]-a;//字母映射if(!ch[p][j])ch[p][j]idx;pch[p][j];}cnt[p];//插入次数 } int query(char *s){i…