Prometheus - Система мониторинга и оповещения с открытым исходным кодом.

Docker Compose

services: prometheus: image: prom/prometheus:latest container_name: monitoring_prometheus restart: unless-stopped volumes: - ./data/prometheus/config:/etc/prometheus/ - ./data/prometheus/data:/prometheus command: - '-config.file=/etc/prometheus/prometheus.yml' - '-storage.local.path=/prometheus' - '-alertmanager.url=http://alertmanager:9093' expose: - 9090 ports: - 9090:9090 links: - cadvisor:cadvisor - node-exporter:node-exporter node-exporter: image: prom/node-exporter:latest container_name: monitoring_node_exporter restart: unless-stopped expose: - 9100
services: grafana: image: grafana/grafana:latest container_name: monitoring_grafana restart: unless-stopped links: - prometheus:prometheus volumes: - ./data/grafana:/var/lib/grafana environment: - GF_SECURITY_ADMIN_PASSWORD=MYPASSWORT - GF_USERS_ALLOW_SIGN_UP=false - GF_SERVER_DOMAIN=myrul.com - GF_SMTP_ENABLED=true - GF_SMTP_HOST=smtp.gmail.com:587 - GF_SMTP_USER=myadrress@gmail.com - GF_SMTP_PASSWORD=mypassword - GF_SMTP_FROM_ADDRESS=myaddress@gmail.com

prometheus.yml

# my global config
global:
scrape_interval: 120s # By default, scrape targets every 15 seconds.
evaluation_interval: 120s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'my-project'
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
# - "alert.rules"
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 120s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090','cadvisor:8080','node-exporter:9100', 'nginx-exporter:9113']