
Elasticsearchでパフォーマンスメトリクスを収集し、Grafanaで可視化
En este post vamos a intentar ver cómo visualizar cualquier métrica de rendimiento de un equipo Windows Server o de sus servicios como sea SQL Server, 交換… con la intención de poder visualizarlos en tiempo real en 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
Editamos el fichero de configuración de Metricbeat, y al menos creamos la conexión contra nuestro servidor de Elasticsearch y el de Kibana:
... # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearchと入力します。: # 接続するホストの配列. ホスト: ["httpsの://FQDN_ELASTIC:9200"] ssl.verification_mode: なし ユーザー名: "利用者" パスワード: "パスワード" インデックス: "metricbeat-%{+yyyy です。MM.ddの}" ... # =================================== Kibana =================================== setup.kibana: ホスト: "httpsの://FQDN_KIBANA:5601" ssl.verification_mode: 何一つ ...
Probamos la configuración:
.\metricbeat.exe test config -c .metricbeat.yml -e
Cargamos los dashboards de Kibana (si los dashboards ya los hemos importado alguna vez podremos ignorar el primer comando) y arrancamos el servicio:
.\metricbeat.exe setup
Start-Service metricbeat
Si queremos quitar el servicio, vaya desinstalar filebeat alguna vez:
.\uninstall-service-metricbeat.ps1
Habilitando métricas de los servicios y contadores de rendimiento del Windows
まぁ, pues tendremos que habilitar este módulo, 次のコマンドでそれを行います:
.\metricbeat.exe modules enable windows
Lo siguiente será saber qué contadores de rendimiento renemos, esto lo podemos mirar con este comando de PowerShell:
Get-Counter -ListSet *
Y ya será cuestión de indicarle a Metricbeat cuales queremos recopilar, editamos el fichero de configuración del módulo ‘C:\Program Files\metricbeat\modules.d\windows.yml’ y se lo indicamos, 例:
# 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: - 名前: "Disk Writes/sec" - 名前: "% Disk Write Time" field: "write_time" 形式: "浮く" - object: "PhysicalDisk" field : "ディスク" 例: "*" counters: - 名前: "Disk Reads/sec" - 名前: "% Disk Read Time" field: "read_time" 形式: "浮く" - object: "MSSQL$VEEAMSQL2012:Databases" field : "データベース" 例: "*" counters: - 名前: "Data File(s) 大きさ (キロバイト)" ...
ファイルを保存します, reiniciamos el servicio de Metricbeat y ya nos vamos a verificar que tenemos en Elasticsearch los datos. いつも通り, Kibanaに移動し、データが入ってきたら「Management」に進むことができます > 「スタック管理」 > 「キバナ」 > 「インデックスパターン」 > インデックスパターンを作成する「インデックスパターンを作成」, 私が言ったように, いつも通り (この場合、引用符は付けません) ‘metricbeat-*’ y tendremos los datos ya en Elasticsearch almacenados de manera correcta. Ahora podríamos conectarnos desde “Analytics” > “Discover” a nuestro índice de Metricbeat y visualizar que está recogiendo datos.
Una vez los datos estén en Elasticsearch ya queda seguir los pasos que hemos visto varias veces en otros post, que sería, (私) crear conector o Data Source de Grafana a Elasticsearch y (イ) empezar a hacer el dashboard o los dashboards que necesites. Este es un mero ejemplo de los datos recopilados de un servidor SQL Server, donde vemos ciertos contadores bastante interesantes y comunes, así como tamaños y crecimientos de las bases de datos, conexiones, 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!