chore: backup infrastructure configurations [skip ci]
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T02:09:51.079977+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T03:09:53.741728+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T04:09:56.562342+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T05:09:59.213873+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T06:10:01.845015+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T07:10:04.543038+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T08:10:07.580253+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T09:10:10.298969+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T10:10:13.232000+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T11:10:15.763273+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T12:10:18.667264+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T13:10:21.280654+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T14:10:23.939881+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T15:10:26.897752+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T16:10:29.871920+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T17:10:32.431617+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T18:10:35.379904+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T19:10:38.282565+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T20:10:40.848017+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T21:10:43.381412+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T22:10:45.955712+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-03T23:10:48.626834+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-04T00:10:51.821010+00:00"}
|
||||
@@ -0,0 +1 @@
|
||||
{"sync_type": "weight_sync", "status": "partial", "message": "Synced 0 records, 1 failed", "records_processed": 0, "timestamp": "2026-02-04T01:10:55.199088+00:00"}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"backup_timestamp": "2026-02-03T02:02:34.837596",
|
||||
"total_keys": 1292,
|
||||
"successful_backups": 1287,
|
||||
"backup_timestamp": "2026-02-04T02:02:47.020515",
|
||||
"total_keys": 1316,
|
||||
"successful_backups": 1311,
|
||||
"failed_backups": 5,
|
||||
"consul_address": "http://consul.service.dc1.consul:8500"
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"conn_url":"postgres://192.168.4.227:5432/postgres","api_url":"http://192.168.4.227:8008/patroni","state":"running","role":"replica","version":"4.0.4","xlog_location":683034885072,"replication_state":"streaming","timeline":248}
|
||||
{"conn_url":"postgres://192.168.4.227:5432/postgres","api_url":"http://192.168.4.227:8008/patroni","state":"running","role":"replica","version":"4.0.4","xlog_location":685234337264,"replication_state":"streaming","timeline":248}
|
||||
@@ -1 +1 @@
|
||||
{"conn_url":"postgres://192.168.4.228:5432/postgres","api_url":"http://192.168.4.228:8008/patroni","state":"running","role":"primary","version":"4.0.4","xlog_location":683034885824,"timeline":248}
|
||||
{"conn_url":"postgres://192.168.4.228:5432/postgres","api_url":"http://192.168.4.228:8008/patroni","state":"running","role":"primary","version":"4.0.4","xlog_location":685234320552,"timeline":248}
|
||||
@@ -1 +1 @@
|
||||
{"conn_url":"postgres://192.168.4.36:5432/postgres","api_url":"http://192.168.4.36:8008/patroni","state":"running","role":"replica","version":"4.0.4","xlog_location":683034970016,"replication_state":"streaming","timeline":248}
|
||||
{"conn_url":"postgres://192.168.4.36:5432/postgres","api_url":"http://192.168.4.36:8008/patroni","state":"running","role":"replica","version":"4.0.4","xlog_location":685234180872,"replication_state":"streaming","timeline":248}
|
||||
@@ -1 +1 @@
|
||||
{"optime":683034885824,"slots":{"pg_odroid7":683034885824,"pg_opti1":683034885824,"pg_odroid8":683034885824},"retain_slots":["pg_odroid7","pg_odroid8","pg_opti1"]}
|
||||
{"optime":685234320552,"slots":{"pg_odroid7":685234320552,"pg_opti1":685234320552,"pg_odroid8":685234320552},"retain_slots":["pg_odroid7","pg_odroid8","pg_opti1"]}
|
||||
@@ -1,90 +1,119 @@
|
||||
---
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
scrape_timeout: 12s
|
||||
external_labels:
|
||||
monitor: 'example'
|
||||
monitor: example
|
||||
rule_files:
|
||||
- "alerts.yml"
|
||||
- alerts.yml
|
||||
alerting:
|
||||
alertmanagers:
|
||||
- scheme: http
|
||||
static_configs:
|
||||
- targets:
|
||||
- "alertmanager.service.dc1.consul:9093"
|
||||
- scheme: http
|
||||
static_configs:
|
||||
- targets:
|
||||
- alertmanager.service.dc1.consul:9093
|
||||
scrape_configs:
|
||||
- job_name: postgres-job
|
||||
metrics_path: /metrics
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: ['postgres.service.dc1.consul:8008']
|
||||
- targets:
|
||||
- postgres.service.dc1.consul:8008
|
||||
- job_name: minio-job
|
||||
metrics_path: /minio/v2/metrics/cluster
|
||||
scheme: http
|
||||
static_configs:
|
||||
- targets: ['minio.service.dc1.consul:9000']
|
||||
- job_name: 'traefik'
|
||||
- targets:
|
||||
- minio.service.dc1.consul:9000
|
||||
- job_name: traefik
|
||||
static_configs:
|
||||
- targets:
|
||||
- 'traefik.service.dc1.consul:80'
|
||||
- job_name: 'consulservices'
|
||||
- traefik.service.dc1.consul:80
|
||||
- job_name: consulservices
|
||||
consul_sd_configs:
|
||||
- server: 'consul.service.dc1.consul:8500'
|
||||
- server: consul.service.dc1.consul:8500
|
||||
services:
|
||||
- cadvisor
|
||||
- cadvisor
|
||||
relabel_configs:
|
||||
- source_labels: [__meta_consul_service]
|
||||
- source_labels:
|
||||
- __meta_consul_service
|
||||
target_label: job
|
||||
- source_labels: [__meta_consul_node]
|
||||
- source_labels:
|
||||
- __meta_consul_node
|
||||
regex: (.+)
|
||||
target_label: node
|
||||
replacement: '${1}'
|
||||
target_label: node
|
||||
replacement: ${1}
|
||||
- job_name: nomad_metrics
|
||||
params:
|
||||
format:
|
||||
- prometheus
|
||||
- prometheus
|
||||
scrape_interval: 10s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /v1/metrics
|
||||
consul_sd_configs:
|
||||
- server: 'consul.service.dc1.consul:8500'
|
||||
datacenter: 'dc1'
|
||||
tag_separator: ','
|
||||
- server: consul.service.dc1.consul:8500
|
||||
datacenter: dc1
|
||||
tag_separator: ","
|
||||
scheme: http
|
||||
services:
|
||||
- nomad-client
|
||||
- nomad-client
|
||||
relabel_configs:
|
||||
- source_labels: [__meta_consul_tags]
|
||||
- source_labels:
|
||||
- __meta_consul_tags
|
||||
separator: ;
|
||||
regex: (.*)http(.*)
|
||||
replacement: $1
|
||||
action: keep
|
||||
- source_labels: [__meta_consul_address]
|
||||
- source_labels:
|
||||
- __meta_consul_address
|
||||
separator: ;
|
||||
regex: (.*)
|
||||
target_label: __meta_consul_service_address
|
||||
replacement: $1
|
||||
action: replace
|
||||
- source_labels: [__meta_consul_node]
|
||||
- source_labels:
|
||||
- __meta_consul_node
|
||||
regex: (.+)
|
||||
target_label: node
|
||||
replacement: '${1}'
|
||||
target_label: node
|
||||
replacement: ${1}
|
||||
- job_name: node_exporter
|
||||
params:
|
||||
format:
|
||||
- prometheus
|
||||
- prometheus
|
||||
scrape_interval: 10s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
consul_sd_configs:
|
||||
- server: 'consul.service.dc1.consul:8500'
|
||||
datacenter: 'dc1'
|
||||
tag_separator: ','
|
||||
- server: consul.service.dc1.consul:8500
|
||||
datacenter: dc1
|
||||
tag_separator: ","
|
||||
scheme: http
|
||||
services:
|
||||
- node-exporter
|
||||
- node-exporter
|
||||
relabel_configs:
|
||||
- source_labels: [__meta_consul_node]
|
||||
- source_labels:
|
||||
- __meta_consul_node
|
||||
regex: (.+)
|
||||
target_label: node
|
||||
replacement: '${1}'
|
||||
replacement: ${1}
|
||||
- job_name: juicefs_csi
|
||||
params:
|
||||
format:
|
||||
- prometheus
|
||||
scrape_interval: 10s
|
||||
scrape_timeout: 10s
|
||||
metrics_path: /metrics
|
||||
consul_sd_configs:
|
||||
- server: consul.service.dc1.consul:8500
|
||||
datacenter: dc1
|
||||
tag_separator: ","
|
||||
scheme: http
|
||||
services:
|
||||
- juicefs-metrics
|
||||
relabel_configs:
|
||||
- source_labels:
|
||||
- __meta_consul_node
|
||||
regex: (.+)
|
||||
target_label: node
|
||||
replacement: ${1}
|
||||
@@ -3,17 +3,38 @@ job "jfs-node" {
|
||||
type = "system"
|
||||
|
||||
group "nodes" {
|
||||
network {
|
||||
port "metrics" {
|
||||
static = 9567
|
||||
to = 8080
|
||||
}
|
||||
}
|
||||
|
||||
# Add this inside your "juicefs-plugin" task in jfs-node.nomad
|
||||
service {
|
||||
name = "juicefs-metrics"
|
||||
port = "metrics" # References the static port 9567 defined in your network block
|
||||
tags = ["prometheus"]
|
||||
check {
|
||||
type = "http"
|
||||
path = "/metrics"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
}
|
||||
|
||||
task "juicefs-plugin" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "juicedata/juicefs-csi-driver:v0.31.1"
|
||||
memory_hard_limit = 2048
|
||||
ports = ["metrics"]
|
||||
args = [
|
||||
"--endpoint=unix://csi/csi.sock",
|
||||
"--logtostderr",
|
||||
"--v=5",
|
||||
"--nodeid=test",
|
||||
"--nodeid=${node.unique.name}", # Better than hardcoded "test"
|
||||
"--by-process=true",
|
||||
]
|
||||
|
||||
@@ -24,6 +45,7 @@ job "jfs-node" {
|
||||
id = "juicefs0"
|
||||
type = "node"
|
||||
mount_dir = "/csi"
|
||||
health_timeout = "3m"
|
||||
}
|
||||
resources {
|
||||
cpu = 100
|
||||
@@ -31,7 +53,11 @@ job "jfs-node" {
|
||||
}
|
||||
env {
|
||||
POD_NAME = "csi-node"
|
||||
AWS_REGION = "garage"
|
||||
AWS_REGION = "garage"
|
||||
# Aggregates metrics from children onto the 8080 port
|
||||
JFS_METRICS = "0.0.0.0:8080"
|
||||
# Ensures mounts run as background processes managed by the driver
|
||||
JFS_MOUNT_MODE = "process"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@ job "navidrome" {
|
||||
source = "navidrome-volume" # This must match the 'id' in your volume registration
|
||||
attachment_mode = "file-system"
|
||||
access_mode = "multi-node-multi-writer"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Main Navidrome task
|
||||
task "navidrome" {
|
||||
@@ -24,7 +26,7 @@ job "navidrome" {
|
||||
|
||||
volume_mount {
|
||||
volume = "navidrome-csi-vol" # Matches the name in the volume block above
|
||||
destination = "/data" # Where it appears inside the container
|
||||
destination = "/db" # Where it appears inside the container
|
||||
read_only = false
|
||||
}
|
||||
|
||||
@@ -37,16 +39,19 @@ job "navidrome" {
|
||||
"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro",
|
||||
"/mnt/Public/Downloads/news/slskd/downloads:/music/slskd:ro",
|
||||
"/mnt/Public/Downloads/incoming_music:/music/incomingmusic:ro",
|
||||
#"/mnt/configs/navidrome:/data"
|
||||
"/mnt/Public/configs/navidrome/cache:/data/cache",
|
||||
"/mnt/Public/configs/navidrome/backups:/data/backups"
|
||||
]
|
||||
}
|
||||
env {
|
||||
ND_DATAFOLDER = "/db"
|
||||
ND_CACHEFOLDER = "/data/cache"
|
||||
ND_SCANSCHEDULE = "32 8-20 * * *"
|
||||
ND_LOGLEVEL = "debug"
|
||||
ND_REVERSEPROXYWHITELIST = "0.0.0.0/0"
|
||||
ND_REVERSEPROXYUSERHEADER = "X-Forwarded-User"
|
||||
ND_SCANNER_GROUPALBUMRELEASES = "False"
|
||||
ND_BACKUP_PATH = "/data"
|
||||
ND_BACKUP_PATH = "/data/backups"
|
||||
ND_BACKUP_SCHEDULE = "0 0 * * *"
|
||||
ND_BACKUP_COUNT = "7"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user