Initial commit, adding Prometheus to rancher community catalog

This commit is contained in:
Edward Marshall
2016-02-25 20:09:23 +00:00
parent bc07f1db46
commit 1876b1e8a6
5 changed files with 185 additions and 0 deletions
+25
View File
@@ -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/
+86
View File
@@ -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
@@ -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