Elastic Stack 环境配置与框架简介

这篇具有很好参考价值的文章主要介绍了Elastic Stack 环境配置与框架简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

简介

什么是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

框架图

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

 Beats(FileBeats)

Beats->Logstash->Elasticsearch->Kibana

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

下载

本文中使用的beats功能:filebeat

Name

Link

1 Elasticasearch download
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/

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

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

 

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的地址
在打开的页面中选择菜单图标

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

下拉并找到“Dev Tools”

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

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

elastic stack 搭建,# Elastic Stack,大数据,elasticsearch

可以从输出中看到你在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的输出

 elastic stack 搭建,# Elastic Stack,大数据,elasticsearch文章来源地址https://www.toymoban.com/news/detail-530034.html

到了这里,关于Elastic Stack 环境配置与框架简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elastic:使用 Docker 安装 Elastic Stack 8.x 并开始使用

    Elastic Stack 8.0 终于于最近发布了。在我之前的文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单” 我已经详细地描述了如何在本地部署 Elasticsearch 及 Kibana。设置 Elasticsearch 的最简单方法是使用 Elastic Cloud 上的 Elasticsearch Service 创建托管部署。 如果你

    2024年02月16日
    浏览(26)
  • Elastic(ELK) Stack 架构师成长路径

    Elastic Stack(ELK Stack)是一个开源的日志分析平台,由 Elasticsearch、Logstash 和 Kibana 三个组件组成,主要用于数据搜索、分析和可视化。要成为一名 ELK Stack 架构师,需要遵循一定的成长路径,以便逐步掌握相关知识和技能。 基本了解:在这个阶段,您需要学习基本的ELK Stack概

    2023年04月21日
    浏览(37)
  • 运用 Elastic Stack 收集 docker 容器日志

    Elastic Stack 在收集日志方面有很多的方面的应用。在今天的文章中,我将使用 docker 来安装 Elastic Stack。我将演示如何使用 docker 安装 Filebeat 并收集容器的日志。 在我之前的文章 “Beats:为 Filebeat 配置 inputs”,我展示了如何使用 Filebeat 来收集 container 里的日志数据。在那篇文

    2023年04月08日
    浏览(28)
  • Elastic Stack 和 Docker-Compose 入门

    作者:Eddie Mitchell 随着 Elastic Stack 多年来的发展和功能集的增加,在本地开始或尝试概念验证 (POC) 的复杂性也越来越高。 虽然 Elastic Cloud 仍然是开始使用 Elastic 最快、最简单的方式,但对本地开发和测试的需求仍然非常丰富。 作为开发人员,我们被吸引到快速设置和快速开

    2024年02月07日
    浏览(44)
  • Elastic Stack 和 Docker Compose 入门:第 2 部分

    作者:Eddie Mitchell 欢迎阅读 Elastic® Stack 和 Docker Compose 入门的第二部分。 在第一部分博客中,我们了解了 Docker Compose 的基础知识以及如何将单节点集群建立为本地游乐场,其中包括 Elasticsearch®、Kibana®、Logstash®、Metricbeat 和 Filebeat。 如果你还没有阅读第一篇博客,你可能需

    2024年02月07日
    浏览(26)
  • 通过 Elastic Stack 充分利用电信领域生成式 AI 的力量

    作者:Elastic Piotr Kobziakowski, Jürgen Obermann 在瞬息万变的电信领域,Elastic® Stack 与生成式 AI 的集成正在开创运营效率和创新的新时代。 这些技术不仅增强了网络运营,而且还彻底改变了各个部门的内部流程。 下面,我们将深入探讨它们对电信运营不同方面的影响。 在电信领

    2024年01月24日
    浏览(31)
  • ElasticSearch第三讲:ES详解 - Elastic Stack生态和场景方案

    本文是ElasticSearch第三讲,在了解ElaticSearch之后,我们还要了解Elastic背后的生态 即我们 常说的ELK ;与此同时,还会给你展示ElasticSearch的 案例场景 ,让你在学习ES前对它有个全局的印象。 Beats + Logstash + ElasticSearch + Kibana 如下是我从官方博客中找到图,这张图展示了ELK生态以

    2024年02月07日
    浏览(27)
  • Elastic Stack--04--ES中的检索方式、Query DSL

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在ElasticSearch中支持两种检索方式 通过使用REST request URL 发送检索参数(uri+检索参数) 通过使用 REST request body 来发送检索参数 (uri+请求体) GET bank/_search # 检索bank下的所有信息,包括 type 和 docs GET bank/_sea

    2024年03月21日
    浏览(36)
  • 【Elastic (ELK) Stack 实战教程】06、Filebeat 日志收集实践(下)

    目录 一、Filebeat 收集 Nginx 日志实践 1.1 为什么收集 Nginx 日志 1.2 Nginx 日志收集架构图 1.3 Nginx 日志收集实践 1.3.1 安装 Nginx  1.3.2 配置 filebeat 1.3.3 kibana 展示 1.4 Nginx json 日志收集实践 1.4.1 收集问题 1.4.2 解决方案 1.4.3 配置 json 1.4.4 配置 Filebeat 1.4.5 Kibana 展示 1.5 Nginx 多个日志收

    2024年02月01日
    浏览(32)
  • Elasticsearch:如何使用自定义的证书安装 Elastic Stack 8.x

    在我之前的文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch”,我详细描述了如何在各个平台中安装 Elastic Stack 8.x。在其中的文章中,我们大多采用默认的证书来安装 Elasticsearch。在今天的文章中,我们用自己创建的证书一步一步地来安装 Elastic Stack 8.x。我们可以参

    2024年02月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包