Raccolta delle metriche delle prestazioni in Elasticsearch e visualizzazione in Grafana

In questo post cercheremo di vedere come visualizzare qualsiasi metrica delle prestazioni di un computer Windows Server o dei suoi servizi come SQL Server, Sostituzione… con l'intenzione di poterli visualizzare in tempo reale in Grafana.

La idea será recopilarlos mediante uno degli agenti del Stack de Elastic, in questo caso usaremos Metricbeat, y luego este se encargará de almacenarlos en Elasticsearch; y con Grafana accederemos a los dati y los visualizzaremos come ci interessa. Hace un tiempo escribí un post donde hablábamos de cómo implementare Metricbeat y cómo compilare las réplicas del sistema, Se vuoi échale un vistazo, hoy lo que toca son los contadores de rendimiento del perfmon o Monitor de recursos, o come le queramos llamar.

Installando 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 ----------------------------
uscita.elasticsearch:
  # Array di host a cui connettersi.
  Ospita: ["https://FQDN_ELASTIC:9200"]
  ssl.verification_mode: none
  username: "UTENTE"
  parola d’ordine: "PAROLA D’ORDINE"
  indice: "metricbeat-%{+aaaa. MM.dd}"
...
# =================================== Kibana ===================================
setup.kibana:
  ospite: "https://FQDN_KIBANA:5601"
  ssl.verification_mode: nessuno
...

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

Abilitando le metriche dei servizi e i contatori delle prestazioni di Windows

Bene, dovremo abilitare questo modulo, Lo faremo con il seguente comando:

.\metricbeat.exe modules enable windows

Il passo successivo sarà sapere quali contatori delle prestazioni abbiamo, questo possiamo controllarlo con questo comando di PowerShell:

Get-Counter -ListSet *

E sarà solo questione di indicare a Metricbeat quali vogliamo raccogliere, modifichiamo il file di configurazione del modulo 'C:\Program Files\metricbeat\modules.d\windows.yml’ e lo indichiamo, esempio:

# Modulo: windows
# Documentazione: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-windows.html

- modulo: windows
  metricsets:
    - service
  period: 1m

- modulo: windows
  metricsets: [perfmon]
  periodo: 10s
  perfmon.ignore_non_existent_counters: true
  perfmon.group_measurements_by_instance: true
  perfmon.queries:
  - oggetto: "PhysicalDisk"
    campo : "Disco"
    istanza: "*"
    contatori:
    - Nome: "Disk Writes/sec"
    - Nome: "% Disk Write Time"
      campo: "write_time"
      formato: "galleggiare"
  - oggetto: "PhysicalDisk"
    campo : "Disco"
    istanza: "*"
    contatori:
    - Nome: "Disk Reads/sec"
    - Nome: "% Disk Read Time"
      campo: "read_time"
      formato: "galleggiare"

  - oggetto: "MSSQL$VEEAMSQL2012:Databases"
    campo : "Banca dati"
    istanza: "*"
    contatori:
    - Nome: "Data File(s) Grandezza (KB)"
...

Salviamo il file, reiniciamos el servicio de Metricbeat y ya nos vamos a verificar que tenemos en Elasticsearch los datos. Come al solito, andremo a Kibana e una volta che i dati arriveranno potremo andare su "Gestione" > "Gestione dello stack" > "Kibana" > "Modelli di indice" > "Crea modello di indice" per creare il modello di indice, Come ho detto, come al solito (in questo caso e senza virgolette) ‘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, (io) crear conector o Data Source de Grafana a Elasticsearch y (Ii) 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, Connessioni, 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

Niente, acabo con esto, una manera rápida de ver los contadores que tiene un SQL Server:

SELEZIONA CONTEGGIO(*) FROM sys.dm_os_performance_counters;

E questo è tutto, espero que os sirva para ver posibilidades en vuestros entornos, que podemos recopilar cualquier dato que necesitemos, Smettila più tardi, trabajarlo, crear dashboards personalizados para distintos perfiles, informes semanalesAle que me alargo, un abrazo a tod@s!

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!