network-monitor/README.md

49 lines
3.2 KiB
Markdown
Raw Normal View History

2017-08-02 14:43:16 +00:00
2018-10-01 16:31:07 +00:00
# A Docker Stack which Monitors your home network
Here's a quick start to stand-up a Docker [Prometheus](http://prometheus.io/) stack containing Prometheus, Grafana with [blackbox-exporter](https://github.com/prometheus/blackbox_exporter) and [speedtest-exporter](https://github.com/stefanwalther/speedtest-exporter) to collect and graph home network connections and speed.
2017-02-21 12:37:35 +00:00
2017-05-23 11:56:57 +00:00
## Pre-requisites
2017-02-21 12:37:35 +00:00
Before we get started installing the Prometheus stack. Ensure you install the latest version of docker and [docker-compose](https://docs.docker.com/compose/install/) on your Docker host machine. This has also been tested with Docker for Mac and it works well.
2017-05-23 11:56:57 +00:00
## Installation
2017-02-21 12:37:35 +00:00
Clone the project to your Docker host.
2018-10-01 16:31:07 +00:00
If you would like to change which targets should be monitored or make configuration changes edit the [/prometheus/prometheus.yml](./prometheus/prometheus.yml) file. The targets section is where you define what should be monitored by Prometheus. The names defined in this file are actually sourced from the service name in the docker-compose file. If you wish to change names of the services you can add the "container_name" parameter in the `docker-compose.yml` file.
2017-02-21 12:37:35 +00:00
2017-02-21 14:57:40 +00:00
## Configuration
To change what hosts you ping you change the `targets` section in [/prometheus/pinghosts.yml](./prometheus/pinghosts.yml) file.
2017-02-21 15:02:06 +00:00
2018-10-01 16:31:07 +00:00
For speedtest the only relevant configuration is how often you want the check to happen. It is at 5 minutes by default which might be too much if you have limit on downloads. This is changed by editing `scrape_interval` under `speedtest` in [/prometheus/prometheus.yml](./prometheus/prometheus.yml).
2017-02-21 14:57:40 +00:00
2017-02-21 12:37:35 +00:00
Once configurations are done let's start it up. From the /prometheus project directory run the following command:
$ docker-compose up -d
2018-04-30 09:11:51 +00:00
That's it. docker-compose builds the entire Grafana and Prometheus stack automagically.
2017-02-21 12:37:35 +00:00
2018-10-01 22:39:45 +00:00
The Grafana Dashboard is now accessible via: `http://<Host IP Address>:3030` for example http://localhost:3030
2017-02-21 12:37:35 +00:00
username - admin
2018-10-01 22:39:45 +00:00
password - wonka (Password is stored in the `config.monitoring` env file)
2017-02-21 12:37:35 +00:00
2018-10-01 22:39:45 +00:00
The DataSource and Dashboard for Grafana are automatically provisioned.
2018-10-01 22:39:45 +00:00
If all works it should be available at http://localhost:3030/d/o9mIe_Aik/internet-connection - if no data shows up try change the timeduration to something smaller.
2017-02-21 12:37:35 +00:00
2018-10-01 22:39:45 +00:00
<center><img src="images/dashboard.png" width="4600" heighth="500"></center>
## Interesting urls
2018-10-01 22:39:45 +00:00
Note: replace `localhost` with your docker host ip/name if not running this locally.
http://localhost:9090/targets shows status of monitored targets as seen from prometheus - in this case which hosts being pinged and speedtest. note: speedtest will take a while before it shows as UP as it takes ~30s to respond.
http://localhost:9090/graph?g0.expr=probe_http_status_code&g0.tab=1 shows prometheus value for `probe_http_status_code` for each host. You can edit/play with additional values. Useful to check everything is okey in prometheus (in case Grafana is not showing the data you expect).
http://localhost:9115 blackbox exporter endpoint. Lets you see what have failed/succeded.
http://localhost:9696/metrics speedtest exporter endpoint. Does take ~30 seconds to shohw its result as it runs an actual speedtest when requested.