Beats:Beats 入门教程 (二)

这篇文章是 “Beats 入门教程 (一)”的续篇。在上一篇文章,我们主要讲述了Beats的一些理论方面的知识。在这篇文章中,我们将具体展示如何使用Filebeat及Metriceat把数据导入到我们的Elasticsearch并对他们进行分析。

 

安装Elastic Stack

对于我们的测试环境,我们可以有几种选择:

  • 安装本机的Elastic Stack。您可以参阅我之前的文章“Elastic:菜鸟上手指南”来进行安装Elasticsearch及Kibana
  • 安装Elastic Cloud:您可以参阅我之前的文章“在Elastic云上3分钟部署Elastic集群”来部署Elastic Stack。你也可以参考我录的视频教程
  • 安装阿里Elastic集群:您可以参阅文章“如何在阿里云上构建Elastic集群”
  • 安装AWS Elastic集群:您可以参阅文章“如何在AWS上一步一步地安装Elastic Stack”

在今天的练习中,我将主要以本机的Elastic Stack及Elastic cloud来讲述。针对其它的环境,基本都是一样的。

 

Filebeat

我们打开我们的自己的Kibana,并按照如下的步骤来进行安装:

Beats:Beats 入门教程 (二)_第1张图片

由于Filebeat是log相关的,所以我们需要选择“Add log data”。我们想对系统(System)日志进行监控,所以,我们选择“System logs”:

Beats:Beats 入门教程 (二)_第2张图片

然后,我们根据我们自己运行的平台,我们分别使用不同的命令来在我们的平台上进行安装:

Beats:Beats 入门教程 (二)_第3张图片

在上面我们可以看到最详细的安装指令。根据我的情况,我在MacOS上部署我的Filebeat。具体的安装步骤如下:

下载Filebeat

我们执行如下的指令来安装Filebeat:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.0-darwin-x86_64.tar.gz
tar xzvf filebeat-7.5.0-darwin-x86_64.tar.gz
cd filebeat-7.5.0-darwin-x86_64/

配置Filebeat

我们在Filebeat的安装目录下,可以发现一个叫做filebeat.yml的文件。这个文件就是filebeat的配置文件:

$ pwd
/Users/liuxg/elastic8/filebeat-7.5.0-darwin-x86_64
liuxg-2:filebeat-7.5.0-darwin-x86_64 liuxg$ ls
LICENSE.txt            fields.yml             kibana
NOTICE.txt             filebeat               logs
README.md              filebeat.reference.yml module
data                   filebeat.yml           modules.d

我们用我们所喜爱的编辑打开filebeat.yml文件,并找到如下的部分:

output.elasticsearch:
  hosts: [""]
  username: "elastic"
  password: ""
setup.kibana:
  host: ""

在上面,我们需要把我们的Elasticsearch及Kibana的host地址填上。针对我本地的情况,我填入localhost:9200和localhost:5601。如果是针对本地安装的Elastic Stack来说,这些都是默认的配置,我们甚至不需要做任何的修改。如果我们对我们的Elasticsearch已经设置用户名及密码的话,那么请填入你自己的用户名及密码。

Elastic cloud

如下的配置只限于Elastic Cloud。针对Elastic cloud,我们可以避免把我们的用户名及密码写到我们的filebeat.yml文件中,我们可以使用cloud.id来及keystore管理来帮我们实现。

我们首先在Terminal中打入如下的命令:

./filebeat keystore create

接着打入如下的命令:

./filebeat keystore add CLOUD_PWD

在这一步我们拷贝在Cloud中所创建的密码,并粘贴下来。

最后,我们修改我们的filebeat.yml文件

Beats:Beats 入门教程 (二)_第4张图片

根据上面的提示,一旦我们设置好cloud.id,它将覆盖我们的output.elasticsearch中的设置。

我们可以可以使用同样的方法来创建如下的key:

./filebeat keystore add CLOUD_ID

通过上面的配置,我们可以在filebeat.yml的文件中使用同样的方法来代替我们的cloud.id。

另外,我们可以在不用修改filebeat.yml的情况下直接使用命令行参数的方法来进行操作,比如在setup filebeat时:

./filebeat setup -E cloud.id=\${CLOID_ID} -E cloud.auth=elastic:\${CLOUD_PWD}

请注意上面\字符,它是一个转字符,因为后面的$符号有特别的意义。

 

启动/禁止Filebeat模块

我们可以通过如下的命令来展示所有Filebeat的模块:

./filebeat modules list

Beats:Beats 入门教程 (二)_第5张图片

在上面,我们可以看到redis模块已经被成功地启动了。如果我们想启动system模块,我们可以使用如下的命令:

./filebeat modules enable system

上面的命令的返回结果是:

Enabled system

如果我们想不启动redis模块,我们可以使用如下的命令:

./filebeat modules disable redis

上面的命令的返回结果是:

Disabled redis

我们可以使用如下的命令再次查询我们启动的模块:

Beats:Beats 入门教程 (二)_第6张图片

在上面,我们可以清楚地看到redis模块已经被成功地关闭了,取而代之的是system模块被成功地启动了。我们可以在filebeat的安装目录下的modules.d子目录下可以查看到system模块的配置文件:

Beats:Beats 入门教程 (二)_第7张图片

从上面我们可以清楚地看出来system.yml文件已经被成功地启动了。我们可以用我们所喜爱的编辑器来修改这个文件的配置。

如果我们需要修改 filebeat.yml 这个配置文件,或者下面的 module 的配置文件,我们可以通过如下的命令来检查配置文件的正确如否:

./filebeat test config
$ ./filebeat test config
Config OK
./filebeat test output
$ ./filebeat test output
elasticsearch: http://192.168.0.3:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 192.168.0.3
    dial up... OK
  TLS... WARN secure connection disabled
  talk to server... OK
  version: 7.7.0

 

启动Filebeat

在上面,我们已经成功地配置了filebeat,在接下来的步骤中,我们来启动Filebeat:

./filebeat setup

setup命令将加载Kibana仪表板。 如果已经设置了仪表板,请忽略此命令。上面命令的输出结果为:

./filebeat setup
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded machine learning job configurations
Loaded Ingest pipelines

在上面,我们可以看出来在setup这一步它帮我们配置好dashboard,装载机器学习及ingest pipleline。

我们接下来运行如下的命令来把我们的sysetm模块的数据送入到Elasticsearch之中:

./filebeat -e

我们点击“Check data”按钮:

Beats:Beats 入门教程 (二)_第8张图片

在Kibana中,我们可以看到已经收到数据。

运用Dashboard展示Filebeat数据

由于在上面的filebeat setup这一步已经为我们创建好了一个叫做filebeat-*的index pattern,我们可以直接打开Kibana中的Discover:

Beats:Beats 入门教程 (二)_第9张图片

在右上角选好我们喜欢的时间区域,然后对我们的数据进行查询:

Beats:Beats 入门教程 (二)_第10张图片

我们接着点击Dashboard:

Beats:Beats 入门教程 (二)_第11张图片

我们选择“[Filebeat System] Syslog dashboard ECS”:

Beats:Beats 入门教程 (二)_第12张图片

在上面它展示了我的电脑里的Syslog的所有log信息。我们也可以在上面选择“Sudo commands”,“SSH logins”及“New users and groups”分别进行查看。

从上面的展示我们可以查看来:Elastic公司除了提供一个强大的数据搜索引擎之外,也在Elastic Stack中提出了开箱即用的工具。我们只需要简单的几部配置,就可以很方便地把我们所需要的日志数据导入到Elasticsearch中进行分析。
 

Metricbeat

Metricbeat的使用和Filebeat的使用非常地相似。我们打开我们的自己的Kibana,并按照如下的步骤来进行安装:

Beats:Beats 入门教程 (二)_第13张图片

由于Metricbeat是属于Metrics范畴,所以我们选择“Add metric data”:

Beats:Beats 入门教程 (二)_第14张图片

同样地,针对我们的metrics,我们也想对sysem模块来做指标分析:

Beats:Beats 入门教程 (二)_第15张图片

根据不同的平台,我们选择不同的方法进行安装。针对我的情况,我在我们的MacOS上进行安装。简单地说:

下载Metricbeat

我们首先安装如下的指令来下载并安装metribeat:

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.5.0-darwin-x86_64.tar.gz
tar xzvf metricbeat-7.5.0-darwin-x86_64.tar.gz
cd metricbeat-7.5.0-darwin-x86_64/

配置Metricbeat

我们首先进入到Metricbeat的安装目录,我们可看到如下的文件:

 pwd
/Users/liuxg/elastic8/metricbeat-7.5.0-darwin-x86_64
liuxg-2:metricbeat-7.5.0-darwin-x86_64 liuxg$ ls
LICENSE.txt              fields.yml               metricbeat.reference.yml
NOTICE.txt               kibana                   metricbeat.yml
README.md                logs                     module
data                     metricbeat               modules.d

在安装目录的根目录下, 我们可以发现一个叫做metribeat.yml的文件。这个文件就是metricbeat的配置文件。我们用我们喜爱的编辑器,并打开这个文件。找到如下的部分:

output.elasticsearch:
  hosts: [""]
  username: "elastic"
  password: ""
setup.kibana:
  host: ""

在上面,我们需要把我们的Elasticsearch及Kibana的host地址填上。针对我本地的情况,我填入localhost:9200和localhost:5601。如果是针对本地安装的Elastic Stack来说,这些都是默认的配置,我们甚至不需要做任何的修改。如果我们对我们的Elasticsearch已经设置用户名及密码的话,那么请填入你自己的用户名及密码。

Elastic cloud

如下的配置只限于Elastic Cloud。针对Elastic cloud,我们可以避免把我们的用户名及密码写到我们的metricbeat.yml文件中,我们可以使用cloud.id来及keystore管理来帮我们实现。

我们首先在Terminal中打入如下的命令:

./metricbeat keystore create

接着打入如下的命令:

./metricbeat keystore add CLOUD_PWD

在这一步我们拷贝在Cloud中所创建的密码,并粘贴下来。

然后修改我们的metricbeat.yml:

Beats:Beats 入门教程 (二)_第16张图片

根据上面的提示,一旦我们设置好cloud.id,它将覆盖我们的output.elasticsearch中的设置。

启动/禁止Metricbeat模块

我们可以通过如下的命令来展示所有Metricbeat的模块:

Beats:Beats 入门教程 (二)_第17张图片

在上面我们可以看出来redis模板已经被启动,其它的模块都被禁止。

如果我们想启动system模块,我们可以使用如下的命令:

./metricbeat modules enable system

上面命令的返回结果是:

Enabled system

如果我们想禁止redis模块,我们可以使用如下的命令:

./metricbeat modules disable redis

上面命令的返回结果是:

Disabled redis

我们可以使用如下的命令再次查询我们启动的模块:

Beats:Beats 入门教程 (二)_第18张图片

我们可以看出来我们的redis模块已经从Enabled里移除了,取而代之的是system模块。

我们可以在metricbeat的安装目录下的modules.d子目录下可以查看到system模块的配置文件:

Beats:Beats 入门教程 (二)_第19张图片

我们可以在system.yml中找到system模块的配置文件。

我们可以通过如下的命令来测试  metricbeat.yml 的配置是否成功:

./metricbeat test config

如果正确的话,会显示:

$ ./metricbeat test config
Config OK

我们也可以来测试某个模块:

./metricbeat test modules system

它将显示:

$ ./metricbeat test modules system
system...
  cpu...OK
    result: 
    {
     "@timestamp": "2020-07-03T10:48:52.063Z",
     "event": {
      "dataset": "system.cpu",
      "duration": 19621,
      "module": "system"
     },
     "metricset": {
      "name": "cpu",
      "period": 10000
     },
     "service": {
      "type": "system"
     },
 ...

如果这个显示太多了,你也可显示这个模块中的某个 microset,比如,我们可以在 ./modules.d/system.yml 中可以看到如下的一些 microsets:

Beats:Beats 入门教程 (二)_第20张图片

我们可以通过如下的命令来进行测试:

./metricbeat test modules system cpu

我们也可以来测试它的 output:

./metricbeat test output
$ ./metricbeat test output
elasticsearch: http://localhost:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: ::1, 127.0.0.1
    dial up... OK
  TLS... WARN secure connection disabled
  talk to server... OK
  version: 7.8.0

启动Metricbeat

在上面,我们已经成功地配置了metric,在接下来的步骤中,我们来启动Metricbeat:

./metricbeat setup

setup命令将加载Kibana仪表板。 如果已经设置了仪表板,请忽略此命令。上面命令的输出结果为:

./metricbeat setup
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards

我们接下来运行如下的命令来把我们的sysetm模块的数据送入到Elasticsearch之中:

./metricbeat -e

这个时候,我们在Kibana中点击“Check data”按钮:

Beats:Beats 入门教程 (二)_第21张图片

我们可以看到数据已经被Elasticsearch成功收到了。

运用 Dashboard 展示 Merticbeat 数据

在Kibana中,我们点击Dashboard应用:

Beats:Beats 入门教程 (二)_第22张图片

我们来点击“[Metricbeat System] Overview ECS”:

Beats:Beats 入门教程 (二)_第23张图片

 

我们可以看到我们的电脑的system指标信息。我们也可以点击上面的“Host Overview”及“Container overview”。我们点击上面所示的liu-2.local host,我们可以看到关于这个host的所有的system信息:

Beats:Beats 入门教程 (二)_第24张图片

 

下面的就留给你们自己探索了。

你可能感兴趣的:(Beats,Elastic)