Skip to content

Instantly share code, notes, and snippets.

@hinunbi
Last active April 25, 2022 06:13
Show Gist options
  • Save hinunbi/7efd77affeb09b9947bff2fd29806f87 to your computer and use it in GitHub Desktop.
Save hinunbi/7efd77affeb09b9947bff2fd29806f87 to your computer and use it in GitHub Desktop.
Prometheus and Grafana Docker Compose
version: '3'
services:
prometheus:
image: prom/prometheus:v2.35.0
container_name: prometheus
command:
- '--web.listen-address=0.0.0.0:9099'
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=168h'
- '--web.enable-lifecycle'
volumes:
- ./data/prometheus/etc/prometheus:/etc/prometheus
- ./data/prometheus:/prometheus
ports:
- 9099:9099
networks:
- monitoring-network
grafana:
container_name: grafana
image: grafana/grafana:8.5.0
environment:
- GF_SECURITY_ADMIN_USER=cat
- GF_SECURITY_ADMIN_PASSWORD=meow
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- ./data/grafana/etc/grafana/provisioning:/etc/grafana/provisioning
- ./data/grafana/etc/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- ./data/grafana/etc/grafana/provisioning/plugins:/etc/grafana/provisioning/plugins
- ./data/grafana/etc/grafana/provisioning/notifiers:/etc/grafana/provisioning/notifiers
- ./data/grafana/etc/grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./data/grafana/var/lib/grafana:/var/lib/grafana
ports:
- 3000:3000
depends_on:
- prometheus
networks:
- monitoring-network
networks:
monitoring-network:
process_names:
- name: "{{.Comm}}"
cmdline:
- '.+'
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- job_name: 'node monitoring'
static_configs:
- targets: ['monitoring:9100']
- targets: ['monitoring:9256']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment