diff --git a/README.md b/README.md index 6b41de5..6ad2f68 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ dockprom ======== -A monitoring solution for Docker hosts and containers with [Prometheus](https://prometheus.io/), [Grafana](http://grafana.org/), [cAdvisor](https://github.com/google/cadvisor), +A monitoring solution for Docker hosts and containers with [Prometheus](https://prometheus.io/), [Grafana](http://grafana.org/), [cAdvisor](https://github.com/google/cadvisor), [NodeExporter](https://github.com/prometheus/node_exporter) and alerting with [AlertManager](https://github.com/prometheus/alertmanager). ***If you're looking for the Docker Swarm version please go to [stefanprodan/swarmprom](https://github.com/stefanprodan/swarmprom)*** @@ -30,11 +30,28 @@ Containers: * Grafana (visualize metrics) `http://:3000` * NodeExporter (host metrics collector) * cAdvisor (containers metrics collector) -* Caddy (reverse proxy and basic auth provider for prometheus and alertmanager) +* Caddy (reverse proxy and basic auth provider for prometheus and alertmanager) ## Setup Grafana -Navigate to `http://:3000` and login with user ***admin*** password ***admin***. You can change the credentials in the compose file or by supplying the `ADMIN_USER` and `ADMIN_PASSWORD` environment variables on compose up. +Navigate to `http://:3000` and login with user ***admin*** password ***admin***. You can change the credentials in the compose file or by supplying the `ADMIN_USER` and `ADMIN_PASSWORD` environment variables on compose up. The config file can be added directly in grafana part like this +``` +grafana: + image: grafana/grafana:5.2.4 + env_file: + - config + +``` +and the config file format should have this content +``` +GF_SECURITY_ADMIN_USER=admin +GF_SECURITY_ADMIN_PASSWORD=changeme +GF_USERS_ALLOW_SIGN_UP=false +``` +If you want to change the password, you have to remove this entry, otherwise the change will not take effect +``` +- grafana_data:/var/lib/grafana +``` Grafana is preconfigured with dashboards and Prometheus as the default data source: @@ -61,7 +78,7 @@ For storage and particularly Free Storage graph, you have to specify the fstype You can find it in `grafana/dashboards/docker_host.json`, at line 480 : "expr": "sum(node_filesystem_free_bytes{fstype=\"btrfs\"})", - + I work on BTRFS, so i need to change `aufs` to `btrfs`. You can find right value for your system in Prometheus `http://:9090` launching this request : @@ -109,7 +126,7 @@ I've set the Prometheus retention period to 200h and the heap size to 1GB, you c - '-storage.local.retention=200h' ``` -Make sure you set the heap size to a maximum of 50% of the total physical memory. +Make sure you set the heap size to a maximum of 50% of the total physical memory. ## Define alerts @@ -226,15 +243,15 @@ ALERT jenkins_high_memory ## Setup alerting -The AlertManager service is responsible for handling alerts sent by Prometheus server. -AlertManager can send notifications via email, Pushover, Slack, HipChat or any other system that exposes a webhook interface. +The AlertManager service is responsible for handling alerts sent by Prometheus server. +AlertManager can send notifications via email, Pushover, Slack, HipChat or any other system that exposes a webhook interface. A complete list of integrations can be found [here](https://prometheus.io/docs/alerting/configuration). You can view and silence notifications by accessing `http://:9093`. The notification receivers can be configured in [alertmanager/config.yml](https://github.com/stefanprodan/dockprom/blob/master/alertmanager/config.yml) file. -To receive alerts via Slack you need to make a custom integration by choose ***incoming web hooks*** in your Slack team app page. +To receive alerts via Slack you need to make a custom integration by choose ***incoming web hooks*** in your Slack team app page. You can find more details on setting up Slack integration [here](http://www.robustperception.io/using-slack-with-the-alertmanager/). Copy the Slack Webhook URL into the ***api_url*** field and specify a Slack ***channel***. @@ -258,7 +275,7 @@ receivers: ## Sending metrics to the Pushgateway The [pushgateway](https://github.com/prometheus/pushgateway) is used to collect data from batch jobs or from services. - + To push data, simply execute: echo "some_metric 3.14" | curl --data-binary @- http://user:password@localhost:9091/metrics/job/some_job @@ -344,4 +361,4 @@ To run the grafana container as `user: 104` change your `docker-compose.yml` lik - monitor-net labels: org.label-schema.group: "monitoring" -``` \ No newline at end of file +``` diff --git a/config b/config new file mode 100644 index 0000000..72e84a6 --- /dev/null +++ b/config @@ -0,0 +1,3 @@ +GF_SECURITY_ADMIN_USER=admin +GF_SECURITY_ADMIN_PASSWORD=changeme +GF_USERS_ALLOW_SIGN_UP=false