====== Grafana ====== Herramienta para crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB. Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture. * [[https://grafana.com|Web oficial]] Las notas aquí recogidas se centran en la versión 7.x de Grafana ===== Características ===== ==== Fuentes de datos ==== Grafana soporta: * InfluxDB * Prometheus * Elasticsearch * MySQL * PostgreSQL ===== Instalación ===== ==== Docker ==== version: '3' services: app: container_name: grafana image: grafana/grafana ports: - 3000:3000 * [[https://grafana.com/docs/grafana/latest/installation/docker/|Run Grafana Docker image]] ===== Consideraciones ===== La mayoría de los paneles de Grafana esperan series temporales. Para estos casos, al hacer escribir consultas SQL, se deben incluir una columna llamada ''time''. La siguiente consulta: SELECT 10 AS value FROM tabla Fallará al no haber ningún dato temporal. Found no column named time or time_sec ==== Macros ==== * ''$%%__%%timeGroup(dateColumn, '5m', 0)'' * ''$%%__%%unixEpochGroup(dateColumn, '5m', 0)'' El último parámetro es el valor con el que rellenar el intervalo. Útil cuando se necesitan valores para todos los intervalos. Es decir, si no tenemos datos para cierto intervalo, los anteriores macros añadirán un 0. SELECT $__time(time), sum(opened) AS "Abiertas", sum(closed) AS "Cerradas" FROM activity WHERE $__unixEpochFilter(time) GROUP BY 1 ===== Uso ===== http://ip.servidor:3000 Credenciales por defecto: * Usuario: ''admin'' * Contraseña: ''admin'' La primera vez que iniciamos nos pide que cambiemos la contraseña del administrador. ==== Alertas ==== Antes de poder crear alertas hay que crear un canal de notificación: Alerting -> Notification channels -> New Channel. Elegimos el tipo de canal (medio por el que se enviará la alerta), cubrimos la configuración solicitada y podemos hacer una prueba antes de guardarlo para confirmar su correcto funcionamiento. Completar la explicación sobre configuración y uso de alertas. ==== Dashboards ==== Cuadros de mando ya configurados. Importar, elegir el origen de datos y listo. * https://grafana.com/grafana/dashboards Algunos interesantes: * https://grafana.com/grafana/dashboards/915: Telegraf system overview * https://grafana.com/grafana/dashboards/928: Telegraf: system dashboard * https://grafana.com/grafana/dashboards/10578: Raspberry Pi monitoring * https://grafana.com/grafana/dashboards/10581: Host Dashboard * https://grafana.com/grafana/dashboards/12705: Home Assistant Para cambiar el nombre, dentro del panel, pulsamos en el botón de //Settings// (el de la rueda dentada), vamos a la pestaña //General// y modificamos el valor del campo **Name**. ==== Plugins ==== * https://grafana.com/grafana/plugins ===== Grafana e InfluxDb ===== Es habitual montar ambas herramientas para tener un sistema de monitorización: grafana para la visualización e influxdb para el almacenamiento de las métricas. ==== Docker ==== Creamos una red docker previamente: docker network create monitoring Esto nos permite agrupar los contenedores en una misma red y que puedan "verse" mediante el nombre de los contenedores. version: '3' services: app: container_name: grafana image: grafana/grafana ports: - 3000:3000 user: "1000" restart: always volumes: - ./grafana-data:/var/lib/grafana influxdb: image: influxdb container_name: influxdb restart: always ports: - 8086:8086 volumes: - ./influxdb-data:/var/lib/influxdb networks: default: external: name: monitoring