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.
Binarul probod citește configurația completă a timpului de rulare dintr-un fișier JSON sau YAML.
probod -cfg-file /etc/probod/config.ymlprobod nu caută un fișier implicit atunci când binarul este executat direct.
Configuration structure
Secțiune intitulată „Configuration structure”The root object contains two sections:
unitconfigurează metrica la nivel de proces și exportul OpenTelemetry.probodconfigură 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: trueOmiteți urmărirea atunci când nu rulați un colector OpenTelemetry. Pentru S3 peAWSomiteț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 și, dacă este necesar, use-path-style: true.
JSON utilizează aceeași ierarhie și nume de câmp ca YAML.
Protect the file
Secțiune intitulată „Protect the file”Păstrați-l în afara controlului sursă, restricționați accesul de citire la contul care rulează probod și protejați copiile stocate cu aceleași controale ca și alte credențiale de producție.
chmod 600 /etc/probod/config.ymlReferințele secrete, cum ar fi awssm://secret-id și awsps:///parameter-name sunt interpretate numai de probod-bootstrap; probod nu le rezolvă.
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
Secțiune intitulată „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.
- Redeschideți fiecare instanță
probodcu aceeași configurație. - Confirmă că fiecare instanță începe cu succes înainte de a elimina fișierul anterior.
Înlocuirea defectuoasă sau incompletă împiedică pornirea ___ZBT_I18N_RUNTIME_BLOCK_186__.
Troubleshoot startup
Secțiune intitulată „Troubleshoot startup”Când probod se oprește în timpul pornirii:
- Citiți prima eroare din jurnal; eșecurile ulterioare pot fi consecințe ale acesteia.
- Confirmă că
-cfg-fileindică un fișier care poate fi citit. - 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
Secțiune intitulată „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.