GH GambleHub

Αγωγοί καταγραφής: ELK και Loki

1) Γιατί και πότε: στόχοι υλοτομίας

Παρατηρησιμότητα και RCA: επιτάχυνση Debag, μεταθανάτια, έλεγχος SLO/SLA.
Ασφάλεια και έλεγχος: ίχνη πρόσβασης, ανωμαλίες, έρευνες.
Επιχειρηματικές μετρήσεις: μετατροπή, ροή πληρωμών, σφάλματα PSP, συμπεριφορά χρήστη.
Συμμόρφωση: αποθήκευση, συγκάλυψη PII, πολιτικές διατήρησης, νόμιμη λαβή.

Τύποι αρχείων καταγραφής: εφαρμογή, υποδομή (kubelet, kube-proxy, CNI, είσοδος), δίκτυο, έλεγχος, πληρωμή, εκδηλώσεις στο διαδίκτυο, Nginx/Envoy, βάση δεδομένων.

2) Αρχιτεκτονικές υψηλού επιπέδου

Επιλογή Α: ELK

Παραγωγοί Logshipper (Filebeat/Fluent Bit/Vector) Logstash/Beats input Elasticsearch

Επιλογή B: Loki

Παραγωγοί → Promtail/Fluent Bit → Loki διανομέας/ingester/querier → Grafana/Алертинг

Υβριδικό

ELK για αναζήτηση πλήρους κειμένου/όψης, Loki για χαμηλού κόστους κλιμακωτή αποθήκευση και ταχείες ερωτήσεις τύπου γραφήματος· συσχέτιση με μετρήσεις/ίχνη στην Grafana.

3) Επίπεδα ροής και επεξεργασίας δεδομένων

1. Συλλογή: byte tail files, journal, syslog, stdout containers, HTTP.
2. Εμπλουτισμός: κανονικοποίηση χρονοσφραγίδας, host/pod/namespace, env (prod/stage), release, commit SHA, trace/span id.
3. Ανάλυση: JSON → επίπεδα πεδία. grok/regex· μορφότυποι Nginx/απεσταλμένου· καθεστώτα πληρωμών (κωδικοί σφάλματος ΠΥΠ).
4. Φιλτράρισμα/επεξεργασία: κομμένα PII (PAN, CVV, e-mail, διευθύνσεις), μυστικά, μάρκες.
5. Δρομολόγηση: ανά ενοικιαστή/υπηρεσία/επίπεδο ημερολογίου. ζεστό/ζεστό/κρύο· να S3/object την αποθήκευση.
6. Αποθήκευση και διατήρηση: πολιτική TTL ανά κατηγορία δεδομένων.
7. Πρόσβαση/Ανάλυση/καταχωρίσεις.

4) ELK: βασικές λύσεις

4. 1 Logstash/beats

Χρησιμοποιήστε Beats/Fluent Bit σε κόμβους για εύκολο picker, Logstash ως κεντρικό ETL (grok, dissect, mutate, geoip, translate).
Logstash pools: inholding-ETL, security-ETL, payments-ETL - για την απομόνωση φορτίων.

4. Ελαστικοποίηση

Sharding: εστίαση σε ~ 20-50 GB ανά θραύσμα· αποφυγή «έκρηξης θραύσματος».
Στρατηγική δεικτών: 'logs- <ενοικιαστής> - <υπηρεσία> -ΕΕΕΕ. MMDD 'ή ροές δεδομένων, ανατροπή κατά μέγεθος/χρόνο.

ILM (θερμό/ζεστό/κρύο/κατεψυγμένο):
  • θερμό: SSD, 1-7 ημέρες, θερμό: HDD, 7-30 ημέρες, κρύο: ογκομετρικό· πάγωμα: ελάχιστο κόστος με βραδύτερη πρόσβαση.
  • Χαρτογραφήσεις - Πεδία σκληρού τύπου, περιορισμός πεδίων και δημιουργία δυναμικών πεδίων.
  • Cache και ερωτήματα: φίλτρα ανά πεδία λέξεων-κλειδιών, συγκεντρωτικά μεγέθη - τακτοποιημένα· pin-to-hot για αναζήτηση υψηλής συχνότητας.

4. 3 Kibana

Χώροι πολυκατοικίας.
Αποθηκευμένες αναζητήσεις, φακοί/TSVB, μετρήσεις κατωφλίου/συναγερμού.
RBAC ανά πρότυπο δείκτη («logs-tenant-»).

5) Loki: βασικές αποφάσεις

5. 1 Μοντέλο ετικέτας

Οι ετικέτες είναι ο δείκτης του Λόκι. "Χρησιμοποιήστε χαμηλή πληθικότητα: 'cluster', 'namespace', 'app', 'level', 'env', 'tenant'.
Πεδία με υψηλή πληθικότητα (uid, request_id) - στη σειρά. να ανακτήσει το ' =', το 'json', το '\regexp 'όταν ρωτηθεί μέσω του LogQL.

5. 2 Συστατικά μέρη

Promtail: сбор stdout, φάκελοι, δημοσιογραφία. parsers (JSON, regex, cri).
Διανομέας/Ingester/Querier/Query-frontend: κλιμάκωση ανά ρόλο. να ζητούν την αποθήκευση.
Αποθήκευση αντικειμένου (S3/GCS/MinIO) για μακροπρόθεσμη αποθήκευση κορμών.

5. 3 Τεχνικές LogQL

Fast grep: '{app = «πληρωμές», επίπεδο = «error»}

JSON: '{app = «api»}

Συσχέτιση με τις μετρήσεις: 'rate ({app = «nginx »\=« 200 »[5m])'

6) Σύγκριση ELK έναντι Loki (εν συντομία)

Αναζήτηση/ομαδοποίηση: Η ELK είναι ισχυρότερη για πολύπλοκα ερωτήματα πλήρους κειμένου και όψης. Loki - grep-like, γρήγορη και φθηνή.
Κόστος: Το Λόκι είναι συχνά φθηνότερο σε μεγαλύτερους όγκους (αποθήκευση αντικειμένων + μικρότερος δείκτης).
Επιχειρησιακή πολυπλοκότητα: Η ELK απαιτεί πειθαρχία στους δείκτες/ILM, Javu-hips. Loki - κλάδοι ετικετών.
Συσχέτιση με μετρήσεις/ίχνη: Loki ενσωματώνεται φυσικά με τη στοίβα Grafana/Otel. Η ELK γνωρίζει επίσης πώς, αλλά συχνότερα μέσω της ολοκλήρωσης.

7) Ασφάλεια και συμμόρφωση

PII έκδοση στην άκρη (αποστολέας): μάσκα PAN, e-mail, τηλέφωνο, διευθύνσεις, μάρκες.
TLS κατά τη διαμετακόμιση, mTLS μεταξύ πρακτόρων και λεωφορείων.
RBAC: δείκτες ανά ενοικιαστή/ετικέτες· απομόνωση νέων χώρων/χώρων.
Υγιεινή μυστικών: περιβαλλοντικές μεταβλητές χωρίς μυστικά, μεμονωμένοι μυστικοί διαχειριστές.
Μηχανισμός δέσμευσης τμήματος/δείκτη να γραφεί μία φορά για αμφισβητούμενες περιόδους.
Διαγραφή/διατήρηση: πολιτικές TTL ανά κατηγορία δεδομένων (prod/stateful/payments/audit).
Διαδρομές λογιστικού ελέγχου πρόσβασης.

8) Αξιοπιστία και απόδοση

Ρυθμιστικό διάλυμα και αντίθλιψη: τοπικά αρχεία/δίσκοι για παράγοντες. υποχωρεί με εκθετική οπισθοδρόμηση.
Idempotency: 'inest _ i /' log _ i fields για την αποφυγή αντιγράφων κατά τη διάρκεια αντιγράφων.
HA: τουλάχιστον 3 κόμβοι για πλοιάρχους/κατάποδες Loki ES· Αντιθεραπεία по AZ.
Ποσοστώσεις και όρια συντελεστών ανά ενοικιαστή/υπηρεσία προστασία από την υλοτομία «καταιγίδων».
Σύστημα επιπέδου καταγραφής: 'ERROR' περιορισμένη, 'DEBUG' μόνο προσωρινά μέσω δυναμικών σημαιών.

9) Επιδόσεις και ρύθμιση

ELK:
  • Σωρός JVM 50% RAM (αλλά ~ 30-32 GB ανά κόμβο), η μνήμη σελίδας είναι σημαντική.
  • Έξυπνη ανατροπή (20-50 GB/shard), 'refresh _ interval' ↑ για δείκτες κατάποσης.
  • Στο Logstash, αποφύγετε το «βαρύ» άλσος. εάν είναι δυνατόν, καταγραφή JSON στην πηγή.
Λόκι:
  • Το σωστό σύνολο ετικετών είναι το κλειδί για την ταχύτητα.
  • Μεγάλα κομμάτια → φθηνότερη αποθήκευση, αλλά πιο ακριβή μνήμη στο ingester? ισορροπία.
  • Ερώτηση-frontend + cache (meme/Redis) για επαναλαμβανόμενες αιτήσεις.

10) FinOps για κορμούς (κόστος)

Μείωση της πληθικότητας των πεδίων/ετικετών.
Δειγματοληψία αποσφαλμάτωσης και δυναμικοί «διακόπτες καταγραφής».
Περιστροφή: κοντό ζεστό, μακρύ κρύο στο αντικείμενο.
Αφαίρεση και ενοποιημένα μηνύματα (παρτίδα).
Η αρχειοθέτηση σπάνια χρησιμοποιούσε κούτσουρα σε φτηνές τάξεις αποθήκευσης.
Ταμπλό αξίας: όγκος/ροές δεδομένων/ετικέτες/δείκτες/ενοικιαστές.

11) Παρατηρησιμότητα 3-σε-1

ID/Span-ID για κάθε ημερολόγιο (μεσαίο λογισμικό σε πύλες και υπηρεσίες API).
OpenTelemetry: ενιαίο πλαίσιο. εξαγωγείς στην Tempo/Jaeger, μετρήσεις στην Prometheus/Mimir, καταγραφές στην Loki/ELK.
Γρήγορα σενάρια: «ειδοποίηση με μετρικό → άλμα στα αντίστοιχα κούτσουρα → άλμα στην πίστα».

12) Πολυπλοκότητα και απομόνωση

απομόνωση βάσει ονομάτων (K8s ετικέτες), χωριστά πρότυπα δεικτών/ετικέτες «ενοικιαστής».
Διαχωρισμός καταχωρίσεων/ταμπλό/retenschna ανά ενοικιαστή.
Τιμολόγηση της κατανάλωσης: όγκος κατάποσης, αποθήκευση, αιτήσεις.

13) Παρακολούθηση και SLO για τον ίδιο τον μεταφορέα

SLO καταπίνει: "99. 9% κούτσουρα που παραδίδονται

Αναζήτηση SLO: «p95 ερωτήσεις <Y sec».
Τεχνικές μετρήσεις: βάθος αναμονής, κούτσουρα, ρυθμός επανεπεξεργασίας, ποσοστό σφάλματος parser, βλάβη κόμβου ingester/ES.

14) Τυπικά συστήματα εγκατάστασης

Διεύθυνση: Elasticsearch Service/Opensearch, Grafana Cloud Loki.
Αυτόνομη : Stat Sets for ES/Loki, anti-affinity for AZ, PersistentVolumes, object storage.
Παράγοντες ακμής (εφαρμογές στις περιφέρειες): τοπικό ρυθμιστικό διάλυμα + κανάλι TLS για την κεντρική απορρόφηση.

15) Παραδείγματα διαμόρφωσης

15. 1 Promtail (K8s, CRI JSON)

yaml scrape_configs:
- job_name: kubernetes-pods kubernetes_sd_configs:
- role: pod pipeline_stages:
- cri: {}
- json:
expressions:
level: level msg: message trace: trace_id
- labels:
level:
app:
namespace:
- match:
selector: '{namespace="prod"}'
stages:
- regex:
expression: '(?P<pan>\b[0-9]{12,19}\b)'
- replace:
expression: '(?P<pan>\b[0-9]{12,19}\b)'
replace: '[REDACTED_PAN]'
relabel_configs:
- action: replace source_labels: [__meta_kubernetes_pod_label_app]
target_label: app
- action: replace source_labels: [__meta_kubernetes_namespace]
target_label: namespace
- action: replace source_labels: [__meta_kubernetes_pod_node_name]
target_label: node

15. 2 Logstash (κατάποση και συγκάλυψη)

ruby input {
beats { port => 5044 }
}
filter {
json { source => "message" skip_on_invalid_json => true }
mutate { add_field => { "env" => "%{[kubernetes][labels][env]}" } }
PII mutate {
gsub => [
"message", "\b[0-9]{12,19}\b", "[REDACTED_PAN]",
"message", "(?i)(authorization: Bearer)([A-Za-z0-9\.\-_]+)", "\1[REDACTED_TOKEN]"
]
}
}
output {
elasticsearch {
hosts => ["https://es-hot-1:9200","https://es-hot-2:9200"]
index => "logs-%{[fields][tenant]}-%{[app]}-%{+YYYY. MM. dd}"
ilm_enabled => true ssl => true cacert => "/etc/ssl/certs/ca. crt"
user => "${ES_USER}"
password => "${ES_PASS}"
}
}

16) Προειδοποιήσεις και ταμπλέτες (υποδείγματα)

API: 'rate ({app = «api «, level =» error»} [5m])> κατώφλι ' PagerDuty/Telegram.
5xx splash in Nginx/Envoy σταγόνα κατάποσης σε παράγοντες· ανάπτυξη της αναζήτησης με καθυστέρηση.

Ταμπλό:
  • Όγκος κορμοτεμαχίων ανά υπηρεσία/ενοικιαστές.
  • Πρότυπα ανώτατου σφάλματος (κωδικός/εξαίρεση/τελικό σημείο).
  • Κόστος ανά τάξη κατακράτησης/αποθήκευσης.

17) Έλεγχοι ποιότητας (log-QA)

Συμβάσεις καταγραφής: μορφή JSON, απαιτούμενα πεδία («ts», «level», «service», «env», «trace _ id», «msg»).
Linter logs in CI: απαγόρευση νέων πεδίων με υψηλή πληθικότητα χωρίς συμφωνία.
Υπηρεσίες καναρινιών: δημιουργία αρχείων αναφοράς για την έγκαιρη ανίχνευση παλινδρόμησης.

18) Συχνά σφάλματα και αντι-πρότυπα

Οι ετικέτες Loki με υψηλή πληθικότητα ('χρήστης _ id', 'request _ id') → μια έκρηξη μνήμης.
Δυναμικά πεδία σε ES χωρίς χαρτογράφηση → «έκρηξη δείκτη».
Αποσφαλμάτωση στην πώληση "για πάντα. "Ανάψτε με σημαίες και με TTL.
Απουσία αναθεώρησης του PII.
Ένας κοινός «μονολιθικός» αγωγός για τα πάντα - καλύτερα τμήματα ανά τομέα.

19) Σχέδιο εφαρμογής (επαναλήψεις)

1. MVP: πράκτορες + ένας αγωγός (εφαρμογές), βασικά ταμπλό, έκδοση PII.
2. Επέκταση: δίκτυο/infra-logs, καταχωρίσεις SLO, συσχέτιση με τροχιές.
3. FinOps: πίνακας κατακράτησης, έκθεση κόστους, βελτιστοποίηση ετικέτας/δείκτη.
4. Πολυπληθής: χώροι, RBAC, τιμολόγηση κατανάλωσης.
5. Αξιοπιστία: HA, ασκήσεις καταστροφών, νόμιμη κράτηση.

20) Κατάλογος ελέγχου της εκτόξευσης στην παραγωγή

  • Μορφή JSON και απαιτούμενα πεδία σε όλες τις υπηρεσίες.
  • PII απόκρυψη/κατάποση παράγοντα.
  • Πολιτικές διατήρησης/ILM ή κύκλου ζωής κουβά.
  • RBAC/χώροι/ενοικιαστές.
  • Κατάποση/αναζήτηση και ειδοποίηση SLO.
  • Κανάριοι κορμοί και εκτέλεση δοκιμής φορτίου.
  • Ταμπλό αξίας και αναφορά για τους ιδιοκτήτες υπηρεσιών.
  • Runbooks: «τι να κάνετε αν καταπίνετε έπεσε/αναζήτηση αργά/θραύσματα κόκκινο».

21) Mini-FAQ

Τι να επιλέξετε - ELK ή Loki

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Telegram
@Gamble_GC
Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.