在 Elasticsearch 中收集性能指标并在 Grafana 中可视化这些指标
在这篇文章中,我们将尝试了解如何可视化 Windows Server 计算机或其服务(如 SQL Server)的任何性能指标, 交换… 目的是能够在 Grafana 中实时可视化它们.
La idea será recopilarlos mediante uno de los agentes del Stack de Elastic, en este caso usaremos Metricbeat, y luego este se encargará de almacenarlos en Elasticsearch; y con Grafana accederemos a los datos y los visualizaremos cómo nos interese. Hace un tiempo escribí un post donde hablábamos de cómo implementar Metricbeat y cómo recopilar las réplicas del sistema, 如果需要帮助, échale un vistazo, hoy lo que toca son los contadores de rendimiento del perfmon o Monitor de recursos, o como le queramos llamar.
Instalando Metricbeat
La instalación de Metricbeat ya la conocemos, es muy sencilla, bastará con descargarnos el fichero ZIP de x64 de https://www.elastic.co/es/downloads/beats/metricbeat y descomprimirlo en ‘C:\Program Files\metricbeat’. Para crear el servicio de Metricbeat ejecutamos:
cd 'C:\Program Files\metricbeat\' .\install-service-metricbeat.ps1
编辑 Metricbeat 的配置文件, 至少创建到我们的 Elasticsearch 服务器和 Kibana 的连接:
...
# ---------------------------- Elasticsearch 输出 ----------------------------
输出.elasticsearch:
# 要连接到的主机数组.
主机: ["https://FQDN_ELASTIC:9200"]
ssl.verification_mode: none
用户名: "用户"
密码: "密码"
指数: "metricbeat-%{+yyyy.MM.dd}"
...
# =================================== Kibana ===================================
setup.kibana:
主机: "https://FQDN_KIBANA:5601"
ssl.verification_mode: 没有
...
测试配置:
.\metricbeat.exe test config -c .metricbeat.yml -e
加载 Kibana 的仪表盘 (如果仪表盘我们已经导入过,可以忽略第一个命令) 然后启动服务:
.\metricbeat.exe setup Start-Service metricbeat
如果我们想移除服务, 如果以后要卸载 filebeat:
.\uninstall-service-metricbeat.ps1
启用 Windows 服务和性能计数器的指标
井, 那么我们必须启用此模块, 我们将使用以下命令来执行此操作:
.\metricbeat.exe modules enable windows
接下来是要知道我们有哪些性能计数器, 我们可以使用此 PowerShell 命令查看:
Get-Counter -ListSet *
然后只是告诉 Metricbeat 我们想收集哪些, 编辑模块配置文件 'C:\Program Files\metricbeat\modules.d\windows.yml’ 然后告诉它, 例:
# Module: 窗户
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-windows.html
- 模块: windows
metricsets:
- service
period: 1m
- 模块: windows
metricsets: [perfmon]
时期: 10s
perfmon.ignore_non_existent_counters: true
perfmon.group_measurements_by_instance: true
perfmon.queries:
- object: "PhysicalDisk"
field : "磁盘"
实例: "*"
counters:
- 名字: "磁盘写入次数/秒"
- 名字: "% 磁盘写入时间"
field: "write_time"
格式: "浮"
- object: "PhysicalDisk"
field : "磁盘"
实例: "*"
counters:
- 名字: "磁盘读取次数/秒"
- 名字: "% 磁盘读取时间"
field: "read_time"
格式: "浮"
- object: "MSSQL$VEEAMSQL2012:数据库"
field : "数据库"
实例: "*"
counters:
- 名字: "数据文件(s) 大小 (知识库)"
...
我们录制文件, 我们重启 Metricbeat 服务,现在去验证在 Elasticsearch 中的数据. 照常, 我们将转到 Kibana,一旦数据进入,我们就可以转到 “Management” > “堆栈管理” > “Kibana” > “索引模式” > “Create index pattern” 创建索引模式, 正如我所说, 照常 (在这种情况下,不带引号) ‘metricbeat-*’,我们会在 Elasticsearch 中正确存储数据. 现在我们可以从“Analytics”连接 > “Discover” 到我们的 Metricbeat 索引,并查看它正在收集数据.
一旦数据在 Elasticsearch 中,就可以按照我们在其他帖子中多次看到的步骤进行, 那就是, (我) 创建 Grafana 到 Elasticsearch 的连接器或数据源,然后 (第二) 开始制作你需要的仪表盘. 这是一个从 SQL Server 服务器收集的数据的简单示例, donde vemos ciertos contadores bastante interesantes y comunes, así como tamaños y crecimientos de las bases de datos, 连接, latencias…
Imaginaros las posibilidades de esto, cualquier servicio instalado en Windows dispone de sus propios contadores, que podremos recopilarlos con la periodicidad que nos interese, a nivel de 1s, 10s, 30s… y su visualización igual, con refresco en tiempo real o para realizar informes con su análisis tras la ingesta de bastantes datos y poder analizar crecimientos…
无, acabo con esto, una manera rápida de ver los contadores que tiene un SQL Server:
选择计数(*) FROM sys.dm_os_performance_counters;
就是这样, espero que os sirva para ver posibilidades en vuestros entornos, que podemos recopilar cualquier dato que necesitemos, 稍后停止, trabajarlo, crear dashboards personalizados para distintos perfiles, informes semanales… Ale que me alargo, un abrazo a tod@s!











































