Bueno muchas veces tenemos que monitorizar diveras apps, y para no estar pasando de un pantalla a otra nos interesa tenerlo centralizado en un único punto.
En la máquina Bastión
1º Creamos un directiorio dentro de:
$>\opt\monitoring
En el crearemos el siguiente script para docker-compose
version: "2"
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: always
ports:
- 3000:3000
networks:
- monitoring
volumes:
- grafana-volume:/var/lib/grafana influxdb:
image: influxdb
container_name: influxdb
restart: always
ports:
- 8086:8086
networks:
- monitoring
volumes:
- influxdb-volume:/var/lib/influxdbnetworks:
monitoring:volumes:
grafana-volume:
external: true
influxdb-volume:
external: true
El cual nos crea dos contenedores uno con grafana y otro con influxdb.
Ahora debemos crear la red y los volúmenes donde vamos a compartir nuestros datos del contenedor y que se mantengan persistentes.
$> docker network create monitoring
$> docker volume create grafana-volume
$> docker volume create influxdb-volume
Podemos comprobar si se ha creado los volúmenes ejecutando:
$> docker volume ls
Y la creación del la red interna.
$> docker network ls
Ok en este momento vamos a inicializar los contenedores y los volúmenes para parsear los datos de acceso, una vez creados los contenedores automáticamente se eliminarán.
$> docker run --rm \
-e INFLUXDB_DB=telegraf -e INFLUXDB_ADMIN_ENABLED=true \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \
-e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword \
-v influxdb-volume:/var/lib/influxdb \
influxdb /init-influxdb.sh
Y por último una ya podemos lanzar nuestro servicio con docker-compose.
$> docker-compose up
Podemos comprobar si está todo correcto si nos dirigimos a: http://[ip de nuestra máquina]:3000 Y comprobamos que tenemos acceso a Grafana. Los datos de acceso son
- username:admin
- password:admin
Nos pedirá que cambiemos los datos de acceso:
Ok una vez dentro lo primero que debemos configurar es nuestra fuente de datos que en nuestro aso será influxdb. Para ello seleccionaremos añadir una fuente de datos. Seleccionamos InfluxDB y configuramos los siguientes campos:
- URL: https://influxdb:8086
- Database: telegraf
- User: telegraf
- Password: secretpassword Cuando ya tengamos los datos, pulsamos sobre el botón save/test, si todo ha ido bién debería aparecer un mensaje como el siguiente:
Bueno vamos a instalar nuestro primer dashboard predefenido para obtener los datos de las máquinas. Para ello vamos a descarganos un dashboard ya creado desde la propia web de grafana, para ello nos dirigiremos a: https://grafana.com/grafana/dashboards/928 E importaremos este dashboard a nuestro grafana, en la pantalla principal pulsamos importar e indicamos el id del dashboard
Una vez importado debemos seleccionar la fuente en nuestro caso influxdb.