changes from main branch
This commit is contained in:
parent
285ffffb3a
commit
5e4859a5c4
|
|
@ -8,7 +8,7 @@ services:
|
|||
env_file: .env
|
||||
volumes:
|
||||
- ./domains.txt:/etc/email-worker/domains.txt:ro
|
||||
- worker-logs:/var/log/email-worker
|
||||
- ./logs:/var/log/email-worker
|
||||
ports:
|
||||
- "9000:8000" # Prometheus metrics (Host:Container)
|
||||
- "9090:8080" # Health check (Host:Container)
|
||||
|
|
|
|||
|
|
@ -104,13 +104,26 @@ function ensureFileStream(): WriteStream | null {
|
|||
const logger = pino({
|
||||
level: 'info',
|
||||
transport: {
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
|
||||
ignore: 'pid,hostname',
|
||||
singleLine: true
|
||||
}
|
||||
targets: [
|
||||
{
|
||||
// 1. Schicke bunte Logs in die Konsole (für docker compose logs -f)
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
|
||||
ignore: 'pid,hostname',
|
||||
singleLine: true
|
||||
}
|
||||
},
|
||||
{
|
||||
// 2. Schreibe gleichzeitig alles unformatiert in die Datei
|
||||
target: 'pino/file',
|
||||
options: {
|
||||
destination: '/var/log/email-worker/worker.log',
|
||||
mkdir: true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
container_name: prometheus
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||
- prometheus_data:/prometheus
|
||||
ports:
|
||||
- "9091:9090"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway" # Damit er deinen Worker findet
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
container_name: grafana
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- grafana_data:/var/lib/grafana
|
||||
ports:
|
||||
- "4000:3000"
|
||||
depends_on:
|
||||
- prometheus
|
||||
|
||||
blackbox_exporter:
|
||||
image: prom/blackbox-exporter:latest
|
||||
container_name: blackbox_exporter
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9115:9115"
|
||||
extra_hosts: # <-- Diese Zeile neu
|
||||
- "host.docker.internal:host-gateway" # <-- Diese Zeile neu
|
||||
|
||||
volumes:
|
||||
prometheus_data:
|
||||
grafana_data:
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
global:
|
||||
scrape_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
# 1. Scraping deines Node.js Email-Workers
|
||||
- job_name: 'email-worker'
|
||||
static_configs:
|
||||
- targets: ['host.docker.internal:9000']
|
||||
|
||||
# 2. Port-Überwachung deines Mailservers (IMAP 993 & POP3 995)
|
||||
- job_name: 'mailserver_ports'
|
||||
metrics_path: /probe
|
||||
params:
|
||||
module: [tcp_connect] # Prüft nur, ob der TCP-Port offen ist
|
||||
static_configs:
|
||||
- targets:
|
||||
- host.docker.internal:993 # IMAPS
|
||||
- host.docker.internal:995 # POP3S
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_target
|
||||
- source_labels: [__param_target]
|
||||
target_label: instance
|
||||
- target_label: __address__
|
||||
replacement: blackbox_exporter:9115 # Der Exporter führt den Check aus
|
||||
Loading…
Reference in New Issue