Elastic Stack 环境配置与框架简介

news2024/11/27 18:27:36

目录

简介

什么是Elastic Stack

Elasticasearch

Logstash

Kibana

Beats

框架图

下载

配置

一、安装java环境

启动

Elasticsearch

Kibana

FileBeat

Logstash

测验


简介

什么是Elastic Stack

Elastic Stack缩写为elk,它由三个软件组成:ElasticsearchLogstashKibana,因此缩写为elk,随着版本的变化,添加了一个新软件Beats,因此其全名现在为ELKB

Elasticasearch

Elasticasearch是一个基于java的开源分布式搜索引擎。其特点如下:

  1. 分布式
  2. 无需配置
  3. 自动发现
  4. 索引复制机制
  5. Restful风格界面
  6. 多个数据源
  7. 自动搜索加载

Elasticasearch为所有类型的数据提供近乎实时的搜索和分析。无论您拥有结构化或非结构化文本、数字数据或地理空间数据,Elasticsearch都可以以支持快速搜索的方式高效地存储和索引。

Logstash

Logstash是一个轻量级的日志收集系统。它以管道的形式工作。它可以过滤从管道输入的数据,并在输出时将结果传输到任何服务器

Kibana

KibanaElasticsearch的可视化服务。它可以直观地显示Elasticsearch生成的数据,并支持多样化的分析和演示

Beats

BeatsElastic开发的客户端程序,用于存储在监控服务器中。它主要用于数据收集,可以将收集的数据发送到ElasticsearchLogstash

框架图

 Beats(FileBeats)

Beats->Logstash->Elasticsearch->Kibana

下载

本文中使用的beats功能:filebeat

Name

Link

1Elasticasearchdownload
2

Logstash

download
3

Kibana

download
4

beats

download

配置

一、安装java环境

  • 安装JDK
sudo apt-get install openjdk-8-jdk
  • 检查Java
$ java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-8u352-ga-1~22.04-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
  • 关闭防火墙
sudo ufw disable

启动

Elasticsearch

打开配置文件

vim config/elasticsearch.yml

打开以下两个字段并设置网络。主机设置为0.0.0.0,以便Internet可以访问此计算机

# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: 0.0.0.0
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
http.port: 9200

关闭GeoIp采集

ingest.geoip.downloader.enabled: false

关闭SSH身份验证。你可以检查自己的情况。如果您在没有证书的情况下通过HTTPS访问浏览器,将被阻止

xpack.security.enabled: false
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

添加跨域访问

http.cors.enabled: true
http.cors.allow-origin: "*"

修改jvm虚拟机的映射内存以提高文件处理速度

vim config/jvm.options

修改如下:

如果使用Java 19,可以添加--enable-preview参数来改进MMapDirectory

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## The heap size is automatically configured by Elasticsearch
## based on the available memory in your system and the roles
## each node is configured to fulfill. If specifying heap is
## required, it should be done through a file in jvm.options.d,
## which should be named with .options suffix, and the min and
## max should be set to the same value. For example, to set the
## heap to 4 GB, create a new file in the jvm.options.d
## directory containing these lines:
##
-Xms4g
-Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/8.5/heap-size.html
## for more information
##
################################################################

修改虚拟MAP大小

sudo vim /etc/sysctl.conf

将此内容添加到文件并保存

vm.max_map_count=262144

重置sysctl

sysctl -p

启动

./bin/elasticsearch

在浏览器中打开以下地址,并将IP更改为服务器的IP(非环回地址)

http://x.x.x.x:9200/

如果成功,浏览器将返回以下输出:

{
  "name" : "xxxx",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "mkUeEpucQEWlPVQpJXwOjw",
  "version" : {
    "number" : "8.5.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "a846182fa16b4ebfcc89aa3c11a11fd5adf3de04",
    "build_date" : "2022-11-17T18:56:17.538630285Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.1",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Kibana

配置端口和地址。使用0.0.0.0作为通用地址

vim config/kibana.yaml

添加以下内容:

# =================== System: Kibana Server ===================
# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"

启动

./bin/kinaba

通过浏览器访问以下地址:

http://x.x.x.x:5601/

如果启动正常,你可以看到以下页面:

 

FileBeat

首先,创建测试日志文件并输入测试内容:

touch test.log
echo test message > test.log

打开filebeat。yml并修改以下内容
测验log是刚刚创建的文件,你可以根据你的要求更改:

# filestream is an input for collecting log messages from files.
- type: filestream
 
  # Unique ID among all inputs, an ID is required.
  id: my-filestream-id
 
  # Change to true to enable this input configuration.
  enabled: true
 
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /home/logserver_bzm/test.log

屏蔽elastic search输出

#output.elasticsearch:
  # Array of hosts to connect to.
  #  hosts: ["localhost:9200"]

打开logstash

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

启动

./filebeat -e -c filebeat.yml -d "publish"

Logstash

首先创建一个配置文件来配置logstash

vim ./config/logstash.conf

写下以下内容
"logstash的简单配置。输入部分用于配置filebeat,过滤部分用于设置过滤屏幕以过滤filebeat的输入,输出部分将消息发送到弹性搜索"

input {
        beats {
                port => 5044   
                codec => "json"
        }
}
 
filter {
grok {
match => { "message" => "(?<text>(.*))" }
}
}
 
output {
        stdout { codec => rubydebug }
        elasticsearch {
                        hosts => ["localhost:9200"]
                        index => "test1-nginx-access-%{+YYYY.MM.dd}"
                }
}

启动

./bin/logstash -f ./config/logstash.conf

测验

完成所有配置并启动四项服务后,在浏览器中输入Kibana的地址
在打开的页面中选择菜单图标

下拉并找到“Dev Tools”

运行控制台代码。如果一切正常,你可以看到以下输出:

可以从输出中看到你在filebeat里配置的日志文件里的内容

{
  "took": 58,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "test1-nginx-access-2022.11.25",
        "_id": "P93orIQBWUNz5yg551ec",
        "_score": 1,
        "_source": {
          "@version": "1",
          "input": {
            "type": "filestream"
          },
          "@timestamp": "2022-11-25T03:49:18.038Z",
          "log": {
            "file": {
              "path": "/home/logserver_bzm/test.log"
            },
            "offset": 0
          },
          "text": "test message",
          "tags": [
            "_jsonparsefailure",
            "beats_input_codec_json_applied"
          ],
          "message": "test message",
          "ecs": {
            "version": "8.0.0"
          }
        }
      }
    ]
  }
}

很明显,输出中的消息部分与日志中的内容一致

你还可以看到logstash的输出

 

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

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

相关文章

唯品会:高利润,慢增长?

配图来自Canva可画 近日&#xff0c;阿里、京东等互联网大厂纷纷发布了新一季度的财报&#xff0c;从其财报不难看出&#xff0c;国内头部电商平台已经告别了一路狂奔的时代&#xff0c;开始愈发稳健起来。唯品会虽然在体量和规模上都还不能和这两家巨头相比&#xff0c;但自其…

36、Java——吃货联盟订餐系统(JDBC+MySQL+Apache DBUtils)

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

关于物联网你需要知道的一切

如果你想要一个更像 wiki &#xff08;维基百科&#xff09;的定义「什么是物联网&#xff1f;」&#xff0c;我们可以将其视为连接到 Internet 的全球对象网络&#xff0c;这些对象能够在没有人为干预的情况下&#xff0c;相互交互和交换数据。符合这一的一般定义的解决方案&a…

Java项目:基于jsp+sevlet+mysql日记系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目主要功能有&#xff1a; 写日记 查看日记 日记删除 日记修改 日记类别添加 日记类别修改 日记类别删除 个人信息查看 个人信息修改 分页…

java刷题day 05

一. 单选题&#xff1a; 解析&#xff1a; 5 >> 2 相当于 5除于2两次&#xff0c;等于1>>> 表示无符号右移&#xff0c;高位用 0 填充&#xff0c;0001右移两位 0000&#xff0c;所以选A解析&#xff1a;作对这道题的关键是要理解Java的值传递&#xff0c;关于值…

婚纱租赁系统毕业设计,婚纱租赁管理系统设计与实现,论文毕设作品参考

功能清单 【后台管理员功能】 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删除 资讯分类&#xff1a;录入、修改、查看、删除资讯分类 录入…

【Milvus的以文搜图】

0. 介绍 以文搜图指的是&#xff0c;根据文本描述&#xff0c;从图像数据库中检索与文本内容相似的图像数据并返回。通过在CSDN中搜索以文搜图&#xff0c;找到了如下两篇文章&#xff1a; 从零到一&#xff0c;教你搭建「以文搜图」搜索服务&#xff08;一&#xff09;_Zill…

Linux “挂载” 的概念

0、前言 截至到写这个稿子&#xff0c;始终对挂载的概念有点模糊&#xff0c;到底是硬盘挂载到目录&#xff1f;还是目录挂载到硬盘呢&#xff1f;今天终于从《鸟哥的Linux私房菜》中推断出了答案&#xff0c;而且也恍然大悟地理解了之前书中一句晦涩难懂的话。 1、挂载的概念…

基于Web的Markdown编辑器HedgeDoc

什么是 HedgeDoc &#xff1f; HedgeDoc 是一个开源的、基于 web 的、自托管的、协作的markdown编辑器。您可以使用它轻松地在笔记、图形甚至演示文稿上进行实时协作。用户需要做的就是将你的笔记链接分享给同事&#xff0c;他们就可以开始使用了。 不想自己搭建可以试试官方的…

基于有偏距离权值双线性插值原理(Weighted bilinear with warping)的图像超分辨重构研究-附Matlab程序

⭕⭕ 目 录 ⭕⭕✳️ 一、图像超分辨率重构原理✳️ 二、双线性插值重构理论与实验分析✳️ 2.1 双线性插值理论与实验验证✳️ 2.2 有偏距离双线性插值重构理论与实验验证✳️ 2.3 权重双线性插值理论与实验验证✳️ 2.4 有偏距离权值双线性插值理论与实验验证✳️ 三、参考文…

frps内网穿透

1 原理讲解 frp工作原理 服务端运行&#xff0c;监听一个主端口&#xff0c;等待客户端的连接&#xff1b; 客户端连接到服务端的主端口&#xff0c;同时告诉服务端要监听的端口和转发类型&#xff1b;服务端fork新的进程监听客户端指定的端口&#xff1b; 外网用户连接到客户…

2012-2020中国地区银行多指标数据

1、数据来源&#xff1a;bankscope 2、时间跨度&#xff1a;2012-2020-3季度 3、区域范围&#xff1a;中国 4、指标说明&#xff1a; 包含以下数据&#xff1a; 资产负债表&#xff0c;利润表&#xff0c;流动性表&#xff0c;资本充足率表&#xff0c;财务比率 global s…

java 高级面试题(借鉴)

谈谈ConcurrentHashMap的扩容机制 1.7版本 1. 1.7版本的ConcurrentHashMap是基于Segment分段实现的 2. 每个Segment相对于⼀个⼩型的HashMap 3. 每个Segment内部会进⾏扩容&#xff0c;和HashMap的扩容逻辑类似 4. 先⽣成新的数组&#xff0c;然后转移元素到新数组中 5. 扩容的…

vue3 antd项目实战——table表格(一文带你快速实现后台管理系统最常用的table表格)

零基础filter实现最简单的table表格知识调用核心干货下期预告关键字模糊查找&#xff08;纯前端&#xff09;关键字模糊查找&#xff08;前后交互&#xff09;知识调用 功能实现可能要用到的知识&#xff1a;vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实战…

超纯水如何除硼,除硼树脂技术分析

硼在超纯水中对晶圆厂的产品良品率的影响&#xff0c;那超纯水深度除硼的方式有哪些呢&#xff0c;在现今新型的微电子、太阳能等行业中&#xff0c;对超纯水的要求越来越高&#xff0c;对超纯水设备中PPb的硼和硅要求达到PPb级。但硼和硅属于弱电离元素&#xff0c;在水中不易…

泛型类的认识 - (了解数据结构的基础)

文章目录前言1. 为什么使用泛型类&#xff1f;2. 泛型类介绍总结前言 本篇通过介绍为什么使用泛型类&#xff0c;什么是泛型类&#xff0c;进一步为以后数据结构的学习打下基础。如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff0…

【强化学习论文合集】IJCAI-2021 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

户外运动耳机推荐、这几款性能超强的户外运动耳机不可错过

在户外跑步的时候&#xff0c;也有不少朋友会选择戴上耳机&#xff0c;用音乐来”调味“&#xff0c;让跑步的过程不那么枯燥乏味。凡事有利就有弊&#xff0c;跑步时听音乐也如此&#xff0c;它的弊端之一是可能会有安全隐患。如果跑步时耳机音量开得太大&#xff0c;可能会忽…

JAVA-GUI工具的编写-----简易框架篇

好久没写东西了&#xff0c;毕竟一个屁民没那么多东西写的&#xff0c;来来回回就老三样&#xff0c;扯犊子的也不想写&#xff0c;今天给大家来个都感兴趣的-------如何编写自己的GUI工具&#xff1f; 当然了&#xff0c;IDEA怎么去破解&#xff0c;这里就不多比比&#xff0c…

java基础一:基础概念、面向对象

目录 1.基础概念 2.IDEA 开发工具 2.1 JDK环境配置 2.2 注释和变量 2.3 标识符 2.4 数据类型 2.5 算术运算符 2.6 赋值运算符 2.7 关系运算符 2.8 逻辑运算符 2.9 三元运算符 2.10 流程控制 3. 面向对象 3.1类和对象 3.2 静态 static 3.3 package 包 3.4 impor…