Compare commits

..

21 Commits

Author SHA1 Message Date
f4a6be714b 👌 IMPROVE: Update Hetzner DNS mapping and targets configuration by renaming instances, removing obsolete entries, and adding new targets for enhanced monitoring 2025-08-04 16:58:50 +02:00
ddfdb91401 👌 IMPROVE: Add heartbeat targets configuration for Prometheus monitoring and save to new JSON file 2025-08-04 16:58:39 +02:00
7f9f7b1aa4 👌 IMPROVE: Add new health exporter targets configuration and update Prometheus to include the new health exporter job 2025-05-23 09:30:33 +00:00
945cae3908 👌 IMPROVE: Update Hetzner configuration files and scripts to include new targets, enhance health check metrics, and organize file paths for better maintainability 2025-05-22 10:28:08 +00:00
61d056dcab 👌 IMPROVE: Enhance Loki configuration with additional server settings and limits configuration 2025-05-19 11:13:48 +00:00
011aa2d613 👌 IMPROVE: Update Loki service configuration to expand environment variables and fix healthcheck URL 2025-05-19 11:13:31 +00:00
cab9ccf1af 👌 IMPROVE: Update Hetzner DNS mapping and targets with new instances and IP addresses 2025-05-19 10:18:31 +00:00
50a4670c53 👌 IMPROVE: Refactor Grafana environment variables for consistency and add resource limits for Loki service 2025-05-19 10:18:18 +00:00
38a2439b98 👌 IMPROVE: Fix Prometheus reload URL to use the correct port 2025-05-19 10:18:03 +00:00
43ba5e60b7 👌 IMPROVE: Add additional metrics endpoint for Hetzner server targets in configuration 2025-05-13 14:21:38 +00:00
89519ef1f3 👌 IMPROVE: Update Hetzner server targets in discovery script to include additional metrics endpoint 2025-05-13 14:18:19 +00:00
938eaf2f5f 📦 NEW: Add Loki service and configuration to Docker Compose setup 2025-05-13 10:58:37 +00:00
84db17fa0e 👌 IMPROVE: Update Prometheus and Grafana images, enhance Hetzner DNS mapping, and add Prometheus reload functionality 2025-05-13 10:58:11 +00:00
ebac8ff7e5 👌 IMPROVE: 2025-01-30 14:47:40 +00:00
ebf1ab5985 📦 NEW: DEV-871 Add Hetzner Plugin to Grafana monitor all Server Dynamic 2025-01-30 13:01:50 +00:00
a4d9888bfe 👌 IMPROVE: New Targets 2024-07-28 12:42:08 +00:00
eefc954946 👌 IMPROVE: TLS Connections 2024-07-23 15:43:08 +00:00
ba02008e7c 🐛 FIX: yml 2024-07-23 14:27:01 +00:00
3212a09b69 👌 IMPROVE: Add Grafana Domain 2024-07-23 13:21:13 +00:00
3fe621ecb9 📖 DOC: new ignores 2024-07-23 10:47:59 +00:00
231540b0fc 👌 IMPROVE: Grafana SMTP environments 2024-07-23 10:47:09 +00:00
22 changed files with 2102 additions and 291 deletions

10
.gitignore vendored
View File

@@ -1 +1,11 @@
./https_portal/log ./https_portal/log
logs
database
databaseOLD
volumes
redis
e2e
https_portal/log
https_portal/data
assets
.env

6
Dockerfile.prometheus Normal file
View File

@@ -0,0 +1,6 @@
FROM docker.io/prom/prometheus:v3.1.0
# Set the proper permissions for certificates
RUN if [ -f ./https_portal/data/prometheus.phx-erp.de/production/signed.crt ]; then chmod 644 ./https_portal/data/prometheus.phx-erp.de/production/signed.crt; fi && \
if [ -f ./https_portal/data/prometheus.phx-erp.de/production/domain.key ]; then chmod 600 ./https_portal/data/prometheus.phx-erp.de/production/domain.key; fi
CMD ["prometheus", "--config.file=/etc/prometheus/prometheus.yaml", "--web.config.file=/etc/prometheus/web-config.yaml", "--web.external-url=https://prometheus.phx-erp.de"]

View File

@@ -0,0 +1,12 @@
[
{
"targets": [
"https://alpha.phx-erp.de"
],
"labels": {
"job": "blackbox-dynamic",
"instance": "Alpha",
"probe": "http"
}
}
]

View File

@@ -0,0 +1,186 @@
[
{
"dns_name": "PHX-DEV-001.Alpha",
"ip_address": "157.90.161.42"
},
{
"dns_name": "ANSIBLE-MASTER",
"ip_address": "167.235.254.4"
},
{
"dns_name": "cts",
"ip_address": "116.203.75.215"
},
{
"dns_name": "Phx-Yuri",
"ip_address": "162.55.52.253"
},
{
"dns_name": "benzinger-demo",
"ip_address": "162.55.54.75"
},
{
"dns_name": "phx-internal",
"ip_address": "5.75.183.139"
},
{
"dns_name": "trachtenmode-schmid",
"ip_address": "142.132.165.231"
},
{
"dns_name": "phx-beta",
"ip_address": "159.69.200.205"
},
{
"dns_name": "lhl",
"ip_address": "116.203.53.137"
},
{
"dns_name": "Grafana-Prometheus",
"ip_address": "5.75.153.161"
},
{
"dns_name": "cooper",
"ip_address": "159.69.44.39"
},
{
"dns_name": "shipxpert",
"ip_address": "49.13.165.13"
},
{
"dns_name": "sartissohn",
"ip_address": "188.245.44.219"
},
{
"dns_name": "guntli",
"ip_address": "116.203.92.218"
},
{
"dns_name": "kolb",
"ip_address": "94.130.77.57"
},
{
"dns_name": "ried",
"ip_address": "116.203.151.20"
},
{
"dns_name": "heba",
"ip_address": "116.203.68.120"
},
{
"dns_name": "eicsoft",
"ip_address": "116.203.128.69"
},
{
"dns_name": "ck-vechta",
"ip_address": "159.69.93.252"
},
{
"dns_name": "eeparts",
"ip_address": "116.203.46.171"
},
{
"dns_name": "big-break-changes",
"ip_address": "167.235.130.242"
},
{
"dns_name": "PHX-License-Server",
"ip_address": "188.245.32.214"
},
{
"dns_name": "PHX-SkyNodus",
"ip_address": "138.199.201.35"
},
{
"dns_name": "bode",
"ip_address": "188.245.108.133"
},
{
"dns_name": "skr04",
"ip_address": "168.119.174.181"
},
{
"dns_name": "artwin",
"ip_address": "91.99.24.53"
},
{
"dns_name": "amplid",
"ip_address": "168.119.231.96"
},
{
"dns_name": "schwarz",
"ip_address": "116.203.143.63"
},
{
"dns_name": "skr03",
"ip_address": "91.99.53.67"
},
{
"dns_name": "moonich",
"ip_address": "91.99.52.253"
},
{
"dns_name": "comp-sys",
"ip_address": "91.99.76.156"
},
{
"dns_name": "skr-ch",
"ip_address": "78.46.214.224"
},
{
"dns_name": "wsoft",
"ip_address": "116.203.18.156"
},
{
"dns_name": "bzp",
"ip_address": "91.99.71.224"
},
{
"dns_name": "dss",
"ip_address": "49.13.197.152"
},
{
"dns_name": "modern",
"ip_address": "157.90.228.52"
},
{
"dns_name": "burg-itc",
"ip_address": "23.88.56.89"
},
{
"dns_name": "capricorn-it",
"ip_address": "91.99.109.3"
},
{
"dns_name": "kundw",
"ip_address": "91.99.140.34"
},
{
"dns_name": "dieweingoetter",
"ip_address": "128.140.33.105"
},
{
"dns_name": "Rustdesk-Relay-Server",
"ip_address": "94.130.108.153"
},
{
"dns_name": "rihnet",
"ip_address": "91.99.226.250"
},
{
"dns_name": "infoplus",
"ip_address": "49.13.205.27"
},
{
"dns_name": "ai-it",
"ip_address": "195.201.31.160"
},
{
"dns_name": "guder",
"ip_address": "91.99.143.88"
},
{
"dns_name": "testRedisHeathCheck",
"ip_address": "91.107.235.238"
}
]

View File

@@ -0,0 +1,14 @@
[
{
"server_id": 41663080,
"name": "teamcity",
"datacenter": "nbg1",
"reason": "Darklisted server"
},
{
"server_id": 41739626,
"name": "gitea",
"datacenter": "nbg1",
"reason": "Darklisted server"
}
]

View File

@@ -0,0 +1,416 @@
[
{
"targets": [
"157.90.161.42:9091"
],
"labels": {
"instance": "PHX-DEV-001.Alpha",
"job": "heartbeat"
}
},
{
"targets": [
"167.235.254.4:9091"
],
"labels": {
"instance": "ANSIBLE-MASTER",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.75.215:9091"
],
"labels": {
"instance": "cts",
"job": "heartbeat"
}
},
{
"targets": [
"162.55.52.253:9091"
],
"labels": {
"instance": "Phx-Yuri",
"job": "heartbeat"
}
},
{
"targets": [
"162.55.54.75:9091"
],
"labels": {
"instance": "benzinger-demo",
"job": "heartbeat"
}
},
{
"targets": [
"5.75.183.139:9091"
],
"labels": {
"instance": "phx-internal",
"job": "heartbeat"
}
},
{
"targets": [
"142.132.165.231:9091"
],
"labels": {
"instance": "trachtenmode-schmid",
"job": "heartbeat"
}
},
{
"targets": [
"159.69.200.205:9091"
],
"labels": {
"instance": "phx-beta",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.53.137:9091"
],
"labels": {
"instance": "lhl",
"job": "heartbeat"
}
},
{
"targets": [
"5.75.153.161:9091"
],
"labels": {
"instance": "Grafana-Prometheus",
"job": "heartbeat"
}
},
{
"targets": [
"159.69.44.39:9091"
],
"labels": {
"instance": "cooper",
"job": "heartbeat"
}
},
{
"targets": [
"49.13.165.13:9091"
],
"labels": {
"instance": "shipxpert",
"job": "heartbeat"
}
},
{
"targets": [
"188.245.44.219:9091"
],
"labels": {
"instance": "sartissohn",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.92.218:9091"
],
"labels": {
"instance": "guntli",
"job": "heartbeat"
}
},
{
"targets": [
"94.130.77.57:9091"
],
"labels": {
"instance": "kolb",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.151.20:9091"
],
"labels": {
"instance": "ried",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.68.120:9091"
],
"labels": {
"instance": "heba",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.128.69:9091"
],
"labels": {
"instance": "eicsoft",
"job": "heartbeat"
}
},
{
"targets": [
"159.69.93.252:9091"
],
"labels": {
"instance": "ck-vechta",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.46.171:9091"
],
"labels": {
"instance": "eeparts",
"job": "heartbeat"
}
},
{
"targets": [
"167.235.130.242:9091"
],
"labels": {
"instance": "big-break-changes",
"job": "heartbeat"
}
},
{
"targets": [
"188.245.32.214:9091"
],
"labels": {
"instance": "PHX-License-Server",
"job": "heartbeat"
}
},
{
"targets": [
"138.199.201.35:9091"
],
"labels": {
"instance": "PHX-SkyNodus",
"job": "heartbeat"
}
},
{
"targets": [
"188.245.108.133:9091"
],
"labels": {
"instance": "bode",
"job": "heartbeat"
}
},
{
"targets": [
"168.119.174.181:9091"
],
"labels": {
"instance": "skr04",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.24.53:9091"
],
"labels": {
"instance": "artwin",
"job": "heartbeat"
}
},
{
"targets": [
"168.119.231.96:9091"
],
"labels": {
"instance": "amplid",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.143.63:9091"
],
"labels": {
"instance": "schwarz",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.53.67:9091"
],
"labels": {
"instance": "skr03",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.52.253:9091"
],
"labels": {
"instance": "moonich",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.76.156:9091"
],
"labels": {
"instance": "comp-sys",
"job": "heartbeat"
}
},
{
"targets": [
"78.46.214.224:9091"
],
"labels": {
"instance": "skr-ch",
"job": "heartbeat"
}
},
{
"targets": [
"116.203.18.156:9091"
],
"labels": {
"instance": "wsoft",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.71.224:9091"
],
"labels": {
"instance": "bzp",
"job": "heartbeat"
}
},
{
"targets": [
"49.13.197.152:9091"
],
"labels": {
"instance": "dss",
"job": "heartbeat"
}
},
{
"targets": [
"157.90.228.52:9091"
],
"labels": {
"instance": "modern",
"job": "heartbeat"
}
},
{
"targets": [
"23.88.56.89:9091"
],
"labels": {
"instance": "burg-itc",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.109.3:9091"
],
"labels": {
"instance": "capricorn-it",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.140.34:9091"
],
"labels": {
"instance": "kundw",
"job": "heartbeat"
}
},
{
"targets": [
"128.140.33.105:9091"
],
"labels": {
"instance": "dieweingoetter",
"job": "heartbeat"
}
},
{
"targets": [
"94.130.108.153:9091"
],
"labels": {
"instance": "Rustdesk-Relay-Server",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.226.250:9091"
],
"labels": {
"instance": "rihnet",
"job": "heartbeat"
}
},
{
"targets": [
"49.13.205.27:9091"
],
"labels": {
"instance": "infoplus",
"job": "heartbeat"
}
},
{
"targets": [
"195.201.31.160:9091"
],
"labels": {
"instance": "ai-it",
"job": "heartbeat"
}
},
{
"targets": [
"91.99.143.88:9091"
],
"labels": {
"instance": "guder",
"job": "heartbeat"
}
},
{
"targets": [
"91.107.235.238:9091"
],
"labels": {
"instance": "testRedisHeathCheck",
"job": "heartbeat"
}
}
]

462
config/hetzner_targets.json Normal file
View File

@@ -0,0 +1,462 @@
[
{
"targets": [
"157.90.161.42:9100",
"157.90.161.42:9113"
],
"labels": {
"instance": "PHX-DEV-001.Alpha",
"datacenter": "nbg1"
}
},
{
"targets": [
"167.235.254.4:9100",
"167.235.254.4:9113"
],
"labels": {
"instance": "ANSIBLE-MASTER",
"datacenter": "fsn1"
}
},
{
"targets": [
"116.203.75.215:9100",
"116.203.75.215:9113"
],
"labels": {
"instance": "cts",
"datacenter": "nbg1"
}
},
{
"targets": [
"162.55.52.253:9100",
"162.55.52.253:9113"
],
"labels": {
"instance": "Phx-Yuri",
"datacenter": "nbg1"
}
},
{
"targets": [
"162.55.54.75:9100",
"162.55.54.75:9113"
],
"labels": {
"instance": "benzinger-demo",
"datacenter": "nbg1"
}
},
{
"targets": [
"5.75.183.139:9100",
"5.75.183.139:9113"
],
"labels": {
"instance": "phx-internal",
"datacenter": "nbg1"
}
},
{
"targets": [
"142.132.165.231:9100",
"142.132.165.231:9113"
],
"labels": {
"instance": "trachtenmode-schmid",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.200.205:9100",
"159.69.200.205:9113"
],
"labels": {
"instance": "phx-beta",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.53.137:9100",
"116.203.53.137:9113"
],
"labels": {
"instance": "lhl",
"datacenter": "nbg1"
}
},
{
"targets": [
"5.75.153.161:9100",
"5.75.153.161:9113"
],
"labels": {
"instance": "Grafana-Prometheus",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.44.39:9100",
"159.69.44.39:9113"
],
"labels": {
"instance": "cooper",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.165.13:9100",
"49.13.165.13:9113"
],
"labels": {
"instance": "shipxpert",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.44.219:9100",
"188.245.44.219:9113"
],
"labels": {
"instance": "sartissohn",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.92.218:9100",
"116.203.92.218:9113"
],
"labels": {
"instance": "guntli",
"datacenter": "nbg1"
}
},
{
"targets": [
"94.130.77.57:9100",
"94.130.77.57:9113"
],
"labels": {
"instance": "kolb",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.151.20:9100",
"116.203.151.20:9113"
],
"labels": {
"instance": "ried",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.68.120:9100",
"116.203.68.120:9113"
],
"labels": {
"instance": "heba",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.128.69:9100",
"116.203.128.69:9113"
],
"labels": {
"instance": "eicsoft",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.93.252:9100",
"159.69.93.252:9113"
],
"labels": {
"instance": "ck-vechta",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.46.171:9100",
"116.203.46.171:9113"
],
"labels": {
"instance": "eeparts",
"datacenter": "nbg1"
}
},
{
"targets": [
"167.235.130.242:9100",
"167.235.130.242:9113"
],
"labels": {
"instance": "big-break-changes",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.32.214:9100",
"188.245.32.214:9113"
],
"labels": {
"instance": "PHX-License-Server",
"datacenter": "nbg1"
}
},
{
"targets": [
"138.199.201.35:9100",
"138.199.201.35:9113"
],
"labels": {
"instance": "PHX-SkyNodus",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.108.133:9100",
"188.245.108.133:9113"
],
"labels": {
"instance": "bode",
"datacenter": "nbg1"
}
},
{
"targets": [
"168.119.174.181:9100",
"168.119.174.181:9113"
],
"labels": {
"instance": "skr04",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.24.53:9100",
"91.99.24.53:9113"
],
"labels": {
"instance": "artwin",
"datacenter": "nbg1"
}
},
{
"targets": [
"168.119.231.96:9100",
"168.119.231.96:9113"
],
"labels": {
"instance": "amplid",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.143.63:9100",
"116.203.143.63:9113"
],
"labels": {
"instance": "schwarz",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.53.67:9100",
"91.99.53.67:9113"
],
"labels": {
"instance": "skr03",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.52.253:9100",
"91.99.52.253:9113"
],
"labels": {
"instance": "moonich",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.76.156:9100",
"91.99.76.156:9113"
],
"labels": {
"instance": "comp-sys",
"datacenter": "nbg1"
}
},
{
"targets": [
"78.46.214.224:9100",
"78.46.214.224:9113"
],
"labels": {
"instance": "skr-ch",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.18.156:9100",
"116.203.18.156:9113"
],
"labels": {
"instance": "wsoft",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.71.224:9100",
"91.99.71.224:9113"
],
"labels": {
"instance": "bzp",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.197.152:9100",
"49.13.197.152:9113"
],
"labels": {
"instance": "dss",
"datacenter": "nbg1"
}
},
{
"targets": [
"157.90.228.52:9100",
"157.90.228.52:9113"
],
"labels": {
"instance": "modern",
"datacenter": "nbg1"
}
},
{
"targets": [
"23.88.56.89:9100",
"23.88.56.89:9113"
],
"labels": {
"instance": "burg-itc",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.109.3:9100",
"91.99.109.3:9113"
],
"labels": {
"instance": "capricorn-it",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.140.34:9100",
"91.99.140.34:9113"
],
"labels": {
"instance": "kundw",
"datacenter": "nbg1"
}
},
{
"targets": [
"128.140.33.105:9100",
"128.140.33.105:9113"
],
"labels": {
"instance": "dieweingoetter",
"datacenter": "nbg1"
}
},
{
"targets": [
"94.130.108.153:9100",
"94.130.108.153:9113"
],
"labels": {
"instance": "Rustdesk-Relay-Server",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.226.250:9100",
"91.99.226.250:9113"
],
"labels": {
"instance": "rihnet",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.205.27:9100",
"49.13.205.27:9113"
],
"labels": {
"instance": "infoplus",
"datacenter": "nbg1"
}
},
{
"targets": [
"195.201.31.160:9100",
"195.201.31.160:9113"
],
"labels": {
"instance": "ai-it",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.143.88:9100",
"91.99.143.88:9113"
],
"labels": {
"instance": "guder",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.107.235.238:9100",
"91.107.235.238:9113"
],
"labels": {
"instance": "testRedisHeathCheck",
"datacenter": "nbg1"
}
}
]

49
config/loki-config.yaml Normal file
View File

@@ -0,0 +1,49 @@
auth_enabled: false
server:
http_listen_port: 3100
http_server_read_timeout: 1m
http_server_write_timeout: 1m
grpc_listen_port: 9095
log_level: info
log_format: logfmt
common:
instance_addr: 127.0.0.1
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory # ✅ Use inmemory for single-node setups
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
ingestion_rate_mb: 10
ingestion_burst_size_mb: 20
max_query_parallelism: 8
max_query_lookback: 168h
schema_config:
configs:
- from: 2020-10-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
table_manager:
retention_deletes_enabled: true
retention_period: 168h
ruler:
alertmanager_url: http://localhost:9093
rule_path: /loki/rules
enable_alertmanager_v2: true
enable_api: true

View File

@@ -0,0 +1,416 @@
[
{
"targets": [
"157.90.161.42:9800"
],
"labels": {
"instance": "PHX-DEV-001.Alpha-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"167.235.254.4:9800"
],
"labels": {
"instance": "ANSIBLE-MASTER-health-exporter",
"datacenter": "fsn1"
}
},
{
"targets": [
"116.203.75.215:9800"
],
"labels": {
"instance": "cts-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"162.55.52.253:9800"
],
"labels": {
"instance": "Phx-Yuri-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"162.55.54.75:9800"
],
"labels": {
"instance": "benzinger-demo-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"5.75.183.139:9800"
],
"labels": {
"instance": "phx-internal-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"142.132.165.231:9800"
],
"labels": {
"instance": "trachtenmode-schmid-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.200.205:9800"
],
"labels": {
"instance": "phx-beta-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.53.137:9800"
],
"labels": {
"instance": "lhl-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"5.75.153.161:9800"
],
"labels": {
"instance": "Grafana-Prometheus-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.44.39:9800"
],
"labels": {
"instance": "cooper-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.165.13:9800"
],
"labels": {
"instance": "shipxpert-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.44.219:9800"
],
"labels": {
"instance": "sartissohn-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.92.218:9800"
],
"labels": {
"instance": "guntli-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"94.130.77.57:9800"
],
"labels": {
"instance": "kolb-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.151.20:9800"
],
"labels": {
"instance": "ried-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.68.120:9800"
],
"labels": {
"instance": "heba-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.128.69:9800"
],
"labels": {
"instance": "eicsoft-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"159.69.93.252:9800"
],
"labels": {
"instance": "ck-vechta-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.46.171:9800"
],
"labels": {
"instance": "eeparts-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"167.235.130.242:9800"
],
"labels": {
"instance": "big-break-changes-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.32.214:9800"
],
"labels": {
"instance": "PHX-License-Server-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"138.199.201.35:9800"
],
"labels": {
"instance": "PHX-SkyNodus-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"188.245.108.133:9800"
],
"labels": {
"instance": "bode-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"168.119.174.181:9800"
],
"labels": {
"instance": "skr04-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.24.53:9800"
],
"labels": {
"instance": "artwin-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"168.119.231.96:9800"
],
"labels": {
"instance": "amplid-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.143.63:9800"
],
"labels": {
"instance": "schwarz-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.53.67:9800"
],
"labels": {
"instance": "skr03-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.52.253:9800"
],
"labels": {
"instance": "moonich-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.76.156:9800"
],
"labels": {
"instance": "comp-sys-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"78.46.214.224:9800"
],
"labels": {
"instance": "skr-ch-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"116.203.18.156:9800"
],
"labels": {
"instance": "wsoft-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.71.224:9800"
],
"labels": {
"instance": "bzp-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.197.152:9800"
],
"labels": {
"instance": "dss-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"157.90.228.52:9800"
],
"labels": {
"instance": "modern-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"23.88.56.89:9800"
],
"labels": {
"instance": "burg-itc-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.109.3:9800"
],
"labels": {
"instance": "capricorn-it-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.140.34:9800"
],
"labels": {
"instance": "kundw-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"128.140.33.105:9800"
],
"labels": {
"instance": "dieweingoetter-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"94.130.108.153:9800"
],
"labels": {
"instance": "Rustdesk-Relay-Server-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.226.250:9800"
],
"labels": {
"instance": "rihnet-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"49.13.205.27:9800"
],
"labels": {
"instance": "infoplus-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"195.201.31.160:9800"
],
"labels": {
"instance": "ai-it-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.99.143.88:9800"
],
"labels": {
"instance": "guder-health-exporter",
"datacenter": "nbg1"
}
},
{
"targets": [
"91.107.235.238:9800"
],
"labels": {
"instance": "testRedisHeathCheck-health-exporter",
"datacenter": "nbg1"
}
}
]

View File

@@ -0,0 +1 @@
[]

View File

@@ -0,0 +1 @@
[]

View File

@@ -1,80 +1,43 @@
global: global:
scrape_interval: 15s # By default, scrape targets every 15 seconds. scrape_interval: 15s # ⏱️ Default interval Prometheus uses to scrape metrics from all targets, unless overridden in specific jobs.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
# external_labels:
# monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs: scrape_configs:
- job_name: "Prometheus Server" # Existing Hetzner Dynamic Configuration
scrape_interval: 5s - job_name: "hetzner-dynamic" # 🏷️ Logical name for the scrape job (used in metrics as job="hetzner-dynamic").
static_configs: file_sd_configs: # 📂 Enable file-based service discovery. Prometheus will look at files to dynamically load targets.
- targets: ["5.75.153.161:9090"] - files:
- "/opt/phx/main/config/hetzner_targets.json" # 📁 JSON file containing the list of targets (e.g. IPs, ports, labels).
refresh_interval: 30s # 🔁 How often Prometheus checks the file for changes and updates the target list.
scrape_interval: 5s # ⏱️ Override global default: scrape metrics from each target in this job every x seconds.
scheme: http # 🌐 Use plain HTTP when scraping the targets (not HTTPS).
- job_name: 'node' - job_name: "phoenix-health-exporter"
scrape_interval: 5s file_sd_configs:
static_configs: - files:
- targets: ['5.75.153.161:9100'] - "/opt/phx/main/config/phoenix_health_exporter_hetzner_targets.json"
refresh_interval: 30s
scrape_interval: 2m # Change it carefully, it is a heavy job to keep open and close to check the health of DB connection, there annotation to refactor it and use a new pgDebounce image.
scheme: http
- job_name: "Phx Yuri" - job_name: "heartbeat"
scrape_interval: 5s file_sd_configs:
static_configs: - files:
- targets: ["162.55.52.253:9100"] - "/opt/phx/main/config/hetzner_heartbeat_targets.json"
refresh_interval: 30s
honor_labels: true
- job_name: "lhl" # - job_name: "phoenix-system"
scrape_interval: 5s # file_sd_configs:
static_configs: # - files:
- targets: ["116.203.53.137:9100"] # - "/opt/phx/main/config/phoenix_system_hetzner_targets.json"
# refresh_interval: 30s
- job_name: "Phx Beta RC"
scrape_interval: 5s
static_configs:
- targets: ["116.203.53.137:9100"]
- job_name: "Gitea"
scrape_interval: 5s
static_configs:
- targets: ["49.13.146.138:9100"]
- job_name: "Team City"
scrape_interval: 5s
static_configs:
- targets: ["23.88.107.109:9100"]
# - job_name: "Ambio"
# scrape_interval: 5s # scrape_interval: 5s
# static_configs: # scheme: http
# - targets: ["116.203.28.202:9100"]
- job_name: "Trachtenmode Schmid" # - job_name: "phoenix-worker"
scrape_interval: 5s # file_sd_configs:
static_configs: # - files:
- targets: ["142.132.165.231:9100"] # - "/opt/phx/main/config/phoenix_worker_hetzner_targets.json"
# refresh_interval: 30s
- job_name: "Phx Internal" # scrape_interval: 5s
scrape_interval: 5s # scheme: http
static_configs:
- targets: ["5.75.183.139:9100"]
- job_name: "Benzinger Demo"
scrape_interval: 5s
static_configs:
- targets: ["162.55.54.75:9100"]
- job_name: "CTS"
scrape_interval: 5s
static_configs:
- targets: ["116.203.75.215:9100"]
- job_name: "Ansible Master"
scrape_interval: 5s
static_configs:
- targets: ["167.235.254.4:9100"]
- job_name: "Alpha"
scrape_interval: 5s
static_configs:
- targets: ["157.90.161.42:9100"]

3
config/web-config.yaml Normal file
View File

@@ -0,0 +1,3 @@
tls_server_config:
cert_file: /etc/prometheus/certs/signed.crt
key_file: /etc/prometheus/certs/domain.key

View File

@@ -4,59 +4,90 @@ volumes:
driver: local driver: local
prometheus-data: prometheus-data:
driver: local driver: local
data_loki:
driver: local
networks: networks:
default: grafana-prometheus:
external: external: true
name: grafana-prometheus
services: services:
grafana: grafana:
image: docker.io/grafana/grafana-oss:10.4.2 image: docker.io/grafana/grafana-oss:12.0.0
container_name: grafana container_name: grafana
environment: environment:
- GF_SECURITY_ADMIN_PASSWORD=admin GF_PATHS_PROVISIONING: /var/lib/grafana/provisioning/
- GF_LOG_LEVEL=debug GF_SECURITY_ADMIN_PASSWORD: admin
ports: # - GF_SERVER_DOMAIN=%(protocol)s://%(domain)s:%(http_port)s/
- "3000:3000" # - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/
GF_SERVER_DOMAIN: grafana.phx-erp.de
GF_SERVER_PROTOCOL: https
# - GF_SERVER_HTTP_PORT=3000
GF_LOG_LEVEL: debug
GF_SMTP_ENABLED: true
GF_SMTP_FROM_ADDRESS: admin@phx-erp.de
GF_SMTP_FROM_NAME: Grafana
GF_SMTP_HOST: mail.phx-erp.de:465
GF_SMTP_PASSWORD: 0rB0@et68
GF_SMTP_USER: yuri.lima@phx-erp.de
GF_SMTP_STARTTLS_POLICY: false
GF_SMTP_SKIP_VERIFY: true
GF_SMTP_ENABLE_TRACING: false
volumes: volumes:
- grafana-data:/var/lib/grafana - grafana-data:/var/lib/grafana
- ./config/provisioning:/var/lib/grafana/provisioning/
restart: unless-stopped restart: unless-stopped
networks: networks:
- default - grafana-prometheus
depends_on:
- prometheus
prometheus: prometheus:
image: docker.io/prom/prometheus:v2.51.2 image: docker.io/prom/prometheus:v3.1.0
container_name: prometheus container_name: prometheus
ports: user: "65534:65534"
- 9090:9090 # ports:
command: "--config.file=/etc/prometheus/prometheus.yaml" # - "9090:9090"
command:
- "--config.file=/etc/prometheus/prometheus.yaml"
- "--web.config.file=/etc/prometheus/web-config.yaml"
- "--web.external-url=https://prometheus.phx-erp.de"
- "--web.enable-lifecycle" # 🔹 Enable dynamic config reload
volumes: volumes:
# - '--web.enable-lifecycle' # Enable reload of configuration automatically without restart !!! # - '--web.enable-lifecycle' # Enable reload of configuration automatically without restart !!!
- ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro # RO Read-only - ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro # RO Read-only
- ./config/web-config.yaml:/etc/prometheus/web-config.yaml:ro # RO Read-only
- ./https_portal/data/prometheus.phx-erp.de/production:/etc/prometheus/certs
- ./config:/opt/phx/main/config # 🔹 Add this to mount the config folder
- prometheus-data:/prometheus - prometheus-data:/prometheus
- ./https_portal/data/prometheus.phx-erp.de/production/signed.crt:/etc/prometheus/certs/signed.crt:ro
- ./https_portal/data/prometheus.phx-erp.de/production/domain.key:/etc/prometheus/certs/domain.key:ro
restart: unless-stopped restart: unless-stopped
networks: networks:
- default - grafana-prometheus
node_exporter: loki:
image: quay.io/prometheus/node-exporter:latest container_name: loki
container_name: node_exporter image: docker.io/grafana/loki:3.5.0
network_mode: host
pid: host
restart: unless-stopped
command: command:
- "--path.procfs=/host/proc" - "-config.file=/etc/loki/config.yaml" # Tells Grafana Loki to start with the config file.
- "--path.sysfs=/host/sys" - "-config.expand-env=true"
- "--path.rootfs=/host" ports:
- "--collector.filesystem.ignored-mount-points=^/(sys|proc|dev)($$|/)" - "3100:3100"
volumes: volumes:
- "/proc:/host/proc:ro" - ./config/loki-config.yaml:/etc/loki/config.yaml:ro
- "/sys:/host/sys:ro" - data_loki:/loki:rw
- "/:/host:ro,rslave" networks:
- grafana-prometheus
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://loki:3100/ready"]
interval: 10s # check every 10 seconds
timeout: 5s # wait max 5 seconds per check
retries: 5 # mark as unhealthy after 5 failures
start_period: 20s # wait 20s after container starts before first check
https_portal: https_portal:
container_name: https_portal container_name: https_portal
image: "steveltn/https-portal:1.21" image: "steveltn/https-portal:1.21"
restart: unless-stopped restart: always
user: "root"
networks: networks:
- default - grafana-prometheus
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"
@@ -67,7 +98,17 @@ services:
RENEW_MARGIN_DAYS: 30 RENEW_MARGIN_DAYS: 30
CLIENT_MAX_BODY_SIZE: 0 CLIENT_MAX_BODY_SIZE: 0
# FORCE_RENEW: 'true' # FORCE_RENEW: 'true'
DOMAINS: 'grafana.phx-erp.de -> 5.75.153.161:3000, prometheus.phx-erp.de -> 5.75.153.161:9090' DOMAINS: 'grafana.phx-erp.de -> https://grafana:3000, prometheus.phx-erp.de -> https://prometheus:9090'
# loki-logs.phx-erp.de -> http://localhost:3100
volumes: volumes:
- ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs - ./https_portal/data:/var/lib/https-portal # ssl_certs, vhost.d, htdocs
- ./https_portal/log:/var/log/nginx # nginx logs - ./https_portal/log:/var/log/nginx # nginx logs
depends_on:
- prometheus
- grafana
- loki
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M

231
hetzner_discovery.py Normal file
View File

@@ -0,0 +1,231 @@
import requests
import json
import os
import time
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# 🔑 Load Hetzner API Token & Prometheus URL
HETZNER_API_TOKEN = os.getenv("HETZNER_API_TOKEN")
# https://prometheus.io/docs/prometheus/latest/configuration/configuration/
PROMETHEUS_RELOAD_URL = os.getenv("PROMETHEUS_RELOAD_URL", "https://prometheus.phx-erp.de/-/reload")
# Check if token is loaded
if not HETZNER_API_TOKEN:
raise ValueError("❌ HETZNER_API_TOKEN is missing! Make sure it's set in the .env file.")
# 📂 Paths to output files
# PROMETHEUS_TARGETS_FILE = "/opt/phx/main/config/hetzner_targets.json"
# ERROR_LOG_FILE = "/opt/phx/main/config/hetzner_error_servers.json"
# EXCLUDED_SERVERS_FILE = "/opt/phx/main/config/hetzner_excluded_servers.json"
# DNS_MAPPING_FILE = "/opt/phx/main/config/hetzner_dns_mapping.json"
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
HEARTBEAT_TARGETS_FILE = os.path.join(BASE_DIR, "config/hetzner_heartbeat_targets.json")
PROMETHEUS_TARGETS_FILE = os.path.join(BASE_DIR, "config/hetzner_targets.json")
PHX_SYSTEM_FILE = os.path.join(BASE_DIR, "config/phoenix_system_hetzner_targets.json")
PHX_WORKER_FILE = os.path.join(BASE_DIR, "config/phoenix_worker_hetzner_targets.json")
PHX_HEALTH_EXPORTER_FILE = os.path.join(BASE_DIR, "config/phoenix_health_exporter_hetzner_targets.json")
DNS_MAPPING_FILE = os.path.join(BASE_DIR, "config/hetzner_dns_mapping.json")
ERROR_LOG_FILE = os.path.join(BASE_DIR, "config/hetzner_error_servers.json")
EXCLUDED_SERVERS_FILE = os.path.join(BASE_DIR, "config/hetzner_excluded_servers.json")
# 📌 Hetzner API URL
HETZNER_API_URL = os.getenv("HETZNER_API_URL")
# Check if API URL is loaded
if not HETZNER_API_URL:
raise ValueError("❌ HETZNER_API_URL is missing! Make sure it's set in the .env file.")
# 🛑 List of server names to exclude (DARKLIST)
DARKLISTED_SERVERS = ["docuvita", "teamcity", "gitea"]
# 📡 Fetch Hetzner server list with pagination support and Rate Limiting handling
def get_hetzner_servers():
headers = {"Authorization": f"Bearer {HETZNER_API_TOKEN}"}
all_servers = []
page = 1
per_page = 50 # Max per request
while True:
response = requests.get(
f"{HETZNER_API_URL}?page={page}&per_page={per_page}", headers=headers
)
# Handle Rate Limiting (429 Too Many Requests)
if response.status_code == 429:
reset_time = int(response.headers.get("RateLimit-Reset", time.time() + 60))
wait_time = reset_time - int(time.time())
print(f"⏳ Rate limit exceeded! Waiting {wait_time} seconds until reset...")
time.sleep(wait_time)
continue # Retry after waiting
if response.status_code != 200:
print(f"❌ Error fetching servers: {response.text}")
break # Stop fetching if error
# Read rate limit headers
remaining = response.headers.get("RateLimit-Remaining", "unknown")
reset_time = int(response.headers.get("RateLimit-Reset", time.time() + 60))
print(f"📊 API Rate Limit: {remaining} requests remaining. Next reset at {reset_time}.")
data = response.json()
servers = data.get("servers", [])
all_servers.extend(servers)
# Check if there's a next page
pagination = data.get("meta", {}).get("pagination", {})
if not pagination.get("next_page"):
break # Exit if no more pages
page = pagination["next_page"] # Move to the next page
return all_servers
# 🏗️ Generate Prometheus JSON file and DNS Mapping
def generate_prometheus_sd_config():
servers = get_hetzner_servers()
targets = []
phx_system_targets = []
phx_worker_targets = []
phx_health_exporter_targets = []
error_servers = []
excluded_servers = []
dns_mappings = [] # New list for storing DNS-IP mappings
heartbeat_targets = []
for server in servers:
ipv4 = server.get("public_net", {}).get("ipv4", {}).get("ip")
server_name = server["name"]
datacenter = server["datacenter"]["location"]["name"]
if server_name in DARKLISTED_SERVERS:
excluded_servers.append({
"server_id": server["id"],
"name": server_name,
"datacenter": datacenter,
"reason": "Darklisted server"
})
continue # Skip adding to Prometheus targets
if ipv4:
# Add to DNS mapping file
targets.append({
"targets": [f"{ipv4}:9100", f"{ipv4}:9113"],
"labels": {
"instance": server_name,
"datacenter": datacenter
}
})
# This is with Python Flask server for health checks
phx_health_exporter_targets.append({
"targets": [f"{ipv4}:9800"],
"labels": {
"instance": f"{server_name}-health-exporter",
"datacenter": datacenter
}
})
# Add Pushgateway heartbeat endpoint (default Pushgateway port is 9091)
heartbeat_targets.append({
"targets": [f"{ipv4}:9091"], # assuming Pushgateway is running on each server
"labels": {
"instance": server_name,
"job": "heartbeat"
}
})
# Phoenix System metrics (port 3000)
# phx_system_targets.append({
# "targets": [f"{ipv4}:3000"],
# "labels": {
# "instance": f"{server_name}",
# "datacenter": datacenter,
# "__metrics_path__": "/health/metrics"
# }
# })
# # Phoenix Worker metrics (port 3001)
# phx_worker_targets.append({
# "targets": [f"{ipv4}:3001"],
# "labels": {
# "instance": f"{server_name}",
# "datacenter": datacenter,
# "__metrics_path__": "/health/metrics"
# }
# })
dns_mappings.append({
"dns_name": server_name,
"ip_address": ipv4
})
else:
# Log the server that couldn't be added
error_servers.append({
"server_id": server["id"],
"name": server_name,
"status": server["status"],
"datacenter": datacenter,
"reason": "Missing public_net or IPv4"
})
# Save JSON to Prometheus target file
with open(PROMETHEUS_TARGETS_FILE, "w") as f:
json.dump(targets, f, indent=4)
print(f"✅ Updated Prometheus targets in {PROMETHEUS_TARGETS_FILE}")
with open(PHX_HEALTH_EXPORTER_FILE, "w") as f:
json.dump(phx_health_exporter_targets, f, indent=4)
print(f"✅ phoenix-health-exporter targets saved to {PHX_HEALTH_EXPORTER_FILE}")
with open(HEARTBEAT_TARGETS_FILE, "w") as f:
json.dump(heartbeat_targets, f, indent=4)
print(f"✅ heartbeat targets saved to {HEARTBEAT_TARGETS_FILE}")
# with open(PHX_SYSTEM_FILE, "w") as f:
# json.dump(phx_system_targets, f, indent=4)
# print(f"✅ phoenix-system targets saved to {PHX_SYSTEM_FILE}")
# with open(PHX_WORKER_FILE, "w") as f:
# json.dump(phx_worker_targets, f, indent=4)
# print(f"✅ phoenix-worker targets saved to {PHX_WORKER_FILE}")
# Save DNS Mappings file
with open(DNS_MAPPING_FILE, "w") as f:
json.dump(dns_mappings, f, indent=4)
print(f"📡 Created DNS Mapping file: {DNS_MAPPING_FILE}")
# Save error logs if any servers were skipped due to missing data
if error_servers:
with open(ERROR_LOG_FILE, "w") as f:
json.dump(error_servers, f, indent=4)
print(f"⚠️ Some servers could not be added. Check {ERROR_LOG_FILE} for details.")
# Save excluded servers log
if excluded_servers:
with open(EXCLUDED_SERVERS_FILE, "w") as f:
json.dump(excluded_servers, f, indent=4)
print(f"🚫 Darklisted servers were skipped. See {EXCLUDED_SERVERS_FILE} for details.")
else:
print("✅ No servers were excluded due to the darklist.")
# 🔄 **Trigger Prometheus Reload**
try:
response = requests.post(PROMETHEUS_RELOAD_URL)
if response.status_code == 200:
print("🔄 ✅ Prometheus configuration reloaded successfully!")
else:
print(f"⚠️ Warning: Prometheus reload failed with status {response.status_code}: {response.text}")
except requests.exceptions.RequestException as e:
print(f"❌ Error reloading Prometheus: {e}")
# 🔄 Run the script
if __name__ == "__main__":
generate_prometheus_sd_config()

View File

@@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE REQUEST----- -----BEGIN CERTIFICATE REQUEST-----
MIICYjCCAUoCAQAwHTEbMBkGA1UEAwwSZ3JhZmFuYS5waHgtZXJwLmRlMIIBIjAN MIICYjCCAUoCAQAwHTEbMBkGA1UEAwwSZ3JhZmFuYS5waHgtZXJwLmRlMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHa2MImOqjUCFdMOVIPYHY6mohFH BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXY3qRE5HZvcRPujRuBb1wIRBNer
rX5KLC2TXfDn7Lcu+y7/H4FMZf/5swYjKMoD0D3wZbKo79c+wHfSZBZC1QoiD6/a dGgRpCAYLPw1FMjHMfH/G+EzA6hLZQDF7ZEQAuKTP3ngDDat8n3ri1/bxvhOia2v
jIsEPc77R7fQ0LUyTwIQpsdTctA2qpzEiz27W3FgioGTziPpBGiP0CZx/FTgHx3p b63Bek4YpAEZZ6xJjRw+aquxXxoljLwLEa8XjlttkxULuwJVCt5sUKHQ0JLykYcB
lrP+2zeDYvco7IZ3Vd0RNa1bNil5nDsiXQKRae5teQKG+H7ewgmbU2xMqCstMs+N 35aP3+nS+me4z04FbXmW+VNHBFsW2uJFv76DuWiP75uJAAaFHcs0stXMM2uXztDk
Zu8xfIqzLiNgo/Z9KKe0JNf8WPNH827zG57ju/OAaiugNhPG2HDrADsrA6Bj7bUz ES5wJ1fcHbW8f+OwS7mnB0iuC/J99Ci4aq5537U/V0Ik9fC/S+DfJWgT7iBg/vV4
Lza6jiGLhwIn1/BBT/bOomiYdAPKUBUDq14rHoYqYWEqNVDnkCqBbh0I2wIDAQAB se+Is0bOpCQnP35ttYRUwPjbk+VETFIs8gade8nl/71x+3db/U2C+fVI3QIDAQAB
oAAwDQYJKoZIhvcNAQELBQADggEBAJAnNl1BWhhE3wl5I7ry2HtrUO49gTpqiboP oAAwDQYJKoZIhvcNAQELBQADggEBADWxEKfgSo9s3c7kKeLLiMGMG5H7XQi74Rgy
C0jpaaDAIyHfMK3bexu0dMJvD3/9ZEtzBK/1fthyTKtNDw1zIQIZrO8P3044ZKOx nufr3TDjvtKw1cd58kkcY3egiC7+FG2uJdn+s5+ATtReszG5vk5EnMBUH3IG6WEG
k7Bw9fT1UV+v+Ir2phfRn0mU2DqXC+FD7gvs+v+jzNcyndo5NBzIh4YmATKmkpXB XPWKbNy/1TwodsZUt8kZzE0F02TjZOlz2zV2qq7GVLlkjmteM2aIEpAS5rsXc8up
bOH4LJQr/m5s61v7a1E07PYVP5Ldvpru21LYSLGXW6pHFhiv6VGqpBCFukilnn0g DrHzVc2tsKQycHY9ejkcQcMZGwgHgT3PtT8+pG7SxsCVQhtPEBC48WWW2zN8/Uk4
57+54Zdki0WnXDroXMGfiw572mos/PDBtNzLVk1YoxJnPqNc5ODZ9XS2nAX5Idbu 4OATggelAM6FnJYL8WeD1kEWh0VJSOR5XrkePSwQFNt1D+1yr2vCL0EcSlMdXdCq
753Tz9rJxNMHkZk0H7x4Fx0kA2pvxWpVWouoZsZHv1DJGMaqpAU= LHWpW7+2HSWSnKfNtzhQhmIt9FV7Mtm7yJGU/mB01B7rMB9ds+s=
-----END CERTIFICATE REQUEST----- -----END CERTIFICATE REQUEST-----

View File

@@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@@ -1,60 +1,60 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIE8TCCA9mgAwIBAgISBPFDxaUsVjtXt3yizFztqzWOMA0GCSqGSIb3DQEBCwUA MIIFIzCCBAugAwIBAgISBVolsu7Gt+CzF7nMdCREzqXYMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwJSMzAeFw0yNDA1MDMwNDM5MTVaFw0yNDA4MDEwNDM5MTRaMB0xGzAZBgNVBAMT EwNSMTEwHhcNMjUwNDI3MTAyMjI3WhcNMjUwNzI2MTAyMjI2WjAdMRswGQYDVQQD
EmdyYWZhbmEucGh4LWVycC5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC ExJncmFmYW5hLnBoeC1lcnAuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
ggEBALx2tjCJjqo1AhXTDlSD2B2OpqIRR61+Siwtk13w5+y3Lvsu/x+BTGX/+bMG AoIBAQDBdjepETkdm9xE+6NG4FvXAhEE16t0aBGkIBgs/DUUyMcx8f8b4TMDqEtl
IyjKA9A98GWyqO/XPsB30mQWQtUKIg+v2oyLBD3O+0e30NC1Mk8CEKbHU3LQNqqc AMXtkRAC4pM/eeAMNq3yfeuLX9vG+E6Jra9vrcF6ThikARlnrEmNHD5qq7FfGiWM
xIs9u1txYIqBk84j6QRoj9AmcfxU4B8d6Zaz/ts3g2L3KOyGd1XdETWtWzYpeZw7 vAsRrxeOW22TFQu7AlUK3mxQodDQkvKRhwHflo/f6dL6Z7jPTgVteZb5U0cEWxba
Il0CkWnubXkChvh+3sIJm1NsTKgrLTLPjWbvMXyKsy4jYKP2fSintCTX/FjzR/Nu 4kW/voO5aI/vm4kABoUdyzSy1cwza5fO0OQRLnAnV9wdtbx/47BLuacHSK4L8n30
8xue47vzgGoroDYTxthw6wA7KwOgY+21My82uo4hi4cCJ9fwQU/2zqJomHQDylAV KLhqrnnftT9XQiT18L9L4N8laBPuIGD+9Xix74izRs6kJCc/fm21hFTA+NuT5URM
A6teKx6GKmFhKjVQ55AqgW4dCNsCAwEAAaOCAhQwggIQMA4GA1UdDwEB/wQEAwIF UizyBp17yeX/vXH7d1v9TYL59UjdAgMBAAGjggJFMIICQTAOBgNVHQ8BAf8EBAMC
oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAd BaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAw
BgNVHQ4EFgQUQL/yEsUlnMOVOHBuQMNeLdQoZgYwHwYDVR0jBBgwFoAUFC6zF7dY HQYDVR0OBBYEFLuJi7SLpiYjNoDoBnLeTIb1Hh50MB8GA1UdIwQYMBaAFMXPRqTq
VsuuUAlA5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRw 9MPAemyVxC2wXpIvJuO5MFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0
Oi8vcjMuby5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNy cDovL3IxMS5vLmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMS5pLmxl
Lm9yZy8wHQYDVR0RBBYwFIISZ3JhZmFuYS5waHgtZXJwLmRlMBMGA1UdIAQMMAow bmNyLm9yZy8wHQYDVR0RBBYwFIISZ3JhZmFuYS5waHgtZXJwLmRlMBMGA1UdIAQM
CAYGZ4EMAQIBMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHYASLDja9qmRzQP5WoC MAowCAYGZ4EMAQIBMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9yMTEuYy5sZW5j
+p0w6xxSActW3SyB2bu/qznYhHMAAAGPPPbEywAABAMARzBFAiAS0PfdtMMYFbo4 ci5vcmcvODkuY3JsMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHYAzPsPaoVxCWX+
TrvUpoMEQUrE644QcsK0rfQHZVNcxQIhALLomR3on1qjco08hfihYoxaazmw4ztk lZtTzumyfCLphVwNl422qX5UwP5MDbAAAAGWdvqaYwAABAMARzBFAiEA0e6Cw5IB
B65S2vtG/Y77AHYAdv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGP RmotsjC9qcc1X9Ab0NODHRs5JOLEp7CB/J8CIG4b6L+EH2qhYed9TSjln8Nt1Tym
PPbFBgAABAMARzBFAiEA+lJjA3vZi/6iC95WV5EJuiPqsmuGhMfjnZyveib2tqUC Yq4PI29PmNnbaCnzAHUAfVkeEuF4KnscYWd8Xv340IdcFKBOlZ65Ay/ZDowuebgA
ICVaDYKqkl4lhK3wVQrnaP3BIbhrOBeNptN5HDedfQC+MA0GCSqGSIb3DQEBCwUA AAGWdvqaUAAABAMARjBEAiBcksSA/FONdr4vvl6Y6b2AaAh+wHzByinHdn6Jc09q
A4IBAQBM1K4+NHawJtedyl2947DX7o5lwYx8PsmweJRdBHd8RD30/62+6hHEs/yj AgIgJfM1XdTgmY/QJb29OGpH8kgLkTZn+MnwHEoHYI2nobMwDQYJKoZIhvcNAQEL
i78g6FqtJ08510OsdIg1TXTHGBm8ac3ltQvDXV7BOLj4BCz4+FkqAYGvBReXtapZ BQADggEBALfI55bDe7jZLZiD+VdpPDhGyx6Rf7rAkHZ4xtZL4v6lhd2pWZeyV3bJ
K9KJDtlNzHXKQ+QOWOnwxJTzYBAZfTAzWub5lJzOEbaVLwQ8QSfHjKqNide/TBlo DNj7IQ/iVIxe388G9MhfmyYjn4fPmDvczGrJzoA2z45bCAS7x/chYjeej4MPq/Ud
XdZe0j0KliOkEAbC/Lul4dLYj02nfeLWHHSMVBYznUrXz9/hAgJrEpco+keQSyZt VwCrU2OUFH9dMB0q+3qHr6aGnKRuaG4DS0qIkTEa4ou2KfSbaDOR9uqgFj3V3wVp
Cuaqu221SLwifaQgDxcPFv5/Aygjkhm5ECvBIOORfR16XOT4H39wlJ/0MC9K5MU/ 0LHLiCPLe+KjUdT7WUmwfEAF/5V20SUjzTEExkfI0Yhmtt6EYxIUhZ8zeH1+/qox
qehESu8JtLx1k91QpDhUKWeXPfWt An7U48oDvSi/QsdGaeuKpTR09tjol/txASJhIhSJqfL+Q9jKG6s+Yc7mTeQe+PZl
JmDDdtiKADcJ9EtIhG6rqt6NBL3NOSA=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw MIIFBjCCAu6gAwIBAgIRAIp9PhPWLzDvI4a9KQdrNPgwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg WhcNMjcwMzEyMjM1OTU5WjAzMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK RW5jcnlwdDEMMAoGA1UEAxMDUjExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP CgKCAQEAuoe8XBsAOcvKCs3UZxD5ATylTqVhyybKUvsVAbe5KPUoHu0nsyQYOWcJ
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx DAjs4DqwO3cOvfPlOVRBDE6uQdaZdN5R2+97/1i9qLcT9t4x1fJyyXJqC4N0lZxG
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm AGQUmfOx2SLZzaiSqhwmej/+71gFewiVgdtxD4774zEJuwm+UE1fj5F2PVqdnoPy
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg 6cRms+EGZkNIGIBloDcYmpuEMpexsr3E+BUAnSeI++JjF5ZsmydnS8TbKF5pwnnw
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG 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
nLRbwHOoq7hHwg==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@@ -1,15 +1,15 @@
-----BEGIN CERTIFICATE REQUEST----- -----BEGIN CERTIFICATE REQUEST-----
MIICZTCCAU0CAQAwIDEeMBwGA1UEAwwVcHJvbWV0aGV1cy5waHgtZXJwLmRlMIIB MIICZTCCAU0CAQAwIDEeMBwGA1UEAwwVcHJvbWV0aGV1cy5waHgtZXJwLmRlMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3l9jx1zMA5sYG5EjPTL6z1oI IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfv97PjSRHIYC6NxnwSM0gTf
ICzI8iK3Mm7rpnufkNbE9tLUOGyqBqLCUCT1V3cpVVAUh3EpMYkx0RNUFbU3YDPZ 6udieOpYlMeqiEo27MIa+xcYNeuqwiu8m5qrOsvtW7B82IwkNGwQqeBo4a7P5H1U
BMRvTzAgVxMHNqDx4NWDFvBJkgGOidz6i6kUNg8chUmva6ljijgqOf4JzHKCOeK2 mfwqY6XzVd16WpybfQA9NKhQmy1/bl+vT0a3v1EXTn8LcVtGWcXr+Px/brNXqUpO
gRbdfWIEGTItn7kMpTFJoOT9jL7lCy0U6hjLw71ziPAg1YAZHlXimWVQG/x1n5tq eL6tuZ7UfTZdSBTGfm+wZOgkWu0O4g5KTP+gr9gPkIW1KMznEI79b56Z0sUk/0G1
hT2bNM+lJYqgI/OJFUCnVICHJfNRJgauVM/7G3x3Y5ahjUscReWKOCrT1zZNRC40 tN3b78ujkfTpRuW86wAA1tDKNgURDvBnzmPGCF9hGbxGBw3WuCs7S7zIQDe/Yipp
ECBXZr0012maPssq6oAFDmkAMgI6DFwo2TjGI99ootiQGrSpOf+38aAm6XsfSwID c5T/q7ChHXbzeuIr7yoVvTFIH+zSBcPXRyCbNepaJqMafO5EPRGr/ivBsNDzRwID
AQABoAAwDQYJKoZIhvcNAQELBQADggEBADYwIGwXalbz/W6QKYF7liwtcSEGmdlc AQABoAAwDQYJKoZIhvcNAQELBQADggEBAB5koQSVx6SOm8osTt18h3f9QgtJSbXw
B6/Zr6ZQDwYjVqjXzZ67v7apeg/mNvyCeUUDFJ/KEtlBJx1pPLUct3Gks/8Ut9uE q9rB05Agy9hfKXpKkfOFn9npXgMUIXAM/dAn7gwURPxizPSj1L3RPxY+TSf9OW6C
SxxQbl0euiC36NbMxNWbhDlhyEO17+srvIjJ9oTVdi4KJDThH0GLfYUEbYvpVXWf /3138yJ6tzqlIsm8AOFwVxKHrPzqeEMUtPjKR6d1LGsiPyIeWtRHciC7uco9yIP9
SVeUJxGC0MBXE/yLvriylZa36CI10HGiV9yFQPdoYDLXIV7ZPQMqv7RXs0jqQUKX orxZ1bIth9JDxgqiGKeGLRTyIkaM0jQTtQascI1h3kYfqBpW+67irp+X1/1MjqAV
gMLvviyxsresAfG2Ff+LsahId1/iw0PcZWw0+r/4sb/1HdOfK7g7lcslB0BBjoU0 A+jo/9hl+tjZoF2WEfZnZfRmTDTZ4swMu1N/P5uZ9IbzYEEtJ9Re40lKkyhrQu08
KE5dvPQFBamfou9EHPL7ZW1HmNfwqTcG8wkjPPW2FN9bTkmHRUtWGZk= TCJsDcjPELsgCnkSfmrv/610Ab7ZXGNH4N7VQBpqOGOpO8F8lZFljmw=
-----END CERTIFICATE REQUEST----- -----END CERTIFICATE REQUEST-----

View File

@@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@@ -1,60 +1,60 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIE+DCCA+CgAwIBAgISA+qQiSg5B1CdxceAYxEa5NWfMA0GCSqGSIb3DQEBCwUA MIIFKzCCBBOgAwIBAgISBkq6MpaUzRQ75D6kFDRfobJtMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwJSMzAeFw0yNDA1MDMwNDM5MjVaFw0yNDA4MDEwNDM5MjRaMCAxHjAcBgNVBAMT EwNSMTAwHhcNMjUwNDI3MTAyMjM4WhcNMjUwNzI2MTAyMjM3WjAgMR4wHAYDVQQD
FXByb21ldGhldXMucGh4LWVycC5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC ExVwcm9tZXRoZXVzLnBoeC1lcnAuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
AQoCggEBAN5fY8dczAObGBuRIz0y+s9aCCAsyPIitzJu66Z7n5DWxPbS1Dhsqgai ggEKAoIBAQCx+/3s+NJEchgLo3GfBIzSBN/q52J46liUx6qISjbswhr7Fxg166rC
wlAk9Vd3KVVQFIdxKTGJMdETVBW1N2Az2QTEb08wIFcTBzag8eDVgxbwSZIBjonc K7ybmqs6y+1bsHzYjCQ0bBCp4Gjhrs/kfVSZ/CpjpfNV3XpanJt9AD00qFCbLX9u
+oupFDYPHIVJr2upY4o4Kjn+CcxygjnitoEW3X1iBBkyLZ+5DKUxSaDk/Yy+5Qst X69PRre/URdOfwtxW0ZZxev4/H9us1epSk54vq25ntR9Nl1IFMZ+b7Bk6CRa7Q7i
FOoYy8O9c4jwINWAGR5V4pllUBv8dZ+baoU9mzTPpSWKoCPziRVAp1SAhyXzUSYG DkpM/6Cv2A+QhbUozOcQjv1vnpnSxST/QbW03dvvy6OR9OlG5bzrAADW0Mo2BREO
rlTP+xt8d2OWoY1LHEXlijgq09c2TUQuNBAgV2a9NNdpmj7LKuqABQ5pADICOgxc 8GfOY8YIX2EZvEYHDda4KztLvMhAN79iKmlzlP+rsKEddvN64ivvKhW9MUgf7NIF
KNk4xiPfaKLYkBq0qTn/t/GgJul7H0sCAwEAAaOCAhgwggIUMA4GA1UdDwEB/wQE w9dHIJs16lomoxp87kQ9Eav+K8Gw0PNHAgMBAAGjggJKMIICRjAOBgNVHQ8BAf8E
AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIw BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC
ADAdBgNVHQ4EFgQUafTHIyVZ4qcOv0iI2rDsEmtygMAwHwYDVR0jBBgwFoAUFC6z MAAwHQYDVR0OBBYEFCDXhBghaDDRLeSvoxXD7qp/++hrMB8GA1UdIwQYMBaAFLu8
F7dYVsuuUAlA5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVo w0el5LypxsOkcgwQjaI14cjoMFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYW
dHRwOi8vcjMuby5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxl aHR0cDovL3IxMC5vLmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMC5p
bmNyLm9yZy8wIAYDVR0RBBkwF4IVcHJvbWV0aGV1cy5waHgtZXJwLmRlMBMGA1Ud LmxlbmNyLm9yZy8wIAYDVR0RBBkwF4IVcHJvbWV0aGV1cy5waHgtZXJwLmRlMBMG
IAQMMAowCAYGZ4EMAQIBMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYASLDja9qm A1UdIAQMMAowCAYGZ4EMAQIBMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9yMTAu
RzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGPPPbokAAABAMARzBFAiEA19e5 Yy5sZW5jci5vcmcvMTEwLmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AA3h
WeA5aq2o3uQXr1rARUNj7DvTw1U4Ih5S/xlkyNQCIF6TIvz1luan4gmNaLLew2W9 8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+Tqo0AAABlnb6yEEAAAQDAEcwRQIh
kyaYPpvfj8lCUr5P0F7oAHcAGZgQcQnw1lIuMIDSnj9ku4NuKMz5D1KO7t/OSj8W ALIQgHy9Dm8jEK8pmDdXnTXaW3Hgknamxu4HPvqUZJfFAiBHcNJcEWs3vFmC5RTp
tMoAAAGPPPbpOwAABAMASDBGAiEAo2u44vWEAHwqbjBNLGCPeKvar+M40qoVWLic 9JEltl7ma7P32N84zgZgWXbGxAB2AMz7D2qFcQll/pWbU87psnwi6YVcDZeNtql+
VWD6qd0CIQC4Ev17PqCkNzaZD1XyTVRNocM/7hRUmGJ9GnmRmJX7NjANBgkqhkiG VMD+TA2wAAABlnb6yFEAAAQDAEcwRQIgLyj1f+tAq4iywH+i/kZV0LjdKXe+S+CU
9w0BAQsFAAOCAQEApHKg3AbTo46BdmdM8V2i7MhzosPOFhuhYLyIqDhTMMa1EEDe h/xnuJjdzdYCIQC7FxwVOxzatbYDlHmeRkX4fV0e2HenYUiDgG+/huR1SDANBgkq
cjrVTYHHebVJCssZWELVoeFlZ2XQQMf/rQVkHHMIq89mm1FXCo68eNADvdYakWDO hkiG9w0BAQsFAAOCAQEAOqq1KFmNo/lF0bAtFx1YBlGZk8cGQHumUhMlVRR9VKZ+
fp07bTZFlxUTNAorUVa5aaFas2ABCYxxGETL8HpdqtlngK7wURhHD1A8+Oz7hW+t S43GoJQOg+AD3yCjXA4YNUMpy0n+E8ggWlA2cPwC378crk8Zu/wh2ILcyPDOaik/
JicL4C86cwFrRySduduVI+gFxOid0dGK4uA37hEs1MtlIXw4uAyM3yfil/iC36C0 vAJ50m+dyZ67Ons9uaBuy7tgiEHmvscRnQI+PjybXrcmdDEMoYu6JW4TEqsVYqi1
lCWYvFbXivjWJd8jMs2lognBwW1FMn+HY8RN2zoNZ6hTZKT9bHyrdY4+SsxnnzSk Arfr1XbSdC8HDmjNNjJGAxrqsKH25rH1BEXeqwdeDXwXjhL3V66k78MLzRhxH6bf
EKSEuCjfqmTh/BKEou8ndEIMGA850q0xsAIMGA== ngwsfG8DotosCLn4bNICg1x+xrzWMKJUZ7QUe3sf5PMZILPYUYaIdus04hVBN8Hq
CwRvCi7vIJ8PSGvZ7qaYlhr/k/LmPVlz5ik/LF+p2Q==
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
nLRbwHOoq7hHwg==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@@ -1,2 +1,2 @@
2024/05/03 15:54:26 [notice] 268#268: signal process started 2025/05/13 03:45:01 [notice] 902#902: signal process started
2024/05/03 16:03:21 [notice] 265#265: signal process started 2025/05/13 08:24:10 [notice] 268#268: signal process started