diff --git a/templates/Prometheus/0/README.md b/templates/Prometheus/0/README.md new file mode 100644 index 0000000..19f24b1 --- /dev/null +++ b/templates/Prometheus/0/README.md @@ -0,0 +1,25 @@ +# Prometheus + +### Info: + +This template deploys a collection of containers based upon the technologies below, once deployed you should have a monitoring platform capable of querying all aspects of your environment with some nice pre-built dashboards. +In this deployment the following technologies are utilised to make this as useful as possible. +* **Prometheus** - Used to scrape and store metrics from our data sources. (https://github.com/prometheus/prometheus) +* **Prometheus Node Exporter** - Gets host level metrics and exposes them to Prometheus. (https://github.com/prometheus/node_exporter) +* **Ranch-Eye** - Pre-configured lightwieght haproxy to expose the cadvsior stats used by Rancher's agent container, to Prometheus. (https://github.com/Rucknar/ranch-eye) +* **Grafana** - Used to visualise the data from Prometheus and InfluxDB. (https://github.com/grafana/grafana/) +* **InfluxDB** - Used as database for storing rancher server metrics that rancher exports via the graphite connector. (https://github.com/influxdata/influxdb) +* **rancher-api-integration** - Allows Prometheus to access the Rancher API and return the status of any stack or service in the rancher environment associated with the API key used.(https://github.com/Limilo/prometheus-rancher-exporter/) + +To get the full compliment of metrics available,you need to configure the Rancher `graphite.host` address. This can be done automatically when you deploy the template by choosing the option below, for more information or how to do this change manually,see the following [guide](https://github.com/Rucknar/Guide_Rancher_Monitoring) + +All components in this stack are open source tools available in the community. All this template does is to bound them together in an easy to use package. +I expect most people who find this useful will make use of this as a starting point and develop it further around their own needs. + +## Deployment: +* Select Prometheus from the community catalog. +* Click deploy. + +## Usage +* Grafana will now be available on, running on port 3000. I've added a number of dashboards to help get you started. Authentication is with the default `admin/admin`. +* Prometheus will now be avaialble, running on port 9090. Have a play around with some of the data. For more information on Prometheus - https://prometheus.io/docs/introduction/overview/ \ No newline at end of file diff --git a/templates/Prometheus/0/docker-compose.yml b/templates/Prometheus/0/docker-compose.yml new file mode 100644 index 0000000..30aa44b --- /dev/null +++ b/templates/Prometheus/0/docker-compose.yml @@ -0,0 +1,86 @@ +ranch-eye: + ports: + - 9104:9104/tcp + labels: + io.rancher.scheduler.global: 'true' + tty: true + image: rucknar/ranch-eye:01 + stdin_open: true + net: "host" + +node-exporter: + ports: + - 9100:9100 + labels: + io.rancher.scheduler.global: 'true' + tty: true + image: prom/node-exporter:latest + stdin_open: true + net: "host" + +prom-conf: + tty: true + labels: + io.rancher.container.pull_image: always + image: rucknar/prom-conf:02 + command: /bin/sh -c "/usr//bin/confd -onetime -backend rancher -prefix /2015-12-19 && cat" + volumes: + - /etc/prom-conf/ + +prometheus: + tty: true + image: prom/prometheus:latest + command: -alertmanager.url=http://alertmanager:9093 -config.file=/etc/prom-conf/prometheus.yml -storage.local.path=/prometheus -web.console.libraries=/etc/prometheus/console_libraries -web.console.templates=/etc/prometheus/consoles + ports: + - 9090:9090 + labels: + io.rancher.sidekicks: prom-conf + volumes_from: + - prom-conf + links: + - ranch-eye:ranch-eye + - node-exporter:node-exporter + - rancher-api-integration:rancher-api-integration + +graf-db: + tty: true + image: rucknar/graf-db:01 + labels: + io.rancher.container.pull_image: always + command: cat + volumes: + - /var/lib/grafana/ + +influxdb: + image: tutum/influxdb:0.10 + ports: + - 8083:8083 + - 8086:8086 + - 8090:8090 + - 2003:2003 + environment: + - PRE_CREATE_DB=grafana;prometheus;rancher + - GRAPHITE_DB=rancher + - GRAPHITE_BINDING=:2003 + +grafana: + tty: true + image: grafana/grafana:2.6.0 + ports: + - 3000:3000 + labels: + io.rancher.sidekicks: graf-db + volumes_from: + - graf-db + links: + - prometheus:prometheus + - rancher-api-integration:rancher-api-integration + +rancher-api-integration: + tty: true + labels: + io.rancher.container.create_agent: true + io.rancher.container.agent.role: environment + expose: + - 9010:9010 + image: rucknar/prometheus-rancher-exporter:01 diff --git a/templates/Prometheus/0/rancher-compose.yml b/templates/Prometheus/0/rancher-compose.yml new file mode 100644 index 0000000..04a5025 --- /dev/null +++ b/templates/Prometheus/0/rancher-compose.yml @@ -0,0 +1,63 @@ +.catalog: + name: "Prometheus" + version: "1.0.2" + description: "Prometheus Monitoring Solution" + uuid: prometheus-1 + minimum_rancher_version: v0.56.0 + questions: + +ranch-eye: + upgrade_strategy: + start_first: true + +node-exporter: + upgrade_strategy: + start_first: true + +prometheus: + upgrade_strategy: + start_first: true + scale: 1 + health_check: + port: 9090 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 + +influxdb: + upgrade_strategy: + start_first: true + scale: 1 + health_check: + port: 8086 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 + +grafana: + upgrade_strategy: + start_first: true + scale: 1 + health_check: + port: 3000 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 + +rancher-api-integration: + upgrade_strategy: + start_first: true + scale: 1 + health_check: + port: 9010 + interval: 5000 + unhealthy_threshold: 3 + request_line: '' + healthy_threshold: 2 + response_timeout: 5000 diff --git a/templates/Prometheus/catalogIcon-prometheus.svg b/templates/Prometheus/catalogIcon-prometheus.svg new file mode 100644 index 0000000..5d6da8f --- /dev/null +++ b/templates/Prometheus/catalogIcon-prometheus.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/templates/Prometheus/config.yml b/templates/Prometheus/config.yml new file mode 100644 index 0000000..94a0411 --- /dev/null +++ b/templates/Prometheus/config.yml @@ -0,0 +1,5 @@ +name: Prometheus +description: | + Prometheus and friends, auto-discovering monitoring solution for Rancher deployments. +version: 1.0.2 +category: Monitoring