Observability:Elastic Metrics 应用介绍

在这篇文章中,我将介绍如何使用 Elastic 所提供的 Metrics 应用来展示可观测性。Metric 应用是在 Kibana 中集成的一个应用,也是一个开箱即用的工具。在今天的练习中,所有的演示是基于 7.11 发布版。以前的版本和这个版本稍有不同。

在今天的展示中,我将使用三台机器来收集指标。我的配置如下:

在你们自己的练习中,你们可以根据自己的机器或者容器的多少来构建自己的配置。在这里必须指出来的是针对所有的指标,有且只有一个 Metrics 应用来展示所有的指标。在上面,我在 MacOS 中安装了 Elasticsearch, Kibana,以及  Metricbeat。 Metricbeat 同时采集 system 以及 mysql 两个模块的指标。在另外的两个机器中,我也同时运行 Metricbeat 用来采集当前机器的指标。我在它们里面启动 system 模块(这也是默认的启动模块)。如果大家对安装 Beats 还不是很熟的话,请参考我之前的文档:

在今天的教程中,我将不再累述如何安装 Elasticstack 以及 MySQL 等。针对 MySQL 的模块启动,我们需要做一些小的配置。我们需要修改 modules.d/mysql.yml 文件:

modules.d/mysql.yml

# Module: mysql
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.11/metricbeat-module-mysql.html

- module: mysql
  metricsets:
    - status
    - galera_status
    - performance
  #  - query
  period: 10s

  # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/"
  # or "unix(/var/lib/mysql/mysql.sock)/",
  # or another DSN format supported by <https://github.com/Go-SQL-Driver/MySQL/>.
  # The username and password can either be set in the DSN or using the username
  # and password config options. Those specified in the DSN take precedence.
  hosts: ["root:1234@tcp(127.0.0.1:3306)/"]

  # Username of hosts. Empty by default.
  #username: root

  # Password of hosts. Empty by default.
  #password: secret

在上面,我们需要配置 MySQL 的用户名及密码,同时我们需要打开一些我们想要的 metricsets 来进行相应的监控。等配置完成后,我们可以使用如下的命令来进行测试配置是否成功:

./metricbeat test modules mysql | grep OK

上面的命名显示:

$ ./metricbeat test modules mysql | grep OK
  status...OK
  galera_status...OK
  performance...OK

如果你没有配置好自己的用户名及密码,那么你将看到错误的信息。

在这里,我们必须指出的是 Metrics 应用除了展示主机的一些指标(内存,硬盘,CPU 等等),也同时可以展示一些服务,比如 MySQL, Nginx 等等:

 

启动 Metrics 应用

我们在 Kibana 中,选择 Metrics 来启动应用:

在上面,我们可以看到我的三个机器的显示情况。在上面,我们可以看到我的 hostname 被显示出来了。当我们的鼠标停在相应的 host 上时,我们可以看到一个概况信息。我们也可以使用列表的形式来进行展示:

我们可以选择不同的指标来进行展示:

当然我们也可以添加一个我们想要的指标:

我们知道 Metricbeat 可以采集两个方面的数据:主机及服务。我们通过如下的的方式来展示服务的指标:

在上面,我们可以看到有 system 模块的指标,我们也同时看到在 liuxgu 机器上运行有一个 nginx 的服务,还有在 liuxg 机器上的一个 mysql 的服务。

我们可以在搜索框中进行 KQL 的搜索:

点击当前的主机:

我们可以看到当前主机的一些指标信息:

我们甚至可以点击 Logs, APM, Uptime 直接跳转到相应的应用来查看当前主机的日志,性能以及在线情况,当然前提是我们针对该主机做了相应的配置,否认即使是跳转过后也没有数据。Elastic Stack 的好处是,我们把指标,日志以及跟踪集成打一个环境之中,从而使得它们能够互相进行相关进行查看,从而能给出我们更加全面的可观测性。

我们接下来点击 Metrics Explorer:

在上面,我们可以看到有两个显示的指标:kubernetes 以及 docker。这两个指标我们都没用到。我们可以删除这两个指标,并添加如下的指标:

上面的指标表示1分钟的系统负载。同样,我们可以添加更多的5分钟以及15分钟的负载情况:

我们可以甚至把它们安装主机进行分别显示:

如果我们想要把当前的可视化图加载到我们的 Dasbboard 中去的话,我们可以通过如下的方式来进行可视化编辑:

我们可以通过 TSVB 来进一步对该可视化进行加工,比如添加一个 static 线来表示一个阈值:

我们可把当前的可视化图保存于一个 Dashboard 中,并最终在它里面进行显示。

我们甚至可以创建相应的警报:

如果大家对如何生产警报不是很熟的话,请参阅我之前的文章 “Elastic:菜鸟上手指南”,并查看 “通知及警报” 一节。

我们可以点击 “Settings” 来修改配置:

在上面,我们可以配置 Metrics 索引的索引模式。在默认的情况下, metrics-* 以及 metricbeat-* 会被自动引用。如果你有特别的索引模式,请在这里进行添加。

好了今天就介绍到这里,希望大家学到知识!

已标记关键词 清除标记
相关推荐