changes from main branch
This commit is contained in:
parent
285ffffb3a
commit
5e4859a5c4
|
|
@ -8,7 +8,7 @@ services:
|
||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./domains.txt:/etc/email-worker/domains.txt:ro
|
- ./domains.txt:/etc/email-worker/domains.txt:ro
|
||||||
- worker-logs:/var/log/email-worker
|
- ./logs:/var/log/email-worker
|
||||||
ports:
|
ports:
|
||||||
- "9000:8000" # Prometheus metrics (Host:Container)
|
- "9000:8000" # Prometheus metrics (Host:Container)
|
||||||
- "9090:8080" # Health check (Host:Container)
|
- "9090:8080" # Health check (Host:Container)
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,9 @@ function ensureFileStream(): WriteStream | null {
|
||||||
const logger = pino({
|
const logger = pino({
|
||||||
level: 'info',
|
level: 'info',
|
||||||
transport: {
|
transport: {
|
||||||
|
targets: [
|
||||||
|
{
|
||||||
|
// 1. Schicke bunte Logs in die Konsole (für docker compose logs -f)
|
||||||
target: 'pino-pretty',
|
target: 'pino-pretty',
|
||||||
options: {
|
options: {
|
||||||
colorize: true,
|
colorize: true,
|
||||||
|
|
@ -111,6 +114,16 @@ const logger = pino({
|
||||||
ignore: 'pid,hostname',
|
ignore: 'pid,hostname',
|
||||||
singleLine: true
|
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