Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



Blackbox Exporter

Blackbox exporter is a prometheus exporter which can probe endpoints via http/https, icmp, etc.  It's extremely simple to setup and can be used to monitor the status of various endpoints (which could be web applications, REST endpoints, etc.).

We've already setup blackbox-exporter in our prometheus configuration file (see lines 36 to 57). 


node_exporter is a prometheus exporter which monitors hardware and 'nix OS metrics.  It runs on a port exposed to prometheus and prometheus can then query it and get a (large) ranger of metrics for whatever machine is running node_exporter.


Grafana is a great platform for visualising data and metrics from large data sets.  It can connect with a very large number of data sources and has native (built-in) prometheus support, which makes it extremely easy to integrate prometheus and provides an attractive and versatile front-end to view various prometheus metrics.


  • blackbox-exporter.yml : configuration file for blackbox-exporter
  • dashboard-blackbox.json : blackbox exporter dashboard I've customised see Adding monitoring dashboards;
  • dashboard-node_exporter.json : node_exporter dashboard I've customised see Adding monitoring dashboards;
  • docker-compose.yml : docker compose config file
  • grafana.ini : grafana configuration file
  • prometheus.yml : prometheus configuration file

Once you've cloned the repo, simply run (from the with within the cloned folder):

Code Block
docker-compose up -d


Installing node_exporter can be done by downloading a recent version version, untar'ing and executing.  We're going to be doing an extra step here to manage node_exporter with systemd (so it starts on server boot etc.).


We've already setup node_exporter in our prometheus configuration file (see lines 31 to 34). 

View Git file


Once you have your docker containers running, access port 3000 on the server with a browser (e.g. visit httpvisit or whatever your internal address is for your server). 


For external network access you should (shall!) secure client-server comms.  See Apache reverse-proxy SSL to multiple server applications for a nice(?) way to do this for our setup here.

Grafana's login screen should appear - if you're the first user to login after creating this container then just enter any new credentials.


You can leave most setting as default and simply enter the server url docker-compose defined prom hostname with port 9090 for the Prometheus instance we have setup, for my case it looks like:

Image RemovedImage Added

The URL should point to the server's internal IP and NOT localhost (or since localhost from Grafana's point of view in is the Grafana docker

prom:9090 refers to the docker-compose defined hostname for our prometheus container.

Adding monitoring dashboards