Soy Òscar Mas y os quiero enseñar cómo federar varios Prometheus (Prometheus Federation). Pero como siempre, antes de empezar, debemos saber para qué nos sirve federar unos Prometheus.
Introducción a la Federación de Prometheus
A veces nos podemos encontrar que disponemos de varios Prometheus ubicados en lugares distintos o incluso en la misma ubicación. Cada Prometheus trabaja de manera independiente a los otros Prometheus que se han desplegado y, como consecuencia de ello, cuando queremos conocer los datos de un Prometheus, debemos conectarnos a ese Prometheus que tiene la información, y cuando queremos ver la información de otro, debemos hacer el mismo procedimiento: conectarnos a ese segundo Prometheus y ver los datos. Esto no parece muy caótico cuando tienes un par o tres, pero empieza a ser un problema cuando disponemos de bastantes Prometheus. Para solucionar este inconveniente, disponemos de dos soluciones:
- Utilizar Thanos, que está totalmente fuera del alcance de este post.
- Utilizar la federación de Prometheus, que es lo que utilizaremos en este caso.
Cómo funciona la Federación de Prometheus
La federación de Prometheus, realmente lo que quiere decir es que todos los sistemas de Prometheus que tenemos dispongan de sus datos recopilados en un Prometheus central y desde este Prometheus central se podrá ver toda la información de los otros Prometheus. Para conseguir esta “magia”, Prometheus debe pasar una etiqueta desde los Prometheus para poder saber de dónde proviene la información.
Pero creo que quedará más claro en el lab.
Laboratorio práctico: despliegue con tres servidores Prometheus
Partiremos de tres servidores en los cuales instalaremos Prometheus. El servidor “prometheus-a” será el que tendrá todos los datos de los otros servidores Prometheus (prometheus-b y prometheus-c).

Es importante que en la instalación de los Prometheus que se hará en los clientes (prometheus-b y prometheus-c), instalemos algún tipo de exporter para que más adelante podamos recoger los datos desde el Prometheus central (prometheus-a). En mi caso he utilizado el “node exporter”.
Hasta aquí no hay nada que se salga de lo normal, la magia está en la configuración de los archivos de Prometheus. Recordad que el servidor central (prometheus-a) recogerá los datos de los otros Prometheus (prometheus-b y prometheus-c). De tal forma que los archivos de configuración quedarían así:

Una vez realizada la configuración, si accedemos a la configuración del Prometheus central (prometheus-a), podremos ver que está recogiendo la información de los otros Prometheus (prometheus-b y prometheus-c).


Espero que este pequeño laboratorio os ayude a empezar y a entender su funcionamiento básico o como mínimo, que hayáis descubierto un nuevo producto.
