且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标

更新时间:2021-09-12 08:05:41


几何时,Beats 是我们作为 Elastic Stack 重要的数据摄入方式。我们在 Kibana 的界面中经常看到的是这样的界面:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


详细描述,可以参阅之前的文章 “Beats:Beats 入门教程 (二)”。 我们可以看到在 Kibana 的界面中,有一个常见的 “Add log data” 等之类的链接,或者如下的 “Add your data”:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


从上面的截图中,我们可以看出来,我们可以使用 Beats 来进行我们的日志及指标的摄入。


最近,我安装了最新的 7.16.3,打开 Kibana,我们可以看到:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


上面再也没有之前的 “Add data” 之类的按钮,取而代之的是 “Add integration”。这说明在现在的 Elastic Stack 发行版中,官方推荐的方法是使用 integration 而不是以前的 Beats。随着未来 Elastic Stack 8.0 的推出,Fleet 是被推荐来摄入数据的方法,尽管 Beats 的方法还是适用的,特别是针对和 Logstash 组成 pipeline 的情况。


在今天的文章中,我们来介绍如何是使用 integration 的方法来摄入 system 日志及指标。在今天的展示中,我将使用 Elastic Stack 7.16.3,并在一个 Ubuntu 机器上安装 Elasticsearch 及 Kibana。 Ubuntu 机器的 IP 地址为 192.168.0.4。

【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标_哔哩哔哩_bilibili


安装 


我们首先按照我之前的文章 “Security:如何安装 Elastic SIEM 和 EDR” 来安装一个带有 HTTPS 安全的 Elasticsearch 集群(你不必要安装 Filebeat 及 Zeek)。接下来,


或者,我们按照文章 “如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch” 来安装 Elasticsearch。我们需要对 config/elasticsearch.yml 做如下的配置:


config/elasticsearch.yml


network.host: 0.0.0.0
discovery.type: single-node
xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true


我们安装  “Kibana:如何在 Linux,MacOS 及 Windows上安装 Elastic 栈中的 Kibana” 来安装 Kibana。我们需要根据文章 “Elasticsearch:设置 Elastic 账户安全” 来配置集群的安全。我们需要针对 config/kibana.yml 做如下的配置:


config/kibana.yml


server.host: "0.0.0.0"
elasticsearch.username: "kibana_system"
elasticsearch.password: "password"
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'


这里的 password 是我们在之前的安全设置中为 kibana_system 设置的密码,而 xpack.encryptedSavedObjects.encryptionKey 的值是一个32位的随机字符串。我们可以通过如下的方式来获得:


./bin/kibana-encryption-keys generate


我们来参照我之前的文章 “Observability:运用 Fleet 来轻松地导入 Nginx 日志及指标” 来进行操作。


动手实践


我打开 Kibana:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


从上面,我们可以看出来没有任何的 integrations 被安装。 由于还没有安装 Fleet Server


我们先来创建一个 policy:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


依赖于你的网络,上面的屏幕需要等待一些时间。 


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们想把 Fleet Server 配置到和 Elasticsearch 同一个机器上:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们点击上面的链接去下载 Elastic Agent:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们可以按照如下的方式来进行下载:


curl -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-7.16.3-linux-x86_64.tar.gz

 

我使用如下的命令来进行安装:


tar xzf elastic-agent-7.16.3-linux-x86_64.tar.gz


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


拷贝上面的 token,并同时拷贝上面的命令。我们在 Elastic Agent 的安装目录中运行:


sudo ./elastic-agent install   \
  --fleet-server-es=http://localhost:9200 \
  --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2NDMwOTU5NTcwMDI6dndfMkUzUTVUMUtwS1FOSzA0Nld0Zw \
  --fleet-server-policy=499b5aa7-d214-5b5d-838b-3cd76469844e \
  --fleet-server-insecure-http


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


上面表明我们的安装是成功的。 


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


 上面的状态为 Updating。我们需要等一段时间:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


上面表明我们的 Fleet Server 的安装是成功的。我们选择  Agent policies:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们可以看有一个叫做 system-1 的 integration:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


从这里我们可以针对不同的平台进行配置。针对我们的 Linux 情况,我不做任何的修改。 


我们可以把目前的这个唯一的 agent 赋予给 Default policy:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


这是因为 system-1 这个 integration 是在 Default policy 里的:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


这个时候,我们可以看到不同的 data streams:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们可以看不同的数据,只要我们选择好时间范围。


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们可以选择一下指标来进行查看:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


我们再次回到之前的画面:


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


【Elastic Engineering】Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标


好了,今天我的演示就到这里。从上面的步骤中我们可以看出来,在最新的版本中,收集日志及指标和我们以前的是完全不一样的。这里面可能还有些概念的问题。希望大家多练习!