ΠΠ΅ΠΊΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π»ΠΎΠ³Π²Π°Π½Π΅ΡΠΎ Π² Docker ΠΈ Kubernetes ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ: Grafana Loki ΠΈ ΡΡΠ΅ΠΊΠ° EFK (Elasticsearch + Fluent Bit + Kibana).
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΈΠ·ΡΡΠΈΡΠΊΠ°Π½ ΠΎΡ . ΠΠΊΠΎ ΠΈΠΌΠ° ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅, Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° Π½ΡΠΆΠ΄Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΡΠ»Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ - Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ΅ Π·Π° ΠΊΡΡΡ ΠΏΠΎ .

ΠΠΎΠΊΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅
ΠΠ° Π½ΠΈΠ²ΠΎ Kubernetes ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ°Π±ΠΎΡΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ²Π΅, Π½ΠΎ Π½Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ Π² Docker. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΡΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½, ΡΠ΅ Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΎΡ Docker, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Π΅ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ²ΠΎ Docker.
ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΡΠΈΡΠ°ΡΠ΅Π» Π·Π½Π°Π΅: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π² stdout / stderr, Π° Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°Ρ ΠΎΡ Docker Daemon ΠΈ ΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΡΠ½ΠΎ Ρ ΡΠ΅Π·ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄ΠΎ stdout/stderr. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΎ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ: ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΡΠ΅ ΠΈΠ·Π΄ΡΠ²Π° ΠΎΡ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠΈΡ ΠΆΡΡΠ½Π°Π» (ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½ΡΠΌΠ° Logrotate Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°), Π° Docker Daemon Π½Π΅ Π΅ Π½Π°ΡΡΠ½ΠΎ Ρ ΡΠΎΠ·ΠΈ ΠΆΡΡΠ½Π°Π».
Docker ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ΅Π·ΠΏΠ»Π°ΡΠ½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° Docker (CE) ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΊΠΎΠΌΠ΅ΡΡΠΈΠ°Π»Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Docker Enterprise (EE).

ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» Docker EE Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°: Π² Southbridge ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΊΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Docker EE.
Π Π΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΉΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π² Docker CE:
ΠΌΠ΅ΡΡΠ΅Π½ - Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Docker Daemon;
json ΡΠ°ΠΉΠ» - ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° json-log Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ;
ΠΆΡΡΠ½Π°Π» - ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΡΠΌ ΠΆΡΡΠ½Π°Π»Π°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Docker ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° daemon.json.
ΠΠΎΠ»Π΅ΡΠΎ βlog-driverβ ΠΏΠΎΡΠΎΡΠ²Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ°, Π° ΠΏΠΎΠ»Π΅ΡΠΎ βlog-optsβ ΠΏΠΎΡΠΎΡΠ²Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ Π΅ ΡΠΊΠ°Π·Π°Π½ ΠΏΠ»ΡΠ³ΠΈΠ½ΡΡ βjson-fileβ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΆΡΡΠ½Π°Π»Π° Π΅ βmax-sizeβ: β10mβ; ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡΠΎΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ (Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΠΎΡΠ°ΡΠΈΡ) β βmax-fileβ: β3β; ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.

ΠΡΠΊΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΠΆΡΡΠ½Π°Π» ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΡΡΠ΅Π· ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° ΠΆΡΡΠ½Π°Π».
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π² Docker:

ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ°: ΠΠ½Π΅Π²Π½ΠΈΠΊ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΊΠ°ΡΠΎ json-ΡΠ°ΠΉΠ» ΡΡΠ·Π΄Π°Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΎΠ»Π΅ΠΊΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΆΡΡΠ½Π°Π»ΠΈ (Rsyslog, Fluentd, Logagent ΠΈ Π΄ΡΡΠ³ΠΈ) ΡΡΠ±ΠΈΡΠ°Ρ ΡΠ΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π³ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² Elastic, Sematext ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π² Kubernetes
ΠΠΏΡΠΎΡΡΠ΅Π½ΠΎ, ΡΡ Π΅ΠΌΠ°ΡΠ° Π·Π° Π»ΠΎΠ³Π²Π°Π½Π΅ Π² Kubernetes ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°: ΠΈΠΌΠ° ΠΏΠΎΠ΄, Π² Π½Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΆΡΡΠ½Π°Π»ΠΈ ΠΊΡΠΌ stdout / stderr. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Docker ΡΡΠ·Π΄Π°Π²Π° ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΡΠΈΡΠ°.

ΠΠ±ΠΌΠΈΡΠ»Π΅ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π² Kubernetes.
ΠΠ°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡΡΠ°. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ°Π²ΠΊΠ° Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅. ΠΠΊΠΎ Π½Π΅ Π·Π°ΠΏΠ°Π·Π²Π°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡΡΠ°, ΡΠΎΠ³Π°Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°ΡΠ° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ, ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΎ ΡΡΡ Π·Π°Π³ΡΠ±Π° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Kubernetes ΠΈΠΌΠ° ΠΊΠ»ΡΡ --previous, ΡΠΎΠΉ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Pod, Π½ΠΎ Π½Π΅ ΠΏΠΎ-Π΄ΡΠ»Π±ΠΎΠΊΠΎ.
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ. ΠΠΊΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ΅ Ρ ΠΎΡΡΠ²Π°Ρ Π² ΠΎΠ±Π»Π°ΡΠΈΡΠ΅, ΡΠΎΠ³Π°Π²Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΡΡ Π½Π° ΠΎΠ±Π»Π°ΠΊ Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠΊΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ Ρ Π°ΡΠ΄ΡΠ΅Ρ, ΡΠΎΠ³Π°Π²Π° Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π½ΡΠΌΠ°ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈΡΠ΅. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠ±ΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Rsyslog), Π° Π²ΡΠΎΡΠΈΡΡ - ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Docker (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ journal-bit Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΠΆΡΡΠ½Π°Π» Π½Π° Docker, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π½Π° journald). ΠΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ journal-bit - ΡΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ (ΠΏΠΎΡΠΎΡΠ΅ΡΠ΅ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΠΆΡΡΠ½Π°Π» Π½Π° Docker, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΆΡΡΠ½Π°Π»ΠΈ Π² journald), ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (CentOS 7 Π²Π΅ΡΠ΅ ΠΈΠΌΠ° systemd ΠΈ journald). Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ, Π½ΠΎ Π½Π΅ Π΅ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΠΊΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, journal-bit Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° Π·Π°Π±Π°Π²Ρ, ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ Π³ΡΠ±ΡΡ.
ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡ Π° - ΠΈ Π±Π΅ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½. Π CentOS 7 ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π·Π°ΡΠΈΡΠ΅Π½ΠΈ) ΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ°Ρ Π²ΡΠ² var-log ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Docker ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² json ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΡΠ΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ CentOS 7 ΠΈ Docker ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ³Π»ΠΎΠ±Π΅Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ.
Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ELK Stack ΡΡΠ°Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°: Elasticsearch, Logstash ΠΈ Kibana.
Elasticsearch ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Logstash ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ, Kibana Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΆΡΡΠ½Π°Π»ΠΈ ΠΈ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΡΡ . ELK Stack ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½ΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΡ ΠΌΠΈΠ½Π°Π²Π°. ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° Π·Π°ΡΠΎ.
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ΄ΠΎΠ²Π΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ° Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΡΡΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΈ Π½ΠΈΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π΅, ΠΊΠ°ΠΊΠ²ΠΎ Pod Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°, Π² ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°. ΠΡΠΎ Π·Π°ΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ.
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘ΠΌΠ΅ΡΠ½ΠΎ Π΅, Π½ΠΎ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Π΄Π²ΠΈΡΠ°Ρ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΡΠΎΡΠΈΡΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΡΡΠΏΠΈ, Π»Π΅ΡΡΡΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΡΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈΠ½ΠΈΡΡΠ°. ΠΠ΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΡΠ°ΠΉ Π΅ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ°ΡΡ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΡ ΡΡΠ°ΡΡΡ "ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅" ΠΈΠ»ΠΈ "Π³ΡΠ΅ΡΠΊΠ°". ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π½Π° nginx ΠΈΠ»ΠΈ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΡΠΎΠ³Π°Π²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ ΡΠ΅Π·ΠΈ, ΡΠΈΠΉΡΠΎ ΡΡΠ°ΡΡΡ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΎΡ 200. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΡΡΠ²Π΅Ρ: Π°ΠΊΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π½Π° Nginx, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ±ΡΠ°Π½ΠΈ.
ΠΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π½Π΅ΠΎΠ±ΠΌΠΈΡΠ»Π΅Π½ΠΎ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° Π½ΠΎΡΠΌΠ°Π»Π΅Π½ Π°Π½Π°Π»ΠΈΠ·. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π°Π½Π°Π»ΠΈΠ·ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅, Π° Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. Π’ΠΎΠ³Π°Π²Π° Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΡΠΎΡΠΈΡΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ ΠΊΠΎΠ΄ 200. ΠΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΡΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ: ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΈ Π·Π° ΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π°ΡΠΎΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ Π½Π°ΠΉ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Prometheus, Π½ΡΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅.
Π ΡΠ°Π·ΠΈ Π»Π΅ΠΊΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°: Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½, Π° Π²ΡΠΎΡΠΈΡΡ Π½Π°Π±ΠΈΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΡΡ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ, Π½ΠΎ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π½ΡΠΌΠ° Π΄Π° Π³ΠΈ Π·Π°ΡΡΠ³Π°ΠΌΠ΅.
ΠΠΌΠ°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±ΡΡΠ΄Π΅Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅, Π²Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π² Kubernetes Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

ΠΠ½Π΅Π²Π½ΠΈΠΊΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΎΡΡΠ°Π²Π°, ΡΠΎΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π°Π³Π΅Π½Ρ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π²Π·ΠΈΠΌΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ (Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° - Π² Backend Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅). ΠΠ³Π΅Π½ΡΡΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π½Π° Kubernetes.
Π‘Π΅Π³Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅.
ΠΡΠ°ΡΠ°Π½Π° ΠΠΎΠΊΠΈ
ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½Π°ΡΠΊΠΎΡΠΎ, Π½ΠΎ Π²Π΅ΡΠ΅ ΡΡΠ°Π½Π° Π΄ΠΎΡΡΠ° ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°: Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ, Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Elasticsearch, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² TSDB (Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅). Π ΠΌΠΈΠ½Π°Π»Π°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΏΠΈΡΠ°Ρ , ΡΠ΅ Prometheus ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°ΠΊΠ°Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π°ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄ΠΎΡΠΈ ΡΠ²ΡΡΠ΄ΡΡ, ΡΠ΅ ΠΠΎΠΊΠΈ Π΅ βΠΡΠΎΠΌΠ΅ΡΠ΅ΠΉ Π·Π° ΡΠ²Π΅ΡΠ° Π½Π° Π΄ΡΡΠ²ΠΎΠ΄ΠΎΠ±ΠΈΠ²Π°β.
ΠΠ°Π»ΠΊΠΎ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π·Π° TSDB Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ΅Π»ΠΈ : TSDB Π²ΡΡΡΠΈ ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΠΈ, Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠΊΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π²Π΅ ΡΠ΅Π΄ΠΌΠΈΡΠΈ, ΡΠΎΠ³Π°Π²Π° Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ ΠΈΠΌ Π² Π΄ΡΡΠ³Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
ΠΡΡΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π½Π° Loki Π΅, ΡΠ΅ Grafana ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ½ΠΎΠ³ΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ: Π² Grafana ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ Π½Π° ΡΡΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΠΊΠ°ΡΠΎ ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Loki, ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅. ΠΠ½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Loki ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:

Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° DaemonSet ΡΠ΅ Π²Π½Π΅Π΄ΡΡΠ²Π° Π°Π³Π΅Π½Ρ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ - Promtail ΠΈΠ»ΠΈ Fluent Bit. ΠΠ³Π΅Π½ΡΡΡ ΡΡΠ±ΠΈΡΠ° Π΄Π½Π΅Π²Π½ΠΈΡΠΈ. ΠΠΎΠΊΠΈ Π³ΠΈ Π²Π·Π΅ΠΌΠ° ΠΈ Π³ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² ΡΠ²ΠΎΡΡΠ° TSDB. ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π²Π΅Π΄Π½Π°Π³Π° ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ: ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ²Π΅, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°, ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π΄ΠΎΡΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ.
Loki ΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΠΎΠ·Π½Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Grafana. Loki Π΄ΠΎΡΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, Π½Π°ΡΠ΅ΡΠ΅Π½ LogQL, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎ ΠΈΠΌΠ΅ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° PromQL Π² Prometheus. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Π½Π° Loki ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ°Π½ΠΈ ΡΡΡ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³ΠΈ Π·Π½Π°Π΅ΡΠ΅ Π½Π°ΠΈΠ·ΡΡΡ.

ΠΠΎΠΊΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° Grafana
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΈΠ»ΡΡΠΈ, ΠΠΎΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ (β400β, β404β ΠΈ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΡΠ³ΠΈ); ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΡΠ΅Π»ΠΈΡ Π²ΡΠ·Π΅Π»; ΡΠΈΠ»ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π΄ΡΠΌΠ°ΡΠ° "Π³ΡΠ΅ΡΠΊΠ°". ΠΠΊΠΎ ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°, ΡΠ΅ ΡΠ΅ ΠΎΡΠ²ΠΎΡΠΈ ΠΊΠ°ΡΡΠ° Ρ ΡΡΠ»Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ.
ΠΠΎΠΊΠΈ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΈΠ·Π²Π°Π΄ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΡΡΠΏΠΈ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅, ΡΠ΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅. Π‘Π΅Π³Π° ΠΠΎΠΊΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΈ Π½Π°Π±ΠΈΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡ.
Elastic + Fluent Bit + Kibana (EFK Stack)
EFK ΡΡΠ΅ΠΊΡΡ Π΅ ΠΏΠΎ-ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΡΡΡΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅.
Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π±Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ELK (Elasticsearch + Logstash + Kibana), Π½ΠΎ ΡΠΎΠ·ΠΈ ΡΡΠ΅ΠΊ Π΅ ΠΎΡΡΠ°ΡΡΠ» ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈΡ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΡΠΊ Logstash. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎ-Π»Π΅ΠΊΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π΅Π½ Fluentd ΠΈ ΡΠ»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΎΠΉ Π΄ΠΎΠΉΠ΄Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡ - ΠΎΡΠ΅ ΠΏΠΎ-Π»Π΅ΠΊ ΠΈ ΠΎΡΠ΅ ΠΏΠΎ-ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π΅Π½ Π°Π³Π΅Π½Ρ-ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ.
Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, Fluent Bit Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 100 ΠΏΡΡΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΎΡ Fluentd: βΠΊΡΠ΄Π΅ΡΠΎ Fluentd ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 20 MB RAM, Fluent Bit ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 150 KBβ - Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΡΠΈΡΠ°Ρ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°. ΠΠ»Π΅Π΄Π°ΠΉΠΊΠΈ ΡΠΎΠ²Π°, Fluent Bit ΡΡΠ°Π½Π° ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½.
Fluent Bit ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Fluentd, Π½ΠΎ ΠΏΠΎΠΊΡΠΈΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Fluent Bit.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ΅ΠΊΡΡ EFK: Π°Π³Π΅Π½ΡΡΡ ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅ (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ DaemonSet, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ) ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (Elasticsearch, PostgreSQL ΠΈΠ»ΠΈ Kafka). Kibana ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΡΡΠ»Π°ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠ°ΠΌ.

ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΌΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈ, ΡΠΈΠ»ΡΡΠΈ ΠΈ Π΄Ρ.

ΠΠ½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.

Π€ΡΠ½ΠΊΡΠΈΠΈ Π½Π° Fluent Bit
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Fluent Bit ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΡΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Logstash, Π½Π΅ΠΊΠ° Π³ΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡΠ±Π»ΠΈΠ·ΠΎ. Fluent Bit ΠΌΠΎΠΆΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 6 ΠΌΠΎΠ΄ΡΠ»Π°, ΠΊΠ°ΡΠΎ ΠΊΡΠΌ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Fluent Bit.

ΠΡ ΠΎΠ΄Π΅Π½ ΠΌΠΎΠ΄ΡΠ» ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π΄ΠΎΡΠΈ ΠΎΡ tcp-ΡΠΎΠΊΠ΅Ρ (ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΡΠ°ΠΉΠ½Π° ΡΠΎΡΠΊΠ° ΠΈ Fluent Bit ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° ΠΎΡΠΈΠ²Π° ΡΠ°ΠΌ). Π’Π΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°ΠΊΡΠΎ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅.
Π ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈ Π² ΠΏΠ°ΠΏΠΊΠ° Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅) ΠΈ (ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ ΠΎΡ ΠΊΠΎΠΈ ΡΡΠ»ΡΠ³ΠΈ Π΄Π° ΡΡΠ±ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅).
ΠΠ°ΡΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ» ΠΏΡΠΈΠ²Π΅ΠΆΠ΄Π° Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ Π² ΠΎΠ±Ρ ΠΈΠ·Π³Π»Π΅Π΄. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Nginx ΡΠ° Π½ΠΈΠ·. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° ΡΠΎΠ·ΠΈ Π½ΠΈΠ· ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ Π² JSON: Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ»Π΅ΡΠ°ΡΠ° ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. Π Π°Π±ΠΎΡΠ°ΡΠ° Ρ JSON Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½Π° ΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅.
Π€ΠΈΠ»ΡΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ». ΠΠ° ΡΠΎΠ²Π° Π½ΠΈΠ²ΠΎ ΡΠ΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Ρ Π½Π΅Π½ΡΠΆΠ½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎ ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° βΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅β ΠΈΠ»ΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ. ΠΠ·Π±ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ Π±ΡΡΠ΅ΡΠΈΡΠ°Ρ.
ΠΡΡΠ΅ΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ». Fluent Bit ΠΈΠΌΠ° Π΄Π²Π° ΡΠΈΠΏΠ° Π±ΡΡΠ΅Ρ: Π±ΡΡΠ΅Ρ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π±ΡΡΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ°. ΠΡΡΠ΅ΡΡΡ Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΈΡΠΊΠ° Π΄Π° ΡΠΏΠ΅ΡΡΠΈ ΠΎΡ RAM, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·Π±ΠΈΡΠ° Π΄ΠΈΡΠΊΠΎΠ² Π±ΡΡΠ΅Ρ. ΠΠΎ ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΎΡΠΈΠ΄Π°Ρ Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΡΠ°Π·ΡΠΎΠ²Π°ΡΠ²Π°Ρ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠΎΠ΄ΡΠ» Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅/ΠΈΠ·Ρ ΠΎΠ΄ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄ΠΎ Elasticsearch, PostgreSQL ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Kafka.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΎΡ Fluent Bit ΠΊΡΠΌ Fluentd. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΈΡΡ Π΅ ΠΏΠΎ-Π»Π΅ΠΊ ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° Fluentd ΠΈ Π²Π΅ΡΠ΅ ΡΠ°ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π΄ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
ΠΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Elasticsearch...
Π Π½Π°ΠΊΡΠ°Ρ, Π΄Π²Π° ΡΡΠ²Π΅ΡΠ° Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Elasticsearch ΠΊΠ°ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΆΡΡΠ½Π°Π»ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ.
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΈ Ρ . Π’Π°Π·ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈΠ·ΠΎΠ»ΠΈΡΠ° Π²Π°ΠΆΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΠ±ΡΠΈΡ ΠΏΠΎΡΠΎΠΊ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΡΡ Π² ΠΏΠΎΡΠ°ΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΠΊΠ°Π½Π°Π». ΠΡΡΠ½ΠΎ, Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡΠ΄Π°Π²Π½Π° .
- ΠΠ°Π²ΡΡΡΠ΅ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ API Π½Π° Elasticsearch. Π‘Π°ΠΌΠ°ΡΠ° Elastic ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ΅ΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΠΏΠΊΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π½ΡΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅: ΠΌΠ°Π»ΠΊΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ ΡΠ»Π΅Π΄ Π΄Π²Π΅ ΡΠ΅Π΄ΠΌΠΈΡΠΈ - Π°ΠΊΠΎ Π΅ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΊΡΠΈΡΠΈΡΠ΅Π½, ΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π·Π° Π΄Π²Π΅ ΡΠ΅Π΄ΠΌΠΈΡΠΈ. Π Π΅ΠΊΡΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π½ΡΠΊΡΠ΄Π΅ Π·Π° Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. Π§ΡΡ Π·Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠ°Π·ΡΡ Π΄ΠΎ 5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΠΈΡΠ½ΠΎ Π°Π· Π½Π΅ ΡΡΠΌ ΡΡΠ΅ΡΠ°Π» ΡΠΎΠ²Π°, Π½ΠΎ Π½Π΅ Π±ΠΈΡ ΠΏΡΠΈΡΠ°Π²Π½ΡΠ²Π°Π» ΡΠ°ΠΊΠ°Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π΄ΠΎΡΠΈ Π΄Π° Π³ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌ ΠΎΡΠ΄Π΅Π»Π½ΠΎ.
ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ...
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΡΠ΅Π» ΠΠ±ΡΠ°Π΅Π², ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½ Kubernetes Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° , Π»Π΅ΠΊΡΠΎΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΊΡΡΡΠΎΠ²Π΅ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com
