Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

这篇具有很好参考价值的文章主要介绍了Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在之前的文章 “安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0”,我们详述了如何使用 No Fleet Server 来把数据写入到 Elasticsearch 中。在今天的文章中,我们来详述如下使用 Elastic Agents 在独立(standalone)模式下来采集数据并把数据最终通过 Logstash 来写入到 Elasticsearch 中去。

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

在今天的练习中,我将使用如下的架构来搭建我的测试环境:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我在 macOS 下安装 Elasticsearch 及 Kibana,在 Ubuntu OS 下安装 Apache, Elastic Agent 及 Logstash。在本展示中,我将使用最新的 Elastic Stack 8.8.1 来进行展示。

安装

Elasticsearch 及 Kibana

如果你还没有安装好自己的 Elasticsearch 及 Kibana,请参考如下的文章来进行安装:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

在安装的时候,需要特别注意的是:请选择 Elastic Stack 8.x 的安装指南来进行安装。在默认的情形下,Elasticsearch 的访问是带 HTTPS 访问的。

Elastic Agent

我们可以到 Elastic 的官方网站 Download Elastic Products | Elastic 下载和 Elasticsearch 版本一致的并且和自己电脑操作系统匹配的安装包。

wget https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.8.1-linux-arm64.tar.gz

tar xzf elastic-agent-8.8.1-linux-arm64.tar.gz

cd elastic-agent-8.8.1-linux-arm64

我们可以在当前的目录下看到如下的文件:

 pwd
/home/parallels/fleet/elastic-agent-8.8.1-linux-arm64
parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ ls 
data  elastic-agent  elastic-agent.reference.yml  elastic-agent.yml  fleet.enc.lock  LICENSE.txt  NOTICE.txt  README.m

在上面的  elastic-agent.yml 文件就 Elastic Agent 的配置文件。有关 Elastic Agent 在 standalone 模式下的配置请详细参阅 Elastic 官方链接 Install standalone Elastic Agents (advanced users) | Fleet and Elastic Agent Guide [8.8] | Elastic。

我们首先来尝试直接把 Elastic Agent 的数据发送至 Elasticsearch。如果我们打开 默认的 elastic-agent.yml 文件,我们会发现,在缺省的情况下,它会采集系统的 metrics。在这里,我们先不引入任何的 integration。我们打开 elastic-agent.yml 文件:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

如上所示,为了方便展示,我使用超级用户 elastic 来进行配置。这在实际的使用中,我们并不建议。你需要根据自己的需求创建一个合适权限的账号来进行配置。另外上面的 fingerprint 也是可以在 Elasticsearch 第一次启动的时候,在 terminal 的输出中可以找到。

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

你也可以在 config/kibana.yml 的文件最后部分找到。你也可以通过阅读文章 “Elasticsearch:关于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x” 来了解如何得到这个 fingerprint。

注意:在上面,我们使用用户名及密码的方式来配置 elastic-agent.yml 文件。你也可以采用使用 API Key 的方式来进行配置。有关如何得到 API key,请参阅文章 “Elasticsearch:关于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x”。

配置完上面的 elastic-agent.yml 文件后,我们运行如下的命令:

sudo ./elastic-agent install
parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ sudo ./elastic-agent install
Elastic Agent will be installed at /opt/Elastic/Agent and will run as a service. Do you want to continue? [Y/n]:y
Do you want to enroll this Agent into Fleet? [Y/n]:n
Elastic Agent has been successfully installed.

我们可以在 Kibana 里进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们也可以到 Discover 里进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

在 Discover 里我们可以看到刚被摄入的 metrics 数据。请注意在目前为止,我们只摄入默认的 system metrics 数据。 

把 elastic agent 的数据写入到 Logstash

安装 Logstash 并配置

我们接下来把 elastic agent 的输出数据写入到 Logstash。我们可以参考 Elastic 的官方文档 Logstash output | Fleet and Elastic Agent Guide [8.8] | Elastic。我们首先需要安装 Logstash。请参考之前的文章  “如何安装 Elastic 栈中的 Logstash”。我们也可以直接到 Elastic 的官方网站 Download Logstash Free | Get Started Now | Elastic 去下载和 Elasticsearch 相匹配的 Logstash 版本。

wget https://artifacts.elastic.co/downloads/logstash/logstash-8.8.1-linux-aarch64.tar.gz
tar xzf logstash-8.8.1-linux-aarch64.tar.gz
cd logstash-8.8.1

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

为了做测试,我们需要创建一个 logstash.conf 的配置文件:

logstash.conf

input {
  elastic_agent {
    port => 5044
  }
}

output {
   stdout {}
}

在上面,我们的 Logstash pipeline 非常简单。为了测试方便,我们并没有直接写入到 Elasticsearch,而是使用 stdout 来输出进行测试。Logstash 侦听 elastic agent 的 5044 端口号。我们使用如下的命令来启动 Logstash:

./bin/logstash -f logstash
$ pwd
/home/parallels/logstash/logstash-8.8.1
parallels@ubuntu2004:~/logstash/logstash-8.8.1$ ./bin/logstash -f logstash.conf

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

重新配置 Elastic Agent

在上面我们已经启动了 Elastic Agent。为了能够重新配置 Elastic Agent,我们需要停止它之前的服务,并重新安装它。我们首先打入如下的命令:

parallels@ubuntu2004:~$ su
Password: 
root@ubuntu2004:/home/parallels# cd /opt/Elastic/Agent/
root@ubuntu2004:/opt/Elastic/Agent# ./elastic-agent uninstall
Elastic Agent will be uninstalled from your system at /opt/Elastic/Agent. Do you want to continue? [Y/n]:y
Elastic Agent has been uninstalled.

我们可以通过如下的命令来获得当前 Logstash 运行的 IP 地址:

 ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 192.168.0.8/24 brd 192.168.0.255 scope global noprefixroute eth0
    inet6 fe80::d246:4880:928b:f508/64 scope link noprefixroute 

在上面,我们卸载了之前安装的 Elastic Agent。我们接下来重新配置 elastic-agent.yml 文件:

elastic-agent.yml

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们再次使用如下的命令来启动 elastic agent:

sudo ./elastic-agent install
parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ sudo ./elastic-agent install
[sudo] password for parallels: 
Elastic Agent will be installed at /opt/Elastic/Agent and will run as a service. Do you want to continue? [Y/n]:y
Do you want to enroll this Agent into Fleet? [Y/n]:n
Elastic Agent has been successfully installed.

我们可以使用如下的命令来进行检查:

./elastic-agent inspect

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

从上面的输出中,我们可以看出来 outputs 是写入到 Logstash 的端口 5044。

我们可以切换到 Logstash 运行的 terminal 中进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

从 Logstash 的 terminal 中,我们可以看到有很多的输出。我们需要注意的是,在我们之前的配置中,我们并没有把数据写入到 Elasticsearch 中。为了把数据写入到 Elasticsearch 中,我们必须重新配置 logstash.conf 文件。我们终止 Logstash 的运行。我们可以参考文章 “Logstash:如何连接到带有 HTTPS 访问的集群” 及 “Beats:使用 fingerprint 来连接 Beats/Logstash 和 Elasticsearch”。

logstash.conf

input {
  elastic_agent {
    port => 5044
  }
}

output {
   stdout {}

   elasticsearch {
      hosts => ["https://192.168.0.3:9200"]
      index => "data-%{+YYYY.MM.dd}"
      ssl => true
      ilm_enabled => true
      user => "elastic"
      password => "z5nxTriCD4fi7jSS=GFM"
      ca_trusted_fingerprint => "783663875df7ae1daf3541ab293d8cd48c068b3dbc2d9dd6fa8a668289986ac2"
    }
}

关于这里的 user,password 及 ca_trusted_fingerprint,请参考上面的 elastic-agent.yml 的配置。

我们再次重新运行 Logstash:

./bin/logstash -f logstash.conf

我们回到 Kibana 的界面来进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们可以看到新生成的  data-2023.06.21 索引文件。这样我们就把数据通过 Logstash 把数据写入到 Logstash 里了,进而写入到 Elasticsearch 中去了。

通过 Kibana 配置 elastic-agent.yml 文件

在我们上面的展示中,我们使用了默认的 elastic-agent.yml 文件。它只能针对当前的机器收集 metrics 这些指标信息。如果我们想使用它针对其他的许多 integration 来进行操作,那么它的手动配置将会是非常麻烦的,而且我们也不是很在行。你可以详细研究上面在 elastic-agent 安装目录下的 elastic-agent.reference.yml 文件。在进行下面的练习之前,我们还是和之前一样,先下载之前安装的 elastic agent:

parallels@ubuntu2004:~$ su
Password: 
root@ubuntu2004:/home/parallels# cd /opt/Elastic/Agent/
root@ubuntu2004:/opt/Elastic/Agent# ls
data           elastic-agent.reference.yml  fleet.enc       LICENSE.txt  README.md
elastic-agent  elastic-agent.yml            fleet.enc.lock  NOTICE.txt   vault
root@ubuntu2004:/opt/Elastic/Agent# ./elastic-agent uninstall
Elastic Agent will be uninstalled from your system at /opt/Elastic/Agent. Do you want to continue? [Y/n]:y
Elastic Agent has been uninstalled.

针对很多复制的集成,我们需要借助 Kibana 中集成的工具来帮我们配置 elastic-agent.yml 文件。

我们打开 Kibana:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

如上所示, Elastic 为我们提供了丰富的 integrations 来方便地采集数据,比如我们常见的 Nginx,Apache 等。作为例子,我们选择 Apache 服务器来做展示。按照如下的命令在 Ubuntu OS 上来进行安装:

sudo apt install apache2

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

 Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

从上面的输出中,我们可以看到 Apache 服务器已经成功地运行起来了。

接下来我们来创建如何收集 Apache 服务器的 elastic-agent.yml 文件。

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

 Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们把上面的 elastic-agent.yml 内容拷贝下来。

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们接下来回到之前安装的 elastic agent 根目录下: 

parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ mv elastic-agent.yml elastic-agent.back.yml
parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ vi elastic-agent.yml

我们把上面拷贝过来的 elastic-agent.yml 内容粘贴过来:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们根据自己的配置修改为:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch我们保存上面的 elastic-agent.yml 文件,并使用如下的命令来进行安装:

sudo ./elastic-agent install
parallels@ubuntu2004:~/fleet/elastic-agent-8.8.1-linux-arm64$ sudo ./elastic-agent install
[sudo] password for parallels: 
Elastic Agent will be installed at /opt/Elastic/Agent and will run as a service. Do you want to continue? [Y/n]:y
Do you want to enroll this Agent into Fleet? [Y/n]:n
Elastic Agent has been successfully installed.

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们点击上面的第一个链接:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们在 Apache 的页面上点击 refresh 按钮几次:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们查看这个页面:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们可以回到 Stack Management 界面来进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们可以通过 Discover 来进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

把 Apache 数据通过 Logstash 写入到 Elasticsearch

为了能够把 Apache 的日子数据通过 Logstash 写入,我们只需要修改 elastic-agent.yml 文件:

elastic-agent.yml

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们启动 Logstash。我们先卸载之前安装的 elastic agent,并再次重新运行 elastic agent 后。我们可以在 Logstash 的 terminal 中看到如下的输出:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们运行如下的命令几次:

curl http://192.168.0.8:80

 Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们可以在 Kibana 中进行查看:

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

我们可以看到数据被正确地写入到 Elasticsearch 中来了。

更多阅读:Observability:为 Logstash 输出配置 SSL/TLS - Elastic Agent文章来源地址https://www.toymoban.com/news/detail-513335.html

到了这里,关于Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elastic 8.12:AI Assistant for Observability 正式发布,更新至 Apache Lucene 9.9

    作者:来自 Elastic Brian Bergholm 今天,我们很高兴地宣布 Elastic® 8.12 全面上市。 8.12 版本的两个最重要的组成部分包括 Elastic AI Assistant for Observability 的 正式发布版 和 Apache Lucene 9.9 的更新(有史以来最快的版本),其中 Elastic 为服务客户用例而贡献了关键创新。 解决方案的其

    2024年01月19日
    浏览(34)
  • filebeat采集日志数据到kafka(一)(filebeat->kafka->logstash->es)

    一、filebeat安装 filebeat-kafka版本适配 1、安装包下载 https://www.elastic.co/cn/downloads/past-releases#filebeat 解压 2、新建yml配置文件,如test.yml 3、Filebeat启动和停止 启动:./filebeat -c test.yml 停止:kill -9 PID

    2024年02月16日
    浏览(89)
  • 【运维知识大神篇】超详细的ELFK日志分析教程4(ES读写文档原理+集群角色+master节点与数据节点分离+Logstash安装部署+Logstash采集本地文件+采集Nginx日志)

    本篇文章继续给大家介绍ELFK日志分析的有关内容,我们的ES和Kibana都介绍的差不多了,所以本篇文章重点介绍Logstash的有关内容,介绍完毕后,我们的ELFK架构将初步形成,此外还有ES读写文档的原理,了解原理,更深层次的理解,使用ES,集群角色和master节点与数据节点分离,

    2024年02月02日
    浏览(58)
  • elastic-agent安装报错“Fleet Server - Error - x509: certificate signed by unknown authority

    elasticssearch版本8.4.3 根据官网的提示https://www.elastic.co/guide/en/fleet/8.4/fleet-troubleshooting.html#agent-enrollment-certs 出现这种问题需要增加参数 --insecure To fix this problem, pass the  --insecure  flag along with the  enroll  or  install  command.  ./elastic-agent install   --fleet-server-es=https://192.168.0.180:9200

    2024年02月11日
    浏览(53)
  • logstash 采集 docker 日志

    1、nginx容器部署 参考:nginx容器部署 将容器内的nginx日志文件映射到宿主机/home/logs/nginx目录下 注意:并且需要需要将日志的输出格式修改为json  2、编辑vim /opt/logstash-7.4.2/config/nginx-log-es.conf 文件,收集docker nginx容器日志 input{  file{    path = \\\"/home/logs/nginx/access.log\\\"    start_p

    2024年02月13日
    浏览(36)
  • Logstash:如何使用 Logstash 解析并摄入 JSON 数据到 Elasticsearch

    在我之前的文章 “Logstash:Data 转换,分析,提取,丰富及核心操作” 有涉及到这个话题。今天我想使用一个具体的例子来更深入地展示。   我们先来把如下的数据拷贝下来,并保存到一个叫做 sample.json 的文件中。我们可以把这个文件置于 Logstash 的安装根目录下。 sample.j

    2024年02月02日
    浏览(45)
  • 日志采集 logback集成logstash ELK springboot

    logstash依赖  给logback配置logstash的那台机器的ip和服务的端口  在logstash那台机器上配置  在安装了logstash的服务器里,找到logstash文件目录,执行./logstash -f logstash.conf即可启动logstash 以上配置即可实现 logback 到 logstash。 下面是升级配置 ===========================分割线===============

    2024年02月12日
    浏览(48)
  • Elasticsearch:如何通过 3 个简单步骤从 Elastic 数据中删除个人身份信息

    作者:Peter Titov 对于任何组织来说,个人身份信息 (Personally Identifiable information, PII) 合规性都是一个日益严峻的挑战。 无论你是在电子商务、银行、医疗保健还是其他数据敏感的领域,PII 都可能会在无意中被捕获和存储。 拥有结构化日志,可以轻松快速识别、删除和保护敏

    2024年02月13日
    浏览(51)
  • Logstash输入Kafka输出Es配置

    Logstash是一个开源的数据收集引擎,具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据,并将其发送到你选择的目的地。 Logstash 的早期目标主要是用于收集日志,但现在的功能已经远远超出这个范围。任何事件类型都可以通过Logstash进行分析,通过输入、过

    2024年02月03日
    浏览(44)
  • Observability:如何有效地将应用日志发送到 Elasticsearch

     在今天的文章中,我们将探讨使用 3 种不同的架构发送应用的日子到 Elasticsearch。我们将详述它们的优缺点。更多关于日志架构的介绍,请参考 “Elastic:开发者上手指南” 中的 “ Elastic Stack 架构 ” 部分。 采用 Elastic Stack,应用程序日志发送到 Elasticsearch 有三种不同架构,

    2024年02月09日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包