Table of Contents

Gráficas con influxdb y grafana

Usaremos influxdb como base de datos y grafana para hacer las gráficas

INVESTIGAR: Tenemos que crear el directorio var_grafana con permisos que pueda escribir el usuario con id 472. Por ejemplo con permisos 777

docker-compose.yml
version: '2'
services:
  influxdb:
    image: "influxdb"
    container_name: "influxdb"
    volumes:
     - ./var_influxdb:/var/lib/influxdb
#     - ./influxdb.conf:/etc/influxdb/influxdb.conf:ro
    restart: always
    environment:
     - INFLUXDB_DB=grafanaFlux
     - INFLUXDB_ADMIN_ENABLED=true
     - INFLUXDB_ADMIN_USER=admin
     - INFLUXDB_ADMIN_PASSWORD=gr4f4n4
     - INFLUXDB_USER=grafanaflux
     - INFLUXDB_USER_PASSWORD=gr4f4n4
    ports:
     - 8086:8086
  grafana:
    image: "grafana/grafana"
    container_name: "grafana"
#    user: "472"
    links:
     - "influxdb:influxdb"
    volumes:
     - ./var_grafana:/var/lib/grafana
#     - ./ldap.toml:/etc/grafana/ldap.toml
    environment:
     - GF_SECURITY_ADMIN_PASSWORD=secret
#     - GF_AUTH_LDAP_ENABLED=true
#     - GF_AUTH_LDAP_CONFIG_FILE=/etc/grafana/ldap.toml
     - GF_SERVER_PROTOCOL=http
    ports:
     - 3000:3000
    restart: always

Desde el directorio que tenemos el fichero docker-compose.yml lanzamos el comando:

docker-compose up -d

Esto nos levanta un docker con la BBDD de influxdb y otro con grafana:

IMAGE               COMMAND                  PORTS                    NAMES
grafana/grafana     "/run.sh"                0.0.0.0:3000->3000/tcp   grafana
influxdb            "/entrypoint.sh infl…"   0.0.0.0:8086->8086/tcp   influxdb

Creamos una base de datos:

curl -i -XPOST http://172.17.0.1:8086/query --data-urlencode "q=CREATE DATABASE borra"

Insertamos un dato:

curl -i -XPOST 'http://172.17.0.1:8086/write?db=borra' --data-binary 'ENCHUFE,id=1 value=1000'

Consultamos el dato

curl -G 'http://172.17.0.1:8086/query?db=borra' --data-urlencode 'q=SELECT * FROM "ENCHUFE"'

Metemos datos:

curl -i -XPOST 'http://172.17.0.1:8086/write?db=borra' --data-binary @data.txt

El fichero data.txt tiene este formato, el último número es el timestamp con 9 ceros mas.

data.txt
consumo,service=cec,environment=dev,type=real value=2 1548979200000000000
consumo,service=cec,environment=dev,type=real value=4 1549065600000000000
consumo,service=cec,environment=dev,type=real value=9 1549152000000000000
consumo,service=cec,environment=dev,type=real value=15 1549238400000000000

Vamos a Grafana:

http://172.17.0.1:3000/login

admin/secret (viene en el docker-compose)
Pulsamos add data source

SeleccionamosInfluxDB:

Crear Dashboard Gráfica

Vamos al icono de + y create Dashboard y Add query

Dashboard público

/etc/grafana/grafana.ini
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access                                             
enabled = true                     

# specify organization name that should be used for unauthenticated users                             
org_name = Main Org.             

# specify role for unauthenticated users                                        
org_role = Viewer
                                    
# mask the Grafana version number for unauthenticated users
;hide_version = false