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"
              • }
              • }'

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】(2024.03.05-2024.03.15)论文阅读简单记录和汇总

(2024.03.05-2024.03.15)论文阅读简单记录和汇总 2024/03/05:随便简单写写,以后不会把太详细的记录在CSDN,有道的Markdown又感觉不好用。 目录 (ICMM 2024)Quality Scalable Video Coding Based on Neural Represent…

.net6Api后台+uniapp导出Excel

之前的这个是vue3写法,后端是.net6Api.net6Api后台VUE3前端实现上传和下载文件全过程_vue3 下载文件-CSDN博客 在现在看来似乎搞的复杂了,本次记录一下.net6Api后台uniapp导出Excel。 后端和之前的不一样,前端也和之前的不一样,…

【C语言】深入理解指针(进阶篇)

一、数组名的理解 数组名就是地址&#xff0c;而且是数组首元素的地址。 任务&#xff1a;运行以下代码&#xff0c;看数组名是否是地址。 #include <stdio.h> int main() {int arr[] { 1,2,3,4,5,6,7,8,9,0 };printf("&arr[0] %p\n", &arr[0]);pri…

IntelliJ IDEA Dev 容器

​一、dev 容器 开发容器&#xff08;dev 容器&#xff09;是一个 Docker 容器&#xff0c;配置为用作功能齐全的开发环境。 IntelliJ IDEA 允许您使用此类容器来编辑、构建和运行您的项目。 IntelliJ IDEA 还支持多个容器连接&#xff0c;这些连接可以使用 Docker Compose …

从零开始:神经网络(1)——神经元和梯度下降

声明&#xff1a;本文章是根据网上资料&#xff0c;加上自己整理和理解而成&#xff0c;仅为记录自己学习的点点滴滴。可能有错误&#xff0c;欢迎大家指正。 一. 神经网络 1. 神经网络的发展 先了解一下神经网络发展的历程。从单层神经网络&#xff08;感知器&#xff09;开…

HCIP --- BGP 综合实验

实验拓扑图&#xff1a; 实验要求&#xff1a; 1.AS1存在两个环回&#xff0c;一个地址为192.168.1.0/24该地址不能 在任何协议中宣告 AS3中存在两个环回&#xff0c;一个地址为192.168.2.0/24该地址不能在任何协议中宣告&#xff0c;最终要求这两个环回可以互相通讯. 2.整个…

C语言--函数指针变量和函数指针数组的区别(详解)

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针&#xff0c;它可以用来存储函数的地址&#xff0c;并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面&#xff1a; 回调函数&#xff1a;函数指针变量可以作为参数传递给其他函数&…

字典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…

零知识玩转AVH(1)—— 初次接触

零、引言 近期&#xff0c;CSDN上的一位工作人员让我参加一个嵌入式的活动。她的原话是这样&#xff1a;“咱们这个主要是百度智能云虚拟硬件的活动&#xff0c;就是根据ARM的avh硬件&#xff08;虚拟硬件&#xff09;铲平&#xff0c;去开发一个demo&#xff0c;以及根据demo…

全栈的自我修养 ———— css中常用的布局方法flex和grid

在项目里面有两种常用的主要布局:flex和grid布局&#xff08;b站布局&#xff09;&#xff0c;今天分享给大家这两种的常用的简单方法&#xff01; 一、flex布局1、原图2、中心对齐3、主轴末尾或者开始对其4、互相间隔 二、grid布局1、基本效果2、加间隔3、放大某一个元素 一、…

1950-2022年各区县逐年平均降水量数据

1950-2022年各区县逐年平均降水量数据 1、时间&#xff1a;1950-2022年 2、指标&#xff1a;省逐年平均降水量 3、范围&#xff1a;33省&#xff08;不含澳门&#xff09;、360地级市、2800个县 4、指标解释&#xff1a;逐年平均降水数据是指当年的日降水量的年平均值&…

力扣面试经典150 —— 11-15题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题&#xff0c;安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题&#xff0c;文中 “数组” 通常指 python 列表&#xff1b;文中 “指针” 通常指 python 列表索引 文章目录 11. [中等] H指…

Fastjson 1.2.24 反序列化导致任意命令执行漏洞复现(CVE-2017-18349)

写在前面 CVE-2017-18349 指的是 fastjson 1.2.24 及之前版本存在的反序列化漏洞&#xff0c;fastjson 于 1.2.24 版本后增加了反序列化白名单&#xff1b; 而在 2019 年&#xff0c;fastjson 又被爆出在 fastjson< 1.2.47 的版本中&#xff0c;攻击者可以利用特殊构造的 …

简述epoll实现

所有学习笔记&#xff1a;https://github.com/Dusongg/StudyNotes 文章目录 epoll数据结构的选择&#xff1f;以tcp为例&#xff0c;网络io的可读可写如何判断&#xff1f;epoll如何做到线程安全&#xff1f;LT和ET如何实现&#xff1f;tcp状态和io的读写有哪些关系&#xff1…

【C语言】linux内核tcp_write_xmit和tcp_write_queue_purge

tcp_write_xmit 一、讲解 这个函数 tcp_write_xmit 是Linux内核TCP协议栈中的一部分&#xff0c;其基本作用是发送数据包到网络。这个函数会根据不同情况推进发送队列的头部&#xff0c;确保只要远程窗口有空间&#xff0c;就可以发送数据。 下面是对该函数的一些主要逻辑的中…

Spring Boot单元测试与热部署简析

1 Spring Boot的简介 Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它简化了Spring应用程序的开发过程&#xff0c;提供了自动配置和默认配置&#xff0c;使得开发者只需专注于业务逻辑的实现&#xff0c;而不用去关注繁琐的配置问题。 Spring …

ElasticSearch 底层读写原理

ElasticSearch 底层读写原理 ​ 写请求是写入 primary shard&#xff0c;然后同步给所有的 replica shard&#xff1b;读请求可以从 primary shard 或 replica shard 读取&#xff0c;采用的是随机轮询算法。 1、ES写入数据的过程 1.选择任意一个DataNode发送请求&#xff0c…

Java17 --- springCloud之LoadBalancer

目录 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom 1.3、80服务controller层&#xff1a; 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom <!--loadbalancer-->&…

WPF 窗口添加投影效果Effect

BlurRadius&#xff1a;阴影半径 Color&#xff1a;颜色 Direction&#xff1a;投影方向 ShadowDepth&#xff1a;投影的深度 <Window.Effect><DropShadowEffect BlurRadius"10" Color"#FF858484" Direction"300" ShadowDepth&quo…

LLM长上下文外推方法

现在的LLM都集中在卷上下文长度了&#xff0c;最新的Claude3已经支持200K的上下文&#xff0c;见&#xff1a;cost-context。下面是一些提升LLM长度外推能力的方法总结&#xff1a; 数据工程 符尧大佬的最新工作&#xff1a;Data Engineering for Scaling Language Models to …