Instalar Grafana a través de Docker
Hoy voy a enseñaros lo fácil que es generar un servidor de grafana para monitorización a través de proyectos github. En este caso, hablamos de grafana-xxl, os dejo la URL:
https://github.com/monitoringartist/grafana-xxl
Lanzamos la ejecución en modo no persistente para hacer una prueba, que es muy sencillo:
[root@centos ~]# docker run -d --name=grafana-xxl -p 3000:3000 monitoringartist/grafana-xxl:latest
Unable to find image 'monitoringartist/grafana-xxl:latest' locally
latest: Pulling from monitoringartist/grafana-xxl
c5e155d5a1d1: Pull complete
636812ca4cd8: Pull complete
89336075b74f: Pull complete
Digest: sha256:0ca7441bf76ae97473350078dca504974de65d7748927361fe00ae1dcdec92c9
Status: Downloaded newer image for monitoringartist/grafana-xxl:latest
WARNING: IPv4 forwarding is disabled. Networking will not work.
cc76fe06387535f8c0984238d5979b86ba9591ea2db0f39fc0fc05897291a6cf
Revisamos si existe el contenedor arrancado:
[root@centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc76fe063875 monitoringartist/grafana-xxl:latest "/run.sh" 3 minutes ago Up 3 minutes 0.0.0.0:3000->3000/tcp grafana-xxl
Si queremos crear un storage persistente para grafana podríamos crear un directorio:
[raulunzue@centos ~]$ sudo mkdir /var/lib/grafana
[sudo] password for raulunzue:
Generamos un contenedor para el storage con busybox:
[root@centos ~]# docker run -d -v /var/lib/grafana --name grafana-xxl-storage busybox:latest
WARNING: IPv4 forwarding is disabled. Networking will not work.
91ec442ca363ca46ff8d961e752a476d5a746e6e9a9cca78fbb73edab7477308
Y generaríamos el contenedor de la siguiente manera:
[root@centos ~]# docker run -d -p 3000:3000 --name grafana-xxl --volumes-from grafana-xxl-storage monitoringartist/grafana-xxl:latest
En mi caso, hago NAT desde el host físico, así que voy a la URL de mi host físico en el puerto 3000. Se abrirá un portal con usuario y contraseña por defecto admin / admin :
Podemos cambiar la contraseña al primer logon:
Y comenzaría el proceso de configuración de Grafana:
Crear docker MySQL persistente para Grafana
Tenemos que agregar una base de datos, así que generamos una con un contenedor de MySQL, por ejemplo:
[root@centos ~]# docker run -d -p 33060:3306 --name mysql-db -e MYSQL_ROOT_PASSWORD=grafanadbpasswd mysql
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
fc7181108d40: Pull complete
787a24c80112: Pull complete
a08cb039d3cd: Pull complete
4f7d35eb5394: Pull complete
5aa21f895d95: Pull complete
a742e211b7a2: Pull complete
0163805ad937: Pull complete
87f18876c3ff: Pull complete
78082f25f167: Pull complete
0a510f055c17: Pull complete
312b0999e433: Pull complete
f864cfdc0264: Pull complete
Digest: sha256:415ac63da0ae6725d5aefc9669a1c02f39a00c574fdbc478dfd08db1e97c8f1b
Status: Downloaded newer image for mysql:latest
9df7b734e0d8f26943a48a7ca541ecb71e5a6c30a522204776dafe2dcfc4f4f0
Os explico cada parámetro:
-d: Detached Mode es la forma en que indicamos que corra en background
-p : puerto, el contenedor corre en el puerto 3306 pero hacemos un bind para que lo escuchemos en Host el puerto 33061
–name : le asignamos un nombre al contenedor para no usar el hash
-e : asignamos una contraseña
Nos aseguramos que están corriendo ambos contenedores:
[root@centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9df7b734e0d8 mysql "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 33060/tcp, 0.0.0.0:33060->3306/tcp mysql-db
cd1e967aecd7 monitoringartist/grafana-xxl:latest "/run.sh" 25 hours ago Up 25 hours 0.0.0.0:3000->3000/tcp grafana-xxl
Nos conectamos al contenedor MySQL:
[root@centos ~]# docker exec -it mysql-db mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.16 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Generamos una base de datos:
mysql> create database grafanadb;
Query OK, 1 row affected (0.01 sec)
Comprobamos:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| grafanadb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
Al añadir el Data Source elegiremos MySQL:
Configuráis los datos con los datos de vuestra base de datos y la conexión al host físico en este caso, al puerto 33060, usuario root si no configuráis otro, contraseña la misma que al generar el contenedor y realizamos un test:
Ya podemos seguir con la configuración restante:
En pocos pasos tendremos Grafana operativo con Docker Container.
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?