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