This Genesis Kit deploys a production-ready Prometheus monitoring system, including Prometheus, Grafana, and AlertManager components on a single VM for a smaller footprint. It's designed to monitor BOSH deployments and services like Cloud Foundry.
The Prometheus Genesis Kit uses the Prometheus BOSH Release to deploy a comprehensive monitoring solution with the following components:
- Prometheus - Time series database and monitoring system
- Grafana - Visualization and dashboarding platform
- AlertManager - Alert handling and routing system
By default, this kit deploys all components on a single VM for ease of management and reduced footprint. As your monitoring needs grow, you may need to scale out to increase I/O throughput. For optimal performance, use SSD-backed storage for the persistent disk pool in your Cloud Config.
This kit creates a single-VM deployment with these colocated components:
- Prometheus server for metrics collection and storage
- Grafana for metrics visualization
- AlertManager for alert management
- BOSH Exporter for collecting BOSH metrics
- Nginx for secure access to dashboards
Each component is exposed via HTTPS with basic authentication. The kit configures proper integration between all components, with Grafana pre-configured to connect to Prometheus and loaded with useful dashboards.
- Genesis 2.7.10 or higher
- BOSH Director with UAA
- Node Exporter should be deployed as a BOSH addon to collect system metrics from all VMs
- For monitoring Cloud Foundry: A CF deployment created with cf-genesis-kit v1.1.0 or higher
- For monitoring BOSH: A BOSH director deployed with bosh-genesis-kit v1.1.2 or higher
To use this kit, you don't even need to clone this repository! Just run the following (using Genesis v2):
# Create a prometheus-deployments repo using the latest version of the prometheus kit
genesis init --kit prometheus
# Create a prometheus-deployments repo using v1.0.0 of the prometheus kit
genesis init --kit prometheus/1.0.0
# Create a my-prometheus-configs repo using the latest version of the prometheus kit
genesis init --kit prometheus -d my-prometheus-configsOnce created, refer to the deployment repository README for information on provisioning and deploying new environments.
self-signed-certs- Generate and use self-signed certificates for the deploymentprovided-cert- Use your own provided SSL certificates (from Vault)
monitor-cf- Connect to Cloud Foundry Firehose to monitor CF application metricsmonitor-cf-v2- Connect to Cloud Foundry v2 using Loggregator APIlegacy-firehose- Use the legacy firehose API for CF deployments (use withmonitor-cf)monitor-credhub- Monitor CredHub metrics and health
ocfp- OpenStack/Stackit compatibility layer for Open Container Framework Platform deployments
This Genesis Kit supports deployment to multiple infrastructure providers:
- AWS - Amazon Web Services
- GCP - Google Cloud Platform
- Azure - Microsoft Azure
- vSphere - VMware vSphere
- OpenStack - OpenStack platforms
- Stackit - Stackit IaaS (based on OpenStack)
For IaaS-specific deployment instructions, see the corresponding documentation in the docs/ directory.
After initializing your deployment repository, create an environment file for your target deployment. For example, my-prometheus.yml:
---
kit:
name: prometheus
version: latest
features:
- self-signed-cert
- monitor-cf
params:
static_ip: 10.0.0.20
external_domain: prometheus.example.comThen deploy with:
genesis deploy my-prometheusAccess the various UIs:
# Open Prometheus UI
genesis do my-prometheus -- open prometheus
# Open Grafana UI
genesis do my-prometheus -- open grafana
# Open AlertManager UI
genesis do my-prometheus -- open alertmanagerGenerate a runtime config for node exporter:
genesis do my-prometheus -- runtime-config > runtime-config.yml
bosh update-runtime-config runtime-config.ymlCheck deployment status:
genesis check my-prometheusFor more detailed examples, please refer to the examples/ directory:
examples/basic.yml- Simple Prometheus deploymentexamples/monitor-cf.yml- Prometheus with Cloud Foundry monitoringexamples/monitor-credhub.yml- Prometheus with CredHub monitoringexamples/stackit-example.yml- Example for Stackit IaaS deployments
- MANUAL.md - Detailed information on features, parameters, and configuration
- docs/ - Additional documentation for specific use cases and IaaS providers
- Prometheus Documentation
- Grafana Documentation
For common issues and solutions, please refer to the docs/troubleshooting.md document.
This Genesis Kit is released under the MIT license.