Inital Commit - Prometheus + Grafana

This commit is contained in:
2022-02-28 20:49:01 +02:00
commit b875c663c9
6 changed files with 1259 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*
!docker-compose.yml

20
config/alertmanager.yml Normal file
View File

@@ -0,0 +1,20 @@
global:
resolve_timeout: 5m
route:
group_by: ['Alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 24h
receiver: 'email'
receivers:
- name: 'email'
email_configs:
- to: 'matanhorovitz@protonmail.com'
from: 'pukekoxyz@yahoo.com'
smarthost: smtp.mail.yahoo.com:587
auth_username: 'pukekoxyz@yahoo.com'
auth_identity: 'pukekoxyz@yahoo.com'
auth_password: 'pvefngmuhcxunzqs'
require_tls: yes
send_resolved: true

14
config/alerts.yml Executable file
View File

@@ -0,0 +1,14 @@
groups:
- name: Uptime
rules:
- alert: InstanceDown
expr: up{job="services"} < 1
for: 5m
- name: Usage
rules:
- alert: HighRootFSDiskUsage
expr: 100 - ((node_filesystem_avail_bytes{mountpoint="/",fstype!="rootfs"} * 100) / node_filesystem_size_bytes{mountpoint="/",fstype!="rootfs"}) > 80
for: 1m
- alert: HighRedVolDiskUsage
expr: 100 - ((node_filesystem_avail_bytes{mountpoint="/Red-Vol",fstype!="rootfs"} * 100) / node_filesystem_size_bytes{mountpoint="/Red-Vol",fstype!="rootfs"}) > 70
for: 1m

23
config/prometheus.yml Executable file
View File

@@ -0,0 +1,23 @@
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: ['alertmanager:9093']
rule_files:
- alerts.yml
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['prometheus:9090']
- job_name: takahe
static_configs:
- targets: ['192.168.0.66:9100']
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets:
- cadvisor:8080

89
docker-compose.yml Executable file
View File

@@ -0,0 +1,89 @@
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- 9090:9090
command:
- --config.file=/etc/prometheus/prometheus.yml
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- ./config/alerts.yml:/etc/prometheus/alerts.yml
depends_on:
- cadvisor
restart: unless-stopped
networks:
- network
- internal
labels:
- "traefik.enable=true"
- "traefik.docker.network=prometheus_network"
- "traefik.http.routers.prometheus.entrypoints=websecure"
- "traefik.http.routers.prometheus.rule=Host(`monitor.pukeko.xyz`)"
- "traefik.http.routers.prometheus.tls.certresolver=pukekoresolver"
- "traefik.http.routers.prometheus.middlewares=authelia@docker"
alertmanager:
container_name: alertmanager
image: prom/alertmanager
volumes:
- ./config/alerts.yml:/etc/prometheus/alerts.yml
- ./config/alertmanager.yml:/etc/prometheus/alertmanager.yml
ports:
- '9093:9093'
restart: unless-stopped
networks:
- internal
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- 1010:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
depends_on:
- redis
restart: unless-stopped
networks:
- internal
redis:
image: redis:alpine
container_name: redis
ports:
- 6379:6379
restart: unless-stopped
networks:
- internal
grafana:
container_name: grafana
image: grafana/grafana
depends_on:
- prometheus
ports:
- '1000:3000'
volumes:
- './grafana/data:/var/lib/grafana'
- './grafana/provisioning/:/etc/grafana/provisioning/'
- './grafana/config/:/etc/grafana/'
restart: unless-stopped
user: '1000'
networks:
- network
- internal
labels:
- "traefik.enable=true"
- "traefik.docker.network=prometheus_network"
- "traefik.http.routers.grafana.entrypoints=websecure"
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
- "traefik.http.routers.grafana.rule=Host(`flight.pukeko.xyz`)"
- "traefik.http.routers.grafana.tls.certresolver=pukekoresolver"
- "traefik.http.routers.grafana.middlewares=authelia@docker"
networks:
network:
driver: bridge
internal:
driver: bridge

1111
grafana/config/grafana.ini Normal file

File diff suppressed because it is too large Load Diff