当前位置: 首页 > news >正文

ELK介绍以及搭建

基础环境

hostnamectl set-hostname els01
hostnamectl set-hostname els02
hostnamectl set-hostname els03
hostnamectl set-hostname kbased -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld & systemctl disable firewalld
# 安装jdk
cd  /usr/local
tar -xvf jdk1.8.0_231.tar.gzvi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATHsource /etc/profile

elasticsearch

安装

# 创建用户与组
groupadd -g 500 elsmkdir -p /opt/app/els
useradd -d /opt/app/els -u 2000 -g els elsecho "els#123" | passwd --stdin elscp -r etc/skel/.bash* /opt/app/elscd /opt/app
chown -R els:els /opt/app/els
chmod -R 755 /opt/app/elssu - els
tar -xvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /opt/app/els
chown -R els:els /opt/app/els

更改用户可创建的线程数

vi /etc/security/limits.d/20-nproc.confels soft nproc 4096

在这里插入图片描述否则报错:max number of threads [1024] for user [elsearch] likely too low, increase to at least [4096]

更改打开文件数与线程数

vi /etc/security/limits.confels        soft    	nofile          65536
els        hard    	nofile          131072
els        soft    	nproc          4096
els        hard    	nproc          4096

在这里插入图片描述
否则报错:node validation exception bootstrap checks failed

更改系统控制文件

Elasticsearch 默认使用 mmapfs 目录存储索引,而 Linux 默认对 mmap 计数限制可能太低,会导致内存异常。系统控制文件是管理系统中的各种资源控制的配置文件,ES 需要开辟一个 65536 字节以上空间的虚拟内存,但 Linux 又不允许任何用户直接开辟虚拟内存,所以通过如下方式修改:

vi /etc/sysctl.confvm.max_map_count=655360sysctl -p

在这里插入图片描述
否则报错:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

环境变量

vi  /opt/app/els/.bash_profileexport JAVA_HOME=/usr/local/jdk1.8.0_231
export ES_HOME=$HOME/elasticsearch-7.6.2
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ES_HOME/lib
export PATH=$HOME/bin:$JAVA_HOME/bin:$ES_HOME/bin:$PATHvi  /opt/app/elsearch/.bashrcES_HOME=/opt/app/elsearch/elasticsearch-7.6.2
PATH=$PATH:$ES_HOME/binsource  ~/.bash_profile & source  ~/.bashrc
su - els
mkdir -p /opt/app/elsearch/data /opt/app/elsearch/logsvi elasticsearch-7.6.2/config/elasticsearch.yml#集群名称
cluster.name: DR-ELK
#默认情况下,Elasticsearch 将使用随机生成的 UUID 的前七个字符作为节点 ID,该节点名称一经生成后,即使重启服务亦不会变更
node.name: els01path.data: /opt/app/elsearch/data
path.logs: /opt/app/elsearch/logs#默认情况下,此 elasticsearch 服务绑定到回环地址127.0.0.1。修改为节点ip在浏览器中访问不成功
network.host: 0.0.0.0#集群中拥有被选举成 Master 节点资格的地址列表
discovery.seed_hosts: ["ip1:9400","ip2:9400","ip3:9400"]#在一个新集群初始化时,符合 Master 节点资格的节点集
cluster.initial_master_nodes: ["ip1:9400","ip2:9400","ip3:9400"]#为最多主节点个数
discovery.zen.minimum_master_nodes: 1
#为超时后生效节点数
gateway.recover_after_nodes: 1
#没有这两项配置7.6.2版本的kibana将无法调用ES# 文本最后追加
http.cors.enabled: true
http.cors.allow-origin: "*"

注释掉判断是否存在 JAVA_HOME变量的流程分支,直接使用操作系统的JDK

cd /opt/app/elsearch/elasticsearch-7.6.2/bin/
cp elasticsearch-env elasticsearch-env.bakvi /opt/app/elsearch/elasticsearch-7.6.2/bin/elasticsearch-env

在这里插入图片描述

su - els
cd /opt/app/elsearch/elasticsearch-7.6.2/bin
#以守护进程模式运行
./elasticsearch -d
#停止
ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}' | xargs kill -SIGTERM
#查看状态
cat /opt/app/elsearch/logs/集群名称.log
curl -X GET http://ip:9200

在这里插入图片描述

kibana

安装

groupadd -g 500 kbn
mkdir -p /opt/app/kbn
useradd -d /opt/app/kibana -u 2000 -g kba kba/bin/echo "kba#123" | passwd --stdin kbacp -r /etc/skel/.bash* /opt/app/kbachown -R kbn:kbn /opt/app/kba
chmod -R 755 /opt/app/kbasu - kba
tar -xvf kibana-7.6.2-linux-x86_64.tar.gz -C /opt/app/kba
chown -R kba:kba /opt/app/kibana

环境变量

vi  /opt/app/kba/.bashrc
# 注意jdk相关变量
export KIBANA_HOME=/opt/app/kibana/kibana-7.6.2-linux-x86_64
export PATH=$PATH:$KIBANA_HOME/binsource  ~/.bashrc

在这里插入图片描述
在这里插入图片描述

su - kba
vi kibana-7.6.2-linux-x86_64/config/kibana.yml
# 端口
server.port: 5601
# 服务主机名
server.host: "0.0.0.0"
# 指定ES服务,可以指定多个
elasticsearch.hosts: ["http://ip1:9200","http://ip2:9200","http://ip3:9200"]
# 进程文件
pid.file: /opt/app/kibana/kibana.pid
# 日志路径
logging.dest: /opt/app/kibana/logs/kibana.log
# 汉化
i18n.locale: "zh-CN"
mkdir -p /opt/app/kibana/logs/su - kba
cd  /opt/app/kibana/kibana-7.6.2-linux-x86_64/bin
#后台运行
./kibana &
#停止
ps -ef | grep kibana | grep -v grep | awk '{print $2}' | xargs kill -SIGTERM
#查看
cat /opt/app/kibana/logs/kibana.logs
#浏览器访问http://ip:5601/

在这里插入图片描述

es核心概念

节点分类

节点是一个独立的服务器实例或进程,用于存储数据并参与集群的索引和搜索功能。每个节点都有自己的名称、角色和职责。

master node:负责管理集群的整体状态和执行一些关键的集群级别的操作。主节点负责将分片存储到数据节点、维护集群的状态信息、决定哪些节点是集群的一部分等。本身不负责存储实际的数据。

data node:数据节点负责存储实际的数据。管理索引的分片,并处理与数据相关的操作,如搜索、索引和删除。数据节点存储索引的一部分,并通过将数据分布在多个节点上来实现水平扩展。

coordinating node:协调节点是可选的节点类型,主要用于处理搜索请求的协调工作。不存储实际的数据,而是负责接收来自客户端的搜索请求,并将这些请求转发给数据节点。协调节点有助于分散搜索请求的负载,特别是在大规模集群中。

ingest node:预处理节点,负责数据的预处理,如数据的转换和附加处理。这允许在将数据索引到es之前对数据进行修改或过滤。该节点通常用于日志处理和数据管道中。

machine learning node:用于执行与机器学习相关的任务,如异常检测或趋势分析。

remote-eligible node:远程合格节点,拥有远程集群客户端角色,可以充当远程客户端。默认情况下,集群内任意节点都可以作为跨集群的客户端连接到远程集群。

transform节点:用于执行数据转换操作,例如从一个索引中提取数据并将其转换为另一个索引,以便在数据仓库和分析方面进行使用。

index

索引是一个逻辑存储,类似关系型数据库中的表,用来存储管理相关数据,数据以JSON格式存储在索引的基本单元-文档Document。

shard

一条索引的数据往往会被分为多个分片进行存储,每个分片是一个独立的存储单元,底层为一个Lucene索引,可以在集群中的不同节点上分布,以提供高可用性和负载均衡。

分片的目的

允许索引水平分割和分布存储,实现数据和负载的分布。

分片的数量

在索引创建后不能被更改。通常,每个主分片的大小应该适中,以便在集群中的各个节点上均匀分布负载,也有利于数据的快速查询。

主分片

每个索引都可以被分为一个或多个主分片。主分片存储索引的一部分数据,并负责处理搜索和查询操作。主分片的数量设置在索引创建时便被定义,无法进行动态修改。

Replica

副本是指索引的一个复制,每个索引可以被配置为具有零个或多个副本。副本可以提高集群的可用性和容错性,以及提高搜索性能。

每个索引被划分为一个或多个主分片。主分片负责存储索引的一部分数据,以及处理搜索和写入请求。为了提高可用性和容错性,每个主分片可以有零个或多个副本。

每个索引的副本数量是可以配置的。在创建索引时,可以指定副本的数量。副本数量的选择取决于对可用性和性能的需求。

maping

映射是索引中文档的规范,定义了结构和字段属性,描述了文档中的每个字段的数据类型、分词器、是否索引等信息。类似于关系型数据库中的Schema。

示例

在这里插入图片描述

index的名称为example_index

title是一个文本字段,使用标准分词器
author是一个关键字字段,通常用于精确匹配
publish_date是一个日期字段,用于存储日期信息
views是一个整数字段,用于存储整数值
tags是一个关键字字段,用于存储标签信息

相关文章:

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…...

Spring中的ApplicationContext.publishEvent

简单理解 其实就是监听处理。比如找工作平台上,雇主 employer 发布自己的雇佣条件,目的是平台中有符合条件的求职者时,及时向雇主推荐。求职者发布简历,当平台发现某个求职者比较符合条件,就触发被动,推荐…...

jackson、gson、fastjson和json-lib四种主流json解析框架对比

一、四种框架的介绍和对比 在Java中,Jackson、Gson、Fastjson和json-lib都是流行的JSON解析框架,它们各自有一些特点和优势。下面是对它们进行简要介绍和对比: 1.1 介绍 1) Jackson: Jackson是由FasterXML开发的一个高性能的J…...

已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法

今天在使用 IDEA 使用 MyBatis 的时候遇到了这种情况: 可以看到 userMapper 下有个红色的波浪警告,虽然代码没有任何问题,能正常运行,但是这个红色警告在这里杵着确实让人很窝心。 于是我在网上找了找,最终明白了原因…...

在jar里限制指定的包名才可调用(白名单)。

1. 在jar包中定义一个接口,例如 用于检查传入的hash值是否匹配预设的值。 2. 在调用接口的地方,获取当前应用的hash值。 3. 将当前应用的hash值与预设的值进行比较,如果匹配,则允许调用接口;否则,拒绝调用。…...

python 提取PDF文字

使用pdfplumber,不能提取扫描的pdf和插入的图片。 import pdfplumberfile_path rD:\UserData\admindesktop\官方文档\1903_Mesh-Models-Overview_FINAL.pdf with pdfplumber.open(file_path) as pdf:page pdf.pages[0]print(page.extract_text()) # 所以文字prin…...

电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型

电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的重要趋势。电气机械行业作为传统制造业的重要组成部分,也面临着数字化转型的挑战和机遇。为了更好地推进电气机械行…...

C# (WebApi)整合 Swagger

SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看,且没办法显示方法注释等不方便的操作,我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…...

导入excel某些数值是0

目录 导入excel某些数值是0数据全部都是0原因解决 部分数据是0原因解决 导入excel某些数值是0 数据全部都是0 有一列“工单本月入库重量”全部的数据都是0 原因 展示的时候,展示的字段和内表需要展示的字段不一致,导致显示的是0。 解决 修改展示的字…...

wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片

采用uniapp-vue3实现,透明辉光动画卡片,卡片内容包含标签、标题、副标题、图片 支持H5、微信小程序(其他小程序未测试过,可自行尝试) 可用于参考学习 可到插件市场下载尝试: https://ext.dcloud.net.cn/plu…...

Spark: a little summary

转眼写spark一年半了,从之前写机器学习组件、做olap到后面做图计算,一直都是用的spark,惭愧的是没太看过里面的源码。这篇文章的目的是总结一下Spark里面比较重要的point,重点部分会稍微看一下源代码,因为spark是跟cli…...

018—pandas 生成笛卡尔积排列组合合并多列字符串数据

思路: 本需求需要将给定的几列数据,生成一个排列组合形式的数据列,利用到 Pandas 多层索引生成的笛卡尔积的方法。 二、使用步骤 1.引入库 代码如下(示例): import pandas as pd2.读入数据 代码如下&…...

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频,在这个文章做一些笔记和心得,本篇文章就写了一些基础算法…...

bugku3

前女友 md5 进去又是讴歌乱进的东西 源代码 看到code.txt,访问一下 <?php if(isset($_GET[v1]) && isset($_GET[v2]) && isset($_GET[v3])){$v1 $_GET[v1];$v2 $_GET[v2];$v3 $_GET[v3];if($v1 ! $v2 && md5($v1) md5($v2)){if(!strcmp($v3,…...

相机的白平衡

相机的白平衡是指相机根据拍摄环境的光源色温&#xff0c;调整图像中白色看起来应该是白色的功能。白平衡的设置对于确保图像中的颜色准确性非常重要&#xff0c;因为不同光源的色温会使白色看起来有不同的色调。 通常&#xff0c;相机提供了一些预设的白平衡模式&#xff0c;…...

刷题日记-Day2- Leedcode-977. 有序数组的平方,209. 长度最小的子数组,59. 螺旋矩阵 II-Python实现

刷题日记Day2 977 有序数组的平方209. 长度最小的子数组59. 螺旋矩阵 II 977 有序数组的平方 链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组…...

Linux命令-chcon命令(修改对象(文件)的安全上下文)

说明 chcon命令 是修改对象&#xff08;文件&#xff09;的安全上下文&#xff0c;比如&#xff1a;用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用 --reference 选项时&#xff0c;把指定文件的安全环境设置为与参考文件相同。chcon命令位于 /…...

【漏洞复现】大华DSS视频管理系统信息泄露漏洞

Nx01 产品简介 大华DSS数字监控系统是一个在通用安防视频监控系统基础上设计开发的系统&#xff0c;除了具有普通安防视频监控系统的实时监视、云台操作、录像回放、报警处理、设备治理等功能外&#xff0c;更注重用户使用的便利性。 Nx02 漏洞描述 大华DSS视频管理系统存在信…...

websocket了解下

websocket请求长啥样 GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ Sec-WebSocket-Version: 13 啥是websocket websocket是http的一种&#xff0c;服务器可以主动向客户端推送信息&#xff0c;…...

docker install private registry 【docker 安装 registry 仅证书认证】

预备条件&#xff1a; 安装docker 我们设定镜像仓库域名为registry01.dev.com 配置/etc/hosts 192.168.23.51 registry01.dev.com安装 registry #!/bin/bashreg_ip$1 reg_n$2 reg_port$3if [ $# -eq 0 ]; thenecho "Usage: $0 [reg_ip] [registry_name]"echo &q…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...