day01-ElasticStack+Kibana

ElasticStack-数据库

在这里插入图片描述

#官网https://www.elastic.co/cn/
#下载7.17版

环境准备

主机名IP系统版本VMware版本
elk110.0.0.91Ubuntu 22.04.417.5.1
elk210.0.0.92Ubuntu 22.04.417.5.1
elk310.0.0.93Ubuntu 22.04.417.5.1

单机部署ES

1.下载ES软件包,放到/usr/local下
[14:59:25 root@elk1:~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.23-amd64.deb


2.安装ES软件包 
[15:26:21 root@elk1:/usr/local]# dpkg -i elasticsearch-7.17.23-amd64.deb


3.添加别名(可选操作)
[15:28:06 root@elk1:~]#vim .bashrc 
...
	alias yy='egrep -v "^.*#|^$"' 
...
[15:28:59 root@elk1:~]#source .bashrc 


4.修改ES的配置文件
[root@elk91 ~]# vim /etc/elasticsearch/elasticsearch.yml 
...
# 指定集群的名称
cluster.name: Cloud Native
# 指定数据的路径
path.data: /var/lib/elasticsearch
# 指定日志的路径
path.logs: /var/log/elasticsearch
# 指定监听的IP地址
network.host: 0.0.0.0
# 指定监听的端口号
http.port: 9200
# 指定当前节点是一个单点而非集群
discovery.type: single-node


[15:35:54 root@elk1:~]# yy /etc/elasticsearch/elasticsearch.yml 
cluster.name: Cloud Native
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node




5.启动ES服务
[15:35:55 root@elk1:~]# systemctl enable --now elasticsearch.service
[15:40:27 root@elk1:~]#   ss -ntl | egrep "9200|9300"

LISTEN 0      4096               *:9300            *:*          
LISTEN 0      4096               *:9200            *:*        

`--------------------------#说明------------------------`
--now   即时生效
ss      显示网络连接状态的工具
-n      表示不进行域名解析
-t      表示只显示 TCP 协议的连接
-l      表示只显示处于监听状态(LISTEN)的连接
`------------------------------------------------------`


	
6.访问测试 
[15:44:23 root@elk1:~]# curl 10.0.0.91:9200
{
  "name" : "elk1",
  "cluster_name" : "Cloud Native",
  "cluster_uuid" : "0JGTAahZR5Kwx1Na5psicQ",
  "version" : {
    "number" : "7.17.23",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "61d76462eecaf09ada684d1b5d319b5ff6865a83",
    "build_date" : "2024-07-25T14:37:42.448799567Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.3",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}



[15:44:43 root@elk1:~]# curl 10.0.0.91:9200/_cat/nodes
10.0.0.91 42 97 1 0.01 0.02 0.02 cdfhilmrstw * elk1

扩容单点ES成集群

注:少一张集群的图

#将我们的单点扩容成ES集群模式
1.拷贝安装包到其他节点
[16:25:26 root@elk1:/usr/local]# scp elasticsearch-7.17.23-amd64.deb 10.0.0.92:/usr/local

[16:25:26 root@elk1:/usr/local]# scp elasticsearch-7.17.23-amd64.deb 10.0.0.93:/usr/local


2.其他节点安装ES服务
[16:27:23 root@elk2:/usr/local]#dpkg -i elasticsearch-7.17.23-amd64.deb 

[16:27:50 root@elk3:/usr/local]# dpkg -i elasticsearch-7.17.23-amd64.deb 


3.elk93节点停止服务
[16:29:15 root@elk1:~]# systemctl stop elasticsearch.service


4.修改配置文件,其实就是改变了discovery。
[16:39:02 root@elk1:~]# yy /etc/elasticsearch/elasticsearch.yml 
cluster.name: Cloud Native
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["10.0.0.91", "10.0.0.92","10.0.0.93"]




5.将配置文件同步到其他节点
[16:32:34 root@elk1:~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.92:/etc/elasticsearch/

[16:33:17 root@elk1:~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.93:/etc/elasticsearch/


6.启动服务
[16:39:27 root@elk1:~]# systemctl enable --now elasticsearch
[16:29:18 root@elk2:~]# systemctl enable --now elasticsearch
[16:29:20 root@elk3:~]# systemctl enable --now elasticsearch



7.验证服务是否启动成功
[16:46:45 root@elk1:~]# curl 10.0.0.93:9200/_cat/nodes
10.0.0.91 16 97 2 0.00 0.08 0.09 cdfhilmrstw * elk1
10.0.0.92  9 96 2 0.00 0.07 0.06 cdfhilmrstw - elk2
10.0.0.93  7 97 4 0.03 0.17 0.10 cdfhilmrstw - elk3


[16:50:15 root@elk1:~]# for i in 91 92 93;do curl -s 10.0.0.$i:9200|grep cluster_uuid;done
  "cluster_uuid" : "0JGTAahZR5Kwx1Na5psicQ",
  "cluster_uuid" : "0JGTAahZR5Kwx1Na5psicQ",
  "cluster_uuid" : "0JGTAahZR5Kwx1Na5psicQ",


`-----------------------#说明----------------------------`
curl 命令 
-s   #只输出请求的结果内容
-X   #选项用于指定 HTTP 方法,这里指定为PUT,表示发送一个 HTTP PUT 请求。“PUT” 是一种 HTTP 请求方法。它的主要作用是请求服务器存储一个资源,并用请求中的数据来更新服务器上指定资源的全部内容。

`-------------------------------------------------------`

ES常见术语

1.索引:index
	一个ES集群可以有多个索引,索引是用户进行数据读写的逻辑单元。

2.分片:shard
	一个索引最少对应一个分片,但实际工作中一个索引尽量对应多个分片,以便于数据的分布式存储。
	同一个分片只能属于一个节点。
	
3.副本:replica
	对分片进行备份。

4.文档:document
	实际用户存储的数据。
	
	源数据:用户实际存储的数据。
	
	元数据:用于描述源数据的数据。
	
5.分配:allocation
	指的是将索引的不同分片分配到整个集群的过程。

ES的索引API管理实战

1.创建索引:
#ES默认创建一个分片和一个副本
[17:43:30 root@elk1:~]# curl -X PUT 10.0.0.92:9200/linux01
{"acknowledged":true,"shards_acknowledged":true,"index":"linux01"}

#查看创建的索引(查看全部)
[17:45:47 root@elk1:~]# curl 10.0.0.92:9200/_cat/indices?v
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases HC7IMR4IQt2lzPHNQJLdTg   1   1         38            0     73.5mb         36.7mb
green  open   linux01          ja9sklLWTRmgRdrEuGNmxA   1   1          0            0       454b           227b


#ES创建索引时可以自定义分片和副本
[17:49:43 root@elk1:~]# curl -X PUT 'http://10.0.0.91:9200/linux02' \
-H 'Content-Type: application/json' \
-d '{
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 0
    }
}'




2.查看索引
[17:49:52 root@elk1:~]#curl 10.0.0.92:9200/_cat/indices?v
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases HC7IMR4IQt2lzPHNQJLdTg   1   1         38            0     73.5mb         36.7mb
green  open   linux02          hdq2U9YxQz2ScGa7U3JJcQ   3   0          0            0       681b           681b
green  open   linux01          ja9sklLWTRmgRdrEuGNmxA   1   1          0            0       454b           227b




3.删除索引
[17:51:30 root@elk1:~]#curl  -X DELETE 'http://10.0.0.91:9200/linux01'



4.修改索引
[17:52:22 root@elk1:~]# curl  -X PUT 'http://10.0.0.91:9200/linux02/_settings' \
-H 'Content-Type: application/json' \
-d '{
    "number_of_replicas": 1
}'


[17:52:23 root@elk1:~]# curl 10.0.0.92:9200/_cat/indices?v
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases HC7IMR4IQt2lzPHNQJLdTg   1   1         38            0     73.5mb         36.7mb
green  open   linux02          hdq2U9YxQz2ScGa7U3JJcQ   3   1          0            0      1.3kb           681b



`删除所有索引:(生产环境中要禁用此功能!)`
[17:52:43 root@elk1:~]# curl  -X DELETE 'http://10.0.0.91:9200/*' 

ES的API验证数据的存储和读取

#写入数据
[17:55:10 root@elk1:~]# curl --location --request POST 'http://10.0.0.91:9200/_bulk' \
-H 'Content-Type: application/json' \
-d '{"index" : { "_index" : "xiyouji"} }
{"name": "孙悟空","hobby": ["蟠桃","紫霞仙子","人参果"]} 
{"index" : { "_index" : "xiyouji"} }
{"name": "猪八戒","hobby": ["嫦娥","高小姐","蜘蛛精"]}
{"index" : { "_index" : "xiyouji"} }
{"name": "沙和尚","hobby": ["唐僧肉","挑行李"]}
{"index" : { "_index" : "xiyouji"} }
{"name": "唐三藏","hobby": ["女儿国","人参果"]} 
'

`---------------------------------------------------------`
#观察信息
{"took":473,"errors":false,"items"

`---------------------------------------------------------`




3.#查询数据
[18:43:41 root@elk1:~]#curl 10.0.0.92:9200/_cat/indices?v
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases HC7IMR4IQt2lzPHNQJLdTg   1   1         38            0     73.5mb         36.7mb
green  open   xiyouji          k3WHbwpYQYuygDXQ8WWyIQ   1   1          4            0     10.4kb          5.2kb



#查看详细数据
[18:04:26 root@elk1:~]#apt -y install jq
[18:44:31 root@elk1:~]#curl -s http://10.0.0.91:9200/xiyouji/_search|jq
{
  "took": 35,		#整个搜索操作花费的时间(单位通常是毫秒)
  "timed_out": false,	#搜索是否超时
  "_shards": {	#索引分片的信息
    "total": 1,	#索引中的总分片数量
    "successful": 1,	#成功处理搜索请求的分片数量
    "skipped": 0,	#被跳过的分片数量
    "failed": 0	#处理搜索请求失败的分片数量
  },
  "hits": {		#搜索结果的命中信息
    "total": {
      "value": 4,	#搜索结果的总数。
      "relation": "eq"	#表示总数的关系,这里 "eq" 可能表示精确匹配
    },
    "max_score": 1,	#在当前搜索结果中最高的相关性得分。得分越高,说明文档与搜索条件的匹配程度越高。
    "hits": [
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "oGlGw5IBa8Bmw7JlXVC6",
        "_score": 1,
        "_source": {
          "name": "孙悟空",
          "hobby": [
            "蟠桃",
            "紫霞仙子",
            "人参果"
          ]
        }
      },
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "oWlGw5IBa8Bmw7JlXVC6",
        "_score": 1,
        "_source": {
          "name": "猪八戒",
          "hobby": [
            "嫦娥",
            "高小姐",
            "蜘蛛精"
          ]
        }
      },
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "omlGw5IBa8Bmw7JlXVC6",
        "_score": 1,
        "_source": {
          "name": "沙和尚",
          "hobby": [
            "唐僧肉",
            "挑行李"
          ]
        }
      },
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "o2lGw5IBa8Bmw7JlXVC6",
        "_score": 1,
        "_source": {
          "name": "唐三藏",
          "hobby": [
            "女儿国",
            "人参果"
          ]
        }
      }
    ]
  }
}



#查询指定数据(例如:查询爱好包含"人参果"的人物有哪些)
[18:52:13 root@elk1:~]# curl -s -X GET 'http://10.0.0.91:9200/xiyouji/_search' \
-H 'Content-Type: application/json' \
-d '{
    "query": {
        "match": {
            "hobby": "人参果"
        }
    }
}'  | jq

{
  "took": 53,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 2.2372408,
    "hits": [
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "o2lGw5IBa8Bmw7JlXVC6",
        "_score": 2.2372408,
        "_source": {
          "name": "唐三藏",
          "hobby": [
            "女儿国",
            "人参果"
          ]
        }
      },
      {
        "_index": "xiyouji",
        "_type": "_doc",
        "_id": "oGlGw5IBa8Bmw7JlXVC6",
        "_score": 1.8925586,
        "_source": {
          "name": "孙悟空",
          "hobby": [
            "蟠桃",
            "紫霞仙子",
            "人参果"
          ]
        }
      }
    ]
  }
}

Kibana-数据可视化

部署Kibana

1.下载软件包到/usr/local下
[18:52:13 root@elk1:/usr/local]# wget http://192.168.13.253/Resources/ElasticStack/softwares/kibana-7.17.23-amd64.deb


2.安装Kibana
[18:55:54 root@elk1:/usr/local]#dpkg -i kibana-7.17.23-amd64.deb


3.修改Kibana配置文件
[18:59:10 root@elk1:~]#yy /etc/kibana/kibana.yml 
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]
i18n.locale: "zh-CN"


4.启动Kibana
[18:59:20 root@elk1:~]#systemctl enable --now kibana.service 
[18:59:42 root@elk1:~]#ss -ntl |grep 5601
LISTEN 0      511          0.0.0.0:5601      0.0.0.0:* 


5.浏览器访问Kibana(WebUI)
http://10.0.0.91:5601/

在这里插入图片描述

基于Kibana查询数据

查看

在这里插入图片描述

在这里插入图片描述

索引模式:可以匹配多个索引。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

HTML3D旋转相册

文章目录 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐

react18中react-thunk实现公共数据仓库的异步操作

redux及react-redux都只能实现数据的同步修改更新,有点类似于vue中的mutation,只能做同步操作,异步的话不用actions来实现。由于在项目始终不可避免要实现的异步数据的更新,这明显不够用了。是时候引入我们的异步中间件redux-thun…

计算机组成原理笔记9(指令系统,立即寻址,直接寻址,间接寻址.....)

指令操作码 操作码的位数决定了不同功能指令的多少,位数越多,所能表示的操作功能就越丰富。指令的操作码通常有两种编码格式: 定长操作码 定长操作码对于简化硬件设计,减少指令译码时间非常有利,例如IBM370指令系统&a…

Matlab 火焰识别技术

课题介绍 森林承担着为人类提供氧气以及回收二氧化碳等废弃气体的作用,森林保护显得尤其重要。但是每年由于火灾引起的事故不计其数,造成重大的损失。如果有一款监测软件,从硬件处获得的图像中监测是否有火焰,从而报警&#xff0…

uv: 一个统一的Python包管理工具

uv是由Astral公司开发的一个极其快速的Python包管理器,完全用Rust编写。它最初在2月份发布,作为pip工作流的替代品。现在,uv已经扩展成为一个端到端的解决方案,可以管理Python项目、命令行工具、单文件脚本,甚至Python本身。可以说,uv就像是Python界的Cargo:一个快速、可靠、易…

XQT_UI 组件|03 |加载组件 XQtLoading

XQtLoading 使用文档 简介 XQtLoading 是一个自定义的加载动画组件,旨在为用户提供可配置的旋转花瓣动画效果。它可以在应用程序中用于指示加载状态,提升用户体验。 特征 可配置性:用户可以根据需求调整旋转周期、缩放周期、最大/最小缩放…

置换环模板题E - Permute K times 2

输入样本 1 6 3 5 6 3 1 2 4样本输出 1 6 1 3 2 4 5每次操作后, P P P 都会发生如下变化: 第一次操作后, P P P 为 ( 2 , 4 , 3 , 5 , 6 , 1 ) (2,4,3,5,6,1) (2,4,3,5,6,1) 。第二次操作后, P P P 为 ( 4 , 5 , 3 , 6 , …

溪源飨提高免疫力治未病:硒+辅酶Q10强力组合

上周我和女友在亲友的见证下举行了庄重的订婚仪式。我和女友是经朋友介绍才认识的,认识时间并不算长。第一次见面,彼此就被对方深深地吸引了,真可谓一见钟情。我喜欢她那恬静的美,难以忘怀她那散发着迷人气息的双眸;她…

CMakeLists.txt 编写规则

目录 1. 注释 1.1 注释行 1.2 注释块 2. CMakeLists.txt的编写 2.1 同意目录下的源文件 2.2 SET指令 2.3 file和aux_source_directory 2.4 包含头文件 2.5 生成动态库和静态库 2.6 链接库文件 2.7 message指令 2.8 移除操作 2.9 find_library和find_package 3. 常…

【瑞吉外卖】-day01

目录 前言 第一天项目启动 获取资料 创建项目 ​编辑 连接本地数据库 连接数据库 修改用户名和密码 ​编辑创建表 创建启动类来进行测试 导入前端页面 创建项目所需目录 检查登录功能 登录界面 登录成功 登录失败 代码 退出功能 易错点 前言 尝试一下企业级项…

部署DNS主从服务器

一。DNS主从服务器作用: DNS作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速日不间断的域名查询服务 DNS 域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件&…

基于Multisim的单双声道音频功率放大电路设计与仿真

1.额定输出功率≥5W(fi1KHz,Ui100mV) 2.频率响应范围150Hz~13KHz 3.高、低音频端提升或衰减3dB 链接:https://pan.baidu.com/s/1exsBJoXdkb-gPr1IkxNvDg 提取码:jh5j

技术分享 | 大语言模型增强灰盒模糊测试技术探索

大语言模型凭借其庞大的参数规模,能够通过无监督学习从海量文本中获取知识,从而不仅能够深刻理解文本语义,还能准确识别文本的格式和结构。凭借对不同数据结构的深度理解,大语言模型已在众多领域得到广泛应用。其中,尤…

【Vue3】第三篇

Vue3学习第三篇 01. 组件组成02. 组件嵌套关系03. 组件注册方式04. 组件传递数据Props05. 组件传递多种数据类型06. 组件传递Props校验07. 组件事件08. 组件事件配合v-model使用09. 组件数据传递10. 透传Attributes 01. 组件组成 在vue当中,组件是最重要的知识&…

移动开发(五):.NET MAUI中自定义主题设置

目录 一、.NET MAUI主题设置原理 二、.NET MAUI主题设置案例 2.1 创建主题文件 2.2 修改App.xaml 文件 2.3 设置默认主题的三种方式 2.4 通过按钮切换主题 三、.NET MAUI主题设置技巧 四、总结 今天给大家分享.NET MAUI应用中如何自定义主题,提升APP本身个性…

Redis 单机、主从、哨兵和集群架构详解和搭建

目录 前言 单机部署 检查安装 gcc 环境 下载安装 Redis 启动 Redis 关闭 Redis 配置Redis 主从部署 整体架构图 主从复制配置 重启 Redis 验证 主从复制的作⽤ 主从复制缺点 哨兵部署(Sentinel) 整体架构图 哨兵模式配置 启动哨兵 验证…

Axure简单进度条制作,原型文件可下载

1.先看效果 2.需要用到的主要元件 a动态面板遮挡进度条左侧部分 b进度条底色背景 c百分比数字 3.将进度条、背景、百分比数字设置为隐藏 4.为按钮【选择文件】添加事件,并显示相应的原件 显示进度条process向右侧滑动 5.设置百分比数字及显示时每25毫秒加1 如…

html----图片按钮,商品展示

源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图标</title><style>.box{width:…

MFC的SendMessage与PostMessage的区别

一、SendMessage 同步操作&#xff1a; SendMessage 是一个同步函数&#xff0c;它会将消息发送到指定的窗口&#xff0c;并等待该窗口的消息处理过程完成&#xff0c;然后返回。这意味着它会阻塞当前线程&#xff0c;直到消息处理完成。 直接调用&#xff1a; SendMessage 会…

解决Redis缓存击穿(互斥锁、逻辑过期)

文章目录 背景代码实现前置实体类常量类工具类结果返回类控制层 互斥锁方案逻辑过期方案 背景 缓存击穿也叫热点 Key 问题&#xff0c;就是一个被高并发访问并且缓存重建业务较复杂的 key 突然失效了&#xff0c;无数的请求访问会在瞬间给数据库带来巨大的冲击 常见的解决方案…