JSON and YAML Configuration
Configurați binarul probod direct cu un fișier JSON sau YAML transmis prin fișierul -cfg, structura de acoperire, protecția secretelor și rezolvarea problemelor.
The probod Binary citește configurația completă a timpului de execuție dintr-un fișier JSON sau YAML. -cfg-file:
probod -cfg-file /etc/probod/config.yml
probod nu caută un fișier implicit atunci când binarul este executat direct. Validează fișierul selectat înainte de a începe și se retrage dacă setările necesare lipsesc sau sunt malformate.
Configuration structure
Section titled “Configuration structure”The root object contains two sections:
unitconfigures process-level metrics and OpenTelemetry export.probodConfigurează aplicația, baza de date, autentificarea, stocarea, notificările, integrările și lucrătorii.
Următorul YAML prezintă forma unei configurații tipice de producție. Este un exemplu mai degrabă decât o schemă completă; câmpurile disponibile se pot schimba între versiuni.
unit:
metrics:
addr: "0.0.0.0:8081"
tracing:
addr: "otel-collector:4318"
max-batch-size: 512
batch-timeout: 5
export-timeout: 30
max-queue-size: 2048
probod:
base-url: "https://probo.example.com"
encryption-key: "<base64-encoded 32-byte key>"
chrome-dp-addr: "chrome:9222"
api:
addr: "0.0.0.0:8080"
cors:
allowed-origins:
- "https://probo.example.com"
pg:
addr: "postgres.example.com:5432"
username: "probod"
password: "<database password>"
database: "probod"
pool-size: 100
min-pool-size: 10
auth:
disable-signup: false
cookie:
domain: "probo.example.com"
secret: "<base64-encoded 32-byte key>"
duration: 24
secure: true
same-site: "lax"
password:
pepper: "<base64-encoded 32-byte key>"
iterations: 1000000
oauth2-server:
signing-keys:
- private-key: |
<PEM private key content goes here>
kid: "default"
active: true
aws:
region: "eu-west-1"
bucket: "probo-production"
notifications:
mailer:
sender-name: "Probo"
sender-email: "no-reply@example.com"
smtp:
addr: "smtp.example.com:587"
tls-required: true
Omiteți urmărirea atunci când nu rulați un colector OpenTelemetry. Pentru S3 pe AWS, omiteți cheile de acces statice atunci când sarcina de lucru are un rol IAM. Pentru un alt serviciu compatibil cu S3, setați endpoint În cazul în care este necesar,
use-path-style: true.
JSON utilizează aceeași ierarhie și nume de câmp ca YAML.
Protect the file
Section titled “Protect the file”Un fișier de configurare conține secrete în text simplu. Păstrați-l în afara controlului sursă, restricționați accesul de citire la contul care rulează probod, și protejează copiile stocate cu aceleași controale ca și alte credențiale de producție.
chmod 600 /etc/probod/config.yml
Valorile dintr-un fișier gestionat direct sunt literale. referințe secrete, cum ar fi
awssm://secret-id and awsps:///parameter-name Acestea sunt interpretate doar de
probod-bootstrap; probod does not resolve them.
Cheia de criptare, secretul cookie-ului de sesiune, piperul de parolă și cheia de semnare a tokenului trebuie să rămână disponibile pe durata de viață a implementării. Set persistent secrets before first boot before creating a production file.
Apply changes
Section titled “Apply changes”Configurarea este încărcată o dată în timpul procesului de pornire. Pentru a aplica o actualizare:
- Pregătiți și protejați fișierul de înlocuire.
- Restart every
probodcu aceeaşi configuraţie. - Confirmă că fiecare instanță începe cu succes înainte de a elimina fișierul anterior.
Păstrați configurația protejată anterior disponibilă pentru rollback. O înlocuire defectuoasă sau incompletă împiedică probod from starting.
Troubleshoot startup
Section titled “Troubleshoot startup”When probod exits during startup:
- Citiți prima eroare din jurnal; eșecurile ulterioare pot fi consecințe ale acesteia.
- Confirm that
-cfg-filepoints to a readable file. - Verificați sintaxa JSON sau YAML, indentarea și tipurile scalare.
- Verificați dacă valorile necesare sunt prezente și cheile PEM multiline sau certificatele sunt complete.
- Dacă parsarea reușește, verificați conectivitatea la baza de date configurată, la stocarea obiectelor, la serverul SMTP, la punctul de terminare Chrome și la colectorul de telemetrie.
Release compatibility
Section titled “Release compatibility”Schema de configurare evoluează odată cu platforma. Revizuirea modificărilor de configurare înainte de upgrade și utilizarea schemei din aceeași versiune ca și versiunea binară de rulare.
pkg/probodconfig
types.