Inital Commit - Prometheus + Grafana
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!docker-compose.yml
|
||||||
20
config/alertmanager.yml
Normal file
20
config/alertmanager.yml
Normal 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
14
config/alerts.yml
Executable 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
23
config/prometheus.yml
Executable 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
89
docker-compose.yml
Executable 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
1111
grafana/config/grafana.ini
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user