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",
|
"backup_timestamp": "2026-02-04T02:02:47.020515",
|
||||||
"total_keys": 1292,
|
"total_keys": 1316,
|
||||||
"successful_backups": 1287,
|
"successful_backups": 1311,
|
||||||
"failed_backups": 5,
|
"failed_backups": 5,
|
||||||
"consul_address": "http://consul.service.dc1.consul:8500"
|
"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,44 +1,49 @@
|
|||||||
|
---
|
||||||
global:
|
global:
|
||||||
scrape_interval: 15s
|
scrape_interval: 15s
|
||||||
evaluation_interval: 15s
|
evaluation_interval: 15s
|
||||||
scrape_timeout: 12s
|
scrape_timeout: 12s
|
||||||
external_labels:
|
external_labels:
|
||||||
monitor: 'example'
|
monitor: example
|
||||||
rule_files:
|
rule_files:
|
||||||
- "alerts.yml"
|
- alerts.yml
|
||||||
alerting:
|
alerting:
|
||||||
alertmanagers:
|
alertmanagers:
|
||||||
- scheme: http
|
- scheme: http
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
- "alertmanager.service.dc1.consul:9093"
|
- alertmanager.service.dc1.consul:9093
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
- job_name: postgres-job
|
- job_name: postgres-job
|
||||||
metrics_path: /metrics
|
metrics_path: /metrics
|
||||||
scheme: http
|
scheme: http
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['postgres.service.dc1.consul:8008']
|
- targets:
|
||||||
|
- postgres.service.dc1.consul:8008
|
||||||
- job_name: minio-job
|
- job_name: minio-job
|
||||||
metrics_path: /minio/v2/metrics/cluster
|
metrics_path: /minio/v2/metrics/cluster
|
||||||
scheme: http
|
scheme: http
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['minio.service.dc1.consul:9000']
|
- targets:
|
||||||
- job_name: 'traefik'
|
- minio.service.dc1.consul:9000
|
||||||
|
- job_name: traefik
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
- 'traefik.service.dc1.consul:80'
|
- traefik.service.dc1.consul:80
|
||||||
- job_name: 'consulservices'
|
- job_name: consulservices
|
||||||
consul_sd_configs:
|
consul_sd_configs:
|
||||||
- server: 'consul.service.dc1.consul:8500'
|
- server: consul.service.dc1.consul:8500
|
||||||
services:
|
services:
|
||||||
- cadvisor
|
- cadvisor
|
||||||
relabel_configs:
|
relabel_configs:
|
||||||
- source_labels: [__meta_consul_service]
|
- source_labels:
|
||||||
|
- __meta_consul_service
|
||||||
target_label: job
|
target_label: job
|
||||||
- source_labels: [__meta_consul_node]
|
- source_labels:
|
||||||
|
- __meta_consul_node
|
||||||
regex: (.+)
|
regex: (.+)
|
||||||
target_label: node
|
target_label: node
|
||||||
replacement: '${1}'
|
replacement: ${1}
|
||||||
- job_name: nomad_metrics
|
- job_name: nomad_metrics
|
||||||
params:
|
params:
|
||||||
format:
|
format:
|
||||||
@@ -47,28 +52,31 @@ scrape_configs:
|
|||||||
scrape_timeout: 10s
|
scrape_timeout: 10s
|
||||||
metrics_path: /v1/metrics
|
metrics_path: /v1/metrics
|
||||||
consul_sd_configs:
|
consul_sd_configs:
|
||||||
- server: 'consul.service.dc1.consul:8500'
|
- server: consul.service.dc1.consul:8500
|
||||||
datacenter: 'dc1'
|
datacenter: dc1
|
||||||
tag_separator: ','
|
tag_separator: ","
|
||||||
scheme: http
|
scheme: http
|
||||||
services:
|
services:
|
||||||
- nomad-client
|
- nomad-client
|
||||||
relabel_configs:
|
relabel_configs:
|
||||||
- source_labels: [__meta_consul_tags]
|
- source_labels:
|
||||||
|
- __meta_consul_tags
|
||||||
separator: ;
|
separator: ;
|
||||||
regex: (.*)http(.*)
|
regex: (.*)http(.*)
|
||||||
replacement: $1
|
replacement: $1
|
||||||
action: keep
|
action: keep
|
||||||
- source_labels: [__meta_consul_address]
|
- source_labels:
|
||||||
|
- __meta_consul_address
|
||||||
separator: ;
|
separator: ;
|
||||||
regex: (.*)
|
regex: (.*)
|
||||||
target_label: __meta_consul_service_address
|
target_label: __meta_consul_service_address
|
||||||
replacement: $1
|
replacement: $1
|
||||||
action: replace
|
action: replace
|
||||||
- source_labels: [__meta_consul_node]
|
- source_labels:
|
||||||
|
- __meta_consul_node
|
||||||
regex: (.+)
|
regex: (.+)
|
||||||
target_label: node
|
target_label: node
|
||||||
replacement: '${1}'
|
replacement: ${1}
|
||||||
- job_name: node_exporter
|
- job_name: node_exporter
|
||||||
params:
|
params:
|
||||||
format:
|
format:
|
||||||
@@ -77,14 +85,35 @@ scrape_configs:
|
|||||||
scrape_timeout: 10s
|
scrape_timeout: 10s
|
||||||
metrics_path: /metrics
|
metrics_path: /metrics
|
||||||
consul_sd_configs:
|
consul_sd_configs:
|
||||||
- server: 'consul.service.dc1.consul:8500'
|
- server: consul.service.dc1.consul:8500
|
||||||
datacenter: 'dc1'
|
datacenter: dc1
|
||||||
tag_separator: ','
|
tag_separator: ","
|
||||||
scheme: http
|
scheme: http
|
||||||
services:
|
services:
|
||||||
- node-exporter
|
- node-exporter
|
||||||
relabel_configs:
|
relabel_configs:
|
||||||
- source_labels: [__meta_consul_node]
|
- source_labels:
|
||||||
|
- __meta_consul_node
|
||||||
regex: (.+)
|
regex: (.+)
|
||||||
target_label: node
|
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"
|
type = "system"
|
||||||
|
|
||||||
group "nodes" {
|
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" {
|
task "juicefs-plugin" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
image = "juicedata/juicefs-csi-driver:v0.31.1"
|
image = "juicedata/juicefs-csi-driver:v0.31.1"
|
||||||
memory_hard_limit = 2048
|
memory_hard_limit = 2048
|
||||||
|
ports = ["metrics"]
|
||||||
args = [
|
args = [
|
||||||
"--endpoint=unix://csi/csi.sock",
|
"--endpoint=unix://csi/csi.sock",
|
||||||
"--logtostderr",
|
"--logtostderr",
|
||||||
"--v=5",
|
"--v=5",
|
||||||
"--nodeid=test",
|
"--nodeid=${node.unique.name}", # Better than hardcoded "test"
|
||||||
"--by-process=true",
|
"--by-process=true",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -24,6 +45,7 @@ job "jfs-node" {
|
|||||||
id = "juicefs0"
|
id = "juicefs0"
|
||||||
type = "node"
|
type = "node"
|
||||||
mount_dir = "/csi"
|
mount_dir = "/csi"
|
||||||
|
health_timeout = "3m"
|
||||||
}
|
}
|
||||||
resources {
|
resources {
|
||||||
cpu = 100
|
cpu = 100
|
||||||
@@ -31,7 +53,11 @@ job "jfs-node" {
|
|||||||
}
|
}
|
||||||
env {
|
env {
|
||||||
POD_NAME = "csi-node"
|
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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,13 +18,15 @@ job "navidrome" {
|
|||||||
access_mode = "multi-node-multi-writer"
|
access_mode = "multi-node-multi-writer"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Main Navidrome task
|
# Main Navidrome task
|
||||||
task "navidrome" {
|
task "navidrome" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
|
|
||||||
volume_mount {
|
volume_mount {
|
||||||
volume = "navidrome-csi-vol" # Matches the name in the volume block above
|
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
|
read_only = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,16 +39,19 @@ job "navidrome" {
|
|||||||
"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro",
|
"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro",
|
||||||
"/mnt/Public/Downloads/news/slskd/downloads:/music/slskd:ro",
|
"/mnt/Public/Downloads/news/slskd/downloads:/music/slskd:ro",
|
||||||
"/mnt/Public/Downloads/incoming_music:/music/incomingmusic: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 {
|
env {
|
||||||
|
ND_DATAFOLDER = "/db"
|
||||||
|
ND_CACHEFOLDER = "/data/cache"
|
||||||
ND_SCANSCHEDULE = "32 8-20 * * *"
|
ND_SCANSCHEDULE = "32 8-20 * * *"
|
||||||
ND_LOGLEVEL = "debug"
|
ND_LOGLEVEL = "debug"
|
||||||
ND_REVERSEPROXYWHITELIST = "0.0.0.0/0"
|
ND_REVERSEPROXYWHITELIST = "0.0.0.0/0"
|
||||||
ND_REVERSEPROXYUSERHEADER = "X-Forwarded-User"
|
ND_REVERSEPROXYUSERHEADER = "X-Forwarded-User"
|
||||||
ND_SCANNER_GROUPALBUMRELEASES = "False"
|
ND_SCANNER_GROUPALBUMRELEASES = "False"
|
||||||
ND_BACKUP_PATH = "/data"
|
ND_BACKUP_PATH = "/data/backups"
|
||||||
ND_BACKUP_SCHEDULE = "0 0 * * *"
|
ND_BACKUP_SCHEDULE = "0 0 * * *"
|
||||||
ND_BACKUP_COUNT = "7"
|
ND_BACKUP_COUNT = "7"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user