在这篇文章中,我将介绍如何使用 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-* 会被自动引用。如果你有特别的索引模式,请在这里进行添加。
好了今天就介绍到这里,希望大家学到知识!