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:
admin/secret (viene en el docker-compose)
Pulsamos add data source
SeleccionamosInfluxDB:
Vamos al icono de + y create Dashboard y Add query
/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