Proyecto aTIC (II) - Servidor de InfluxDB

 Servidor de InfluxDB.

Como se ha mencionado en el anterior post (Proyecto aTIC (I) - Introducción), una de las raspberrys que intervienen en el proyecto contiene un servidor de InfluxDB sobre el sistema operativo Raspbian de la RaspberryPi (RPI1). Para la gestión del servidor y el resto de aplicaciones que se han necesitado (como el servicio Duck DNS que se menciona más adelante) se ha instalado Docker, una herramienta de virtualización para la creación de contenedores.

Adicionalmente, se ha hecho uso también de Portainer.io, una herramienta web open-source que permite gestionar contenedores Docker de una manera sencilla e intiutiva. Se ha configurado el sistema para que el servicio Portainer corra en el puerto 9000. 

También se ha hecho uso de Docker Compose, que permite definir y ejecutar aplicaciones Docker multicontenedor, como la desarrollada para este proyecto. Docker Compose requiere de un archivo tipo .yaml en el que se especifique la configuración deseada y así, con un único comando, se descargan e instalan las imágenes necesarias para montar todos los contenedores. El archivo Docker Compose desarrollado para RPI1 se muestra a continuación.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
version: '2'
services:

  portainer:
    container_name: portainer
    image: portainer/portainer
    restart: unless-stopped
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./volumes/portainer/data:/data

  influxdb:
    container_name: influxdb
    image: "influxdb:latest"
    restart: unless-stopped
    ports:
      - 8086:8086
      - 8083:8083
      - 2003:2003
    env_file:
      - ./services/influxdb/influxdb.env
    volumes:
      - ./volumes/influxdb/data:/var/lib/influxdb
      - ./backups/influxdb/db:/var/lib/influxdb/backup

  mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto
    restart: unless-stopped
    user: "1883"
    ports:
      - 1883:1883
      - 9001:9001
    volumes:
      - ./volumes/mosquitto/data:/mosquitto/data
      - ./volumes/mosquitto/log:/mosquitto/log
      - ./services/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf


  python:
    container_name: python
    build: ./services/python/.
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./volumes/python/app:/usr/src/app

 Se observa cómo en el script se definen los servicios de Portainer, InfluxDB, Mosquitto y Python.

Como se ha mencionado con anterioridad, también se ha hecho uso de una DNS para poder acceder a la base de datos InfluxDB alojada en esta RaspberryPi (RPI1) de forma remota. Se ha empleado el servicio Duck DNS ya que es gratuito y muy sencillo de utilizar. Se ha reservado un dominio y se accede remotamente a la base de datos mediante el puerto 8086 (que se puede ver definido en el script anterior).

Para continuar con el siguiente post que define el proyecto desarrollado accede a Proyecto aTIC (III) - Broker MQTT


Comentarios

Entradas populares de este blog

Proyecto aTIC (I) - Introducción

Proyecto aTIC (V) - Grafana

Proyecto aTIC (IV) - Bridge MQTT/InfluxDB