Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Prometheus
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΡΠ°Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ. Prometheus, Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Π΅Π΄Π½ΠΎ ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ SoundCloud, Prometheus Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Cloud Native Computing Foundation (CNCF) ΠΈ ΠΈΠΌΠ° ΡΠΈΡΠΎΠΊΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Prometheus, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΡΡΡΠΏΠΊΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Prometheus?
Prometheus Π΅ ΠΌΠΎΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ ΠΈ ΡΡΡΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. ΠΠ°Π½Π½ΠΈΡΠ΅, ΡΡΠ±ΡΠ°Π½ΠΈ ΠΎΡ Prometheus, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π½Π° Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΡΠΈ.
Prometheus Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅: Prometheus ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΏΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅.
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅: ΠΠΌΠ΅ΡΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ°, Prometheus ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠΎΠ΄Π΅Π», Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, Π·Π° Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ.
- ΠΠΎΡΠ΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ (PromQL): Prometheus ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΌΠΎΡΠ΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, PromQL, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ°Π²Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
- ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Prometheus ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Ρ Alertmanager Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ.
- ΠΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ: Prometheus ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π° ΠΈ ΡΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠΈ ΡΠ΅ ΡΡΠ΅Π΄ΠΈ, ΠΊΠ°ΡΠΎ Kubernetes.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Prometheus
Prometheus ΡΠ»Π΅Π΄Π²Π° ΠΏΡΠΎΡΡΠ°, Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ:
- Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ (Scraping): Prometheus ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΏΠΎ HTTP (Π½Π°ΡΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ), ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
- Π‘ΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅: Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±ΡΠ΄Π°Ρ ΡΡΠ±ΡΠ°Π½ΠΈ, Prometheus ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π² Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΡΡΠΊΠ° ΡΠΎΡΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π²ΡΠ΅ΠΌΠ΅Π²Π° ΠΌΠ°ΡΠΊΠ° ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π΅ΡΠΈΠΊΠ΅ΡΠΈ.
- ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Ρ PromQL: ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ°Π²ΡΡ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π·ΠΈΠΊΠ° Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π½Π° Prometheus, PromQL, Π·Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ, ΡΠ°Π±Π»Π° ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
- ΠΠΎΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ: ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Prometheus ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Alertmanager, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ», Slack, PagerDuty ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
Prometheus ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠΎΠ΄Π΅Π», Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ Π·Π° Prometheus. Π’ΠΎΠ²Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ ΡΠ° ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Prometheus
Prometheus ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΠ΅Π»:
- Prometheus Server: Π¦Π΅Π½ΡΡΠ°Π»Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ. Π’ΠΎΠΉ ΠΈΠ·ΡΡΡΡΠ³Π²Π° ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π² Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
- ΠΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ: Π’ΠΎΠ²Π° ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Prometheus ΡΠΎΡΠΌΠ°Ρ. ΠΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- ΠΠΊΡΠΏΠΎΡΡΡΠΎΡ Π½Π° Π²ΡΠ·Π»ΠΈ: Π‘ΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Ρ Π°ΡΠ΄ΡΠ΅Ρ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
- ΠΠΊΡΠΏΠΎΡΡΠ΅Ρ Π½Π° ΡΠ΅ΡΠ½Π° ΠΊΡΡΠΈΡ: ΠΠ° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΏΠΎ HTTP, DNS, TCP ΠΈ Π΄Ρ.
- Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ: ΠΠ½ΠΎΠ³ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (ΠΊΠ°ΡΠΎ PostgreSQL, MySQL) ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ.
- Alertmanager (ΠΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅): Prometheus ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Alertmanager Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΠΎΡΠ²Π° ΡΠΈΠ³Π½Π°Π»ΠΈΡΠ΅ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ, ΠΊΠ°ΡΠΎ Slack, ΠΈΠΌΠ΅ΠΉΠ» ΠΈΠ»ΠΈ SMS, ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π·Π°Π³Π»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅.
- PromQL (Prometheus Query Language): ΠΠΎΡΠ΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.
- Pushgateway: ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΠΈΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π·ΠΊΡΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠ΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΡΡΡΠ³Π²Π°Π½Π΅ (Π½Π°ΠΏΡ. ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ). Pushgateway ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠ΅Π·ΠΈ Π·Π°Π΄Π°ΡΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΡΠΌ Prometheus.
- Grafana: ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ°ΠΌΠΈΡ Prometheus, Grafana Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Prometheus ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π‘ΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ° Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Prometheus
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΡΠΎΠΈΡΠ΅ Prometheus Π½Π° Linux ΡΡΡΠ²ΡΡ ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ:
Π‘ΡΡΠΏΠΊΠ° 1: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Prometheus
- ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ Prometheus: ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π·Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈ Π΅ΠΊΡΡΡΠ°Ρ
ΠΈΡΠ°ΡΠ΅ Prometheus: ΠΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° Prometheus, Π·Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz tar -xvf prometheus-2.32.1.linux-amd64.tar.gz cd prometheus-2.32.1.linux-amd64 - Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus: ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Prometheus:
./prometheus --config.file=prometheus.ymlΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Prometheus ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΠΎΡΡ 9090 ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΡ, ΠΊΠ°ΡΠΎ ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° http://localhost:9090 Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠΈ.
Π‘ΡΡΠΏΠΊΠ° 2: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Prometheus
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Prometheus ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· ΡΠ°ΠΉΠ»Π° prometheus.yml. Π’ΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» ΡΠΊΠ°Π·Π²Π° Π½Π° Prometheus ΠΊΠΎΠΈ ΡΠ΅Π»ΠΈ (ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ) Π΄Π° ΠΎΡΡΡΡΠ³Π²Π° ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ.
ΠΡΠΎ Π΅Π΄Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»Π° prometheus.yml:
# ΠΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΎΡΡΡΡΠ³Π²Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] # Π‘ΠΊΡΠ΅ΠΏΠΈ ΡΠ°ΠΌΠΈΡ PrometheusΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠ΅ ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈ Prometheus Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° Π³ΠΈ ΡΠΊΡΠ΅ΠΏΠΈ.
Π‘ΡΡΠΏΠΊΠ° 3: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π½ΠΎΡΠΈΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·Π»ΠΈ (Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ)
ΠΠ° Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π΄ΠΈΡΠΊΠ° ΠΈ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Node Exporter.
- ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64 - Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Node Exporter: ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Node Exporter:./node_exporter
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Node Exporter ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π° ΠΏΠΎΡΡ 9100 ΠΈ ΡΠ°Π·ΠΊΡΠΈΠ²Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Prometheus Π·Π° ΠΎΡΡΡΡΠ³Π²Π°Π½Π΅ Π½Π° Node Exporter: ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» prometheus.yml:
scrape_configs: - job_name: 'node_exporter' static_configs: - ΡΠ΅Π»ΠΈ: ['localhost:9100'] - Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus: Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ», ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Node Exporter.
Π‘ΡΡΠΏΠΊΠ° 4: ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Ρ Grafana
ΠΠ° Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Prometheus, Grafana Π΅ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π’ΠΎΠΉ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ Ρ Prometheus ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°Π±Π»Π°.
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Grafana: ΠΠ° Linux ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Grafana, ΠΊΠ°ΡΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡΠ° Grafana.
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ: Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Grafana:
- ΠΠ»Π΅Π·ΡΠ΅ Π² Grafana (http://localhost:3000).
- ΠΡΠΈΠ΄Π΅ΡΠ΅ Π² Configuration (ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ) > Data Sources (ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ) ΠΈ Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Prometheus ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ (http://localhost:9090).
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅: Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ°Π±Π»Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠ°Π·Π°ΡΠ° Π½Π° Grafana, Π·Π° Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ Π΄Ρ.
Π‘ΡΡΠΏΠΊΠ° 5: ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΈ
Prometheus Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΡΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°, ΠΌΠ°Π»ΠΊΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΡΡΠΈΠ²ΠΎΠ²Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- ΠΠ΅ΡΠΈΠ½ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π°Π»Π°ΡΠΌΠΈΡΠ°Π½Π΅: Π‘ΠΈΠ³Π½Π°Π»ΠΈΡΠ΅ ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ°ΠΉΠ» rules.yml. ΠΡΠΎ Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π΅ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ ΠΎΡ 80%:
ΠΈΠΌΠ΅: example_alerts ΠΏΡΠ°Π²ΠΈΠ»Π°: - alert: HighCPUsage expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m Π΅ΡΠΈΠΊΠ΅ΡΠΈ: ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎΡΡ: ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ: ΡΠ΅Π·ΡΠΌΠ΅: "High CPU usage detected on {{ $labels.instance }}" ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅: "ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π΅ Π½Π°Π΄ 80% Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 5 ΠΌΠΈΠ½ΡΡΠΈ." - ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Alertmanager: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Alertmanager, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ», Slack ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Π‘Π»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π·Π° Prometheus
Prometheus ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ:
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°: Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠΈ, Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π·Π° Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π²ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ.
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΊΠ°ΡΠΎ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ, ΡΠ΅ΡΡΠΎΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ.
- ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes: Prometheus ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π½Π°ΡΠΈΠ²Π½ΠΎ Ρ Kubernetes ΠΈ ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π° ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΠΊΠ°ΠΏΡΡΠ»ΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π° Kubernetes.
- ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ: Prometheus Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΡΠ°Π·ΠΊΡΠΈΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π΄ΡΠ»Π±ΠΎΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Prometheus Π΅ ΠΌΠΎΡΠ½ΠΎ ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π²Π°Π½Π΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ Π½ΠΈΠ²ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΡΠ²ΠΈΡΠΈ, Prometheus Π΅ ΡΠ΅Π½Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ ΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°.
ΠΠ°ΡΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ΅ ΡΡΡΠΏΠΊΠΈΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ Prometheus, Π΄Π° ΡΡΠ±ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Grafana. Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Prometheus ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° Π·Π° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈΡΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ ΠΈ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°ΡΠ΅ Π±ΡΡΠ·ΠΎ Π½Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΡΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΠ°Π±ΠΎΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
