Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Prometheus: ΠΡΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ°ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° β ΠΎΠ±Ρ Π²Π°ΡΠ°ΡΠ° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ β Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ. Π’ΠΎ Π΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ. Prometheus, Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ΅ Π΅ ΡΡΠ²ΡΡΠ΄ΠΈΠ» ΠΊΠ°ΡΠΎ Π΅Π΄Π½ΠΎ ΠΎΡ Π½Π°ΠΉ-ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π² ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ SoundCloud ΠΈ ΡΠ΅Π³Π° Π·Π°Π²ΡΡΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Cloud Native Computing Foundation (CNCF), Prometheus ΡΠ΅ ΠΏΠΎΠ»Π·Π²Π° Ρ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΈ Π΅ΠΊΠΈΠΏΠΈ ΠΏΠΎ ΡΠ΅Π»ΠΈΡ ΡΠ²ΡΡ. Π’ΠΎΠ²Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅: ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Prometheus, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ ΠΏΡΠ»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ° β Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Node Exporter, Grafana ΡΠ°Π±Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Prometheus?
Prometheus Π΅ ΠΌΠΎΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π° ΡΡΠ±ΠΈΡΠ°, ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈ Π·Π°ΡΠ²ΡΠ²Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ β ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½ΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ. Π’Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΅ΠΊΠΈΠΏΠΈΡΠ΅ Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π·Π΄ΡΠ°Π²Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΠΈ Π΄Π° Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΈ ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΄Π° Π΅ΡΠΊΠ°Π»ΠΈΡΠ°Ρ Π² ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Prometheus
| Π€ΡΠ½ΠΊΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| ΠΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ | ΠΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΠΈ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ |
| ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π· ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ (Pull-Based) | Prometheus Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ°ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄Π°Π½Π½ΠΈ |
| PromQL | ΠΡΠ²ΠΊΠ°Π² ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅Π»Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅, Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ |
| ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Alertmanager | ΠΠ΅ΡΠΈΠ½ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΡΠ°Π³ΠΎΠ²Π΅, ΠΈ Π½Π°ΡΠΎΡΠ²Π°ΠΉΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΊΡΠΌ ΠΈΠΌΠ΅ΠΉΠ», Slack, PagerDuty ΠΈ Π΄ΡΡΠ³ΠΈ |
| ΠΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π° ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΡΠ΅Π»ΠΈ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΊΠ°ΡΠΎ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ |
| ΠΠ½ΠΎΠ³ΠΎΠΈΠ·ΠΌΠ΅ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ | ΠΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΡΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ ΡΠ΅Π³ΠΈΠΎΠ½, ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π° |
Π’Π΅Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ°Π²ΡΡ Prometheus ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΠΈΠ·Π±ΠΎΡ Π·Π° Π΅ΠΊΠΈΠΏΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π½Π° VPS Ρ ΠΎΡΡΠΈΠ½Π³, ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π° bare-metal ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Prometheus
Prometheus ΡΠ»Π΅Π΄Π²Π° ΡΠΈΡΡΠ°, Π΄ΠΎΠ±ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΅ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π°.
ΠΡΠ½ΠΎΠ²Π΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ
- Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ (Scraping): Prometheus ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° HTTP Π·Π°ΡΠ²ΠΊΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ β ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΊΠ°ΡΠΎ *exporters* β Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ. ΠΠ½ΡΠ΅ΡΠ²Π°Π»ΡΡ Π½Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ.
- Π‘ΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅: Π‘ΡΠ±ΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ (TSDB) Π½Π° Prometheus. ΠΡΡΠΊΠ° ΡΠΎΡΠΊΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ Π½ΠΎΡΠΈ Unix Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
- ΠΠ°ΡΠ²ΠΊΠΈ Ρ PromQL: ΠΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ PromQL Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»Π° ΠΈΠ»ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ.
- Π’ΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ: ΠΠΎΠ³Π°ΡΠΎ Π΄Π°Π΄Π΅Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠ° Π½Π°Π΄Ρ Π²ΡΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ ΠΏΡΠ°Π³, Prometheus ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄ΠΎ Alertmanager, ΠΊΠΎΠΉΡΠΎ Π΄Π΅Π΄ΡΠ±Π»ΠΈΡΠ°, Π³ΡΡΠΏΠΈΡΠ° ΠΈ Π½Π°ΡΠΎΡΠ²Π° ΠΈΠ·Π²Π΅ΡΡΠΈΡΡΠ° ΠΊΡΠΌ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠ°Π½Π°Π»ΠΈ.
ΠΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ (pull-based) Π΅ ΡΡΠ·Π½Π°ΡΠ΅Π»Π΅Π½ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅Π½ ΠΈΠ·Π±ΠΎΡ. Π’ΠΎΠΉ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ (ΡΠ΅Π»ΠΈΡΠ΅ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ ΠΈΠ·Ρ ΠΎΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Π½ΡΡΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ), ΠΏΡΠ°Π²ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π° ΠΈ ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎΠ±ΡΠ΅ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Prometheus
Prometheus Π΅ ΠΌΠΎΠ΄ΡΠ»Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° ΡΠΎΠ»Ρ:
1. Prometheus ΡΡΡΠ²ΡΡ
Π¦Π΅Π½ΡΡΠ°Π»Π½ΠΈΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π», ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ ΡΠ΅Π»ΠΈΡΠ΅, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌ Π² TSDB, ΠΎΡΠ΅Π½ΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ΡΠΎ Π½Π° PromQL API ΠΈ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
2. Exporters
Exporters ΡΠ° Π»Π΅ΠΊΠΈ Π°Π³Π΅Π½ΡΠΈ ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Prometheus ΡΠΎΡΠΌΠ°Ρ. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ exporters Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- Node Exporter β Π‘ΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΠΈ OS Π½ΠΈΠ²ΠΎ: CPU, ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΈΡΠΊΠΎΠ² I/O, ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
- Blackbox Exporter β ΠΡΠΎΠ²Π΅ΡΡΠ²Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΠΏΠΎ HTTP, HTTPS, DNS, TCP ΠΈ ICMP Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ ΠΈ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ
- Database Exporters β Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ exporters Π·Π° PostgreSQL, MySQL, Redis, MongoDB ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ
- Application-Specific Exporters β ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΉΠΌΡΡΡΠΊΠΎΠ²Π΅ ΠΈΠ·Π»Π°Π³Π°Ρ ΠΊΡΠ°ΠΉΠ½Π° ΡΠΎΡΠΊΠ°
/metricsΠ½Π°ΡΠΈΠ²Π½ΠΎ
3. Alertmanager
Π£ΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΏΡΠ»Π½ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½ ΡΠΈΠΊΡΠ» Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ°: ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ Prometheus, ΡΡΡ Π½ΠΎΡΠΎ Π΄Π΅Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ ΠΈ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅, ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π·Π°Π³Π»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ ΠΈΠ½Ρ ΠΈΠ±ΠΈΡΠ°Π½Π΅, ΠΈ Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΊΡΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠ°ΡΠΎ Slack, ΠΈΠΌΠ΅ΠΉΠ», PagerDuty ΠΈΠ»ΠΈ OpsGenie.
4. PromQL (Prometheus Query Language)
Π‘ΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. PromQL ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈ, Π²Π΅ΠΊΡΠΎΡΠΈ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π·Π°ΡΠ²ΠΊΠΈ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π²ΠΈ Π΄ΡΠ»Π±ΠΎΠΊΠ° Π°Π½Π°Π»ΠΈΡΠΈΡΠ½Π° ΠΌΠΎΡ Π²ΡΡΡ Ρ Π²Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
5. Pushgateway
ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½ΠΈ (Π½Π°ΠΏΡ. cron Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ). Π’Π΅Π·ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΡΠΌ Pushgateway, ΠΊΠΎΠΉΡΠΎ Prometheus ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ° Π½Π° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈΡ ΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π».
6. Grafana
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ°ΠΌΠΈΡ Prometheus, Grafana Π΅ Π΄Π΅ ΡΠ°ΠΊΡΠΎ ΡΠ»ΠΎΡΡ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Prometheus. Π’Ρ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Prometheus ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΎΠ³Π°ΡΠΈ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ°Π±Π»Π° Ρ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Prometheus Π½Π° Linux ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ°
Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΈ Π²ΠΎΠ΄ΠΈ ΠΏΡΠ΅Π· ΠΏΡΠ»Π½ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Prometheus Π½Π° Linux ΡΡΡΠ²ΡΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Node Exporter Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Grafana Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Alertmanager Π·Π° ΠΈΠ·Π²Π΅ΡΡΠΈΡ.
> ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ: Linux ΡΡΡΠ²ΡΡ (Ubuntu 20.04/22.04 ΠΈΠ»ΠΈ CentOS/RHEL 8+), Π΄ΠΎΡΡΡΠΏ sudo ΠΈΠ»ΠΈ root, ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΡΡΡΠ²ΡΡΠ½Π° ΡΡΠ΅Π΄Π°, ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ AlexHost VPS Ρ
ΠΎΡΡΠΈΠ½Π³ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π° ΠΎΡΠ½ΠΎΠ²Π° Ρ Π½ΠΈΡΠΊΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ.
Π‘ΡΡΠΏΠΊΠ° 1: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Prometheus
ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar -xvf prometheus-2.47.0.linux-amd64.tar.gz
cd prometheus-2.47.0.linux-amd64> Π‘ΡΠ²Π΅Ρ: ΠΠΈΠ½Π°Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Ρ Π²Π΅ΡΡΠΈΠΈ Π½Π° Prometheus Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ:
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo cp prometheus promtool /usr/local/bin/
sudo cp -r consoles console_libraries /etc/prometheus/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheusΠ‘ΡΠ·Π΄Π°ΠΉΡΠ΅ systemd ΡΡΠ»ΡΠ³Π° Π·Π° Prometheus:
sudo nano /etc/systemd/system/prometheus.serviceΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅:
[Unit]
Description=Prometheus Monitoring System
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus
--config.file=/etc/prometheus/prometheus.yml
--storage.tsdb.path=/var/lib/prometheus/
--web.console.templates=/etc/prometheus/consoles
--web.console.libraries=/etc/prometheus/console_libraries
--storage.tsdb.retention.time=30d
[Install]
WantedBy=multi-user.targetΠΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus:
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheusPrometheus Π²Π΅ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° http://your-server-ip:9090.
Π‘ΡΡΠΏΠΊΠ° 2: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Prometheus
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» Π΅ /etc/prometheus/prometheus.yml. Π’ΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ΅Π»ΠΈΡΠ΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΈΡΠΎ Prometheus Π½Π°Π±Π»ΡΠ΄Π°Π²Π°.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ:
global:
scrape_interval: 15s # Default scrape frequency
evaluation_interval: 15s # How often alerting rules are evaluated
scrape_timeout: 10s
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files:
- "/etc/prometheus/rules/*.yml"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]Π‘Π»Π΅Π΄ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ», Π²ΠΈΠ½Π°Π³ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅:
promtool check config /etc/prometheus/prometheus.yml
sudo systemctl restart prometheusΠ‘ΡΡΠΏΠΊΠ° 3: ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Node Exporter Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ
Node Exporter ΠΈΠ·Π»Π°Π³Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΈ OS ΠΎΡ Ρ ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° β ΠΎΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° CPU, Π½Π°ΡΠΈΡΠΊΠ° Π²ΡΡΡ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ.
ΠΠ·ΡΠ΅Π³Π»Π΅ΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Node Exporter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz
sudo cp node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/
sudo useradd --no-create-home --shell /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporterΠ‘ΡΠ·Π΄Π°ΠΉΡΠ΅ systemd ΡΡΠ»ΡΠ³Π° Π·Π° Node Exporter:
sudo nano /etc/systemd/system/node_exporter.service[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporterNode Exporter Π²Π΅ΡΠ΅ ΠΈΠ·Π»Π°Π³Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° http://your-server-ip:9100/metrics.
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ Node Exporter ΠΊΠ°ΡΠΎ ΡΠ΅Π» Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π² prometheus.yml:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node_exporter"
static_configs:
- targets: ["localhost:9100"]Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Prometheus ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ΅Π»ΡΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΡΠΎ UP Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° Prometheus ΠΏΠΎΠ΄ Status β Targets.
Π‘ΡΡΠΏΠΊΠ° 4: ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ Grafana
Grafana ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Prometheus Π² ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ, Π²ΠΈΠ·ΡΠ°Π»Π½ΠΎ Π±ΠΎΠ³Π°ΡΠΈ ΡΠ°Π±Π»Π°. Π’Ρ Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΡΠ»ΠΎΠΉ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ Π½Π° Prometheus.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Grafana Π½Π° Ubuntu/Debian:
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-serverΠ‘Π²ΡΡΠΆΠ΅ΡΠ΅ Prometheus ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ:
- ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ Grafana Π½Π°
http://your-server-ip:3000(Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ ΠΎΠ΄ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅:admin/admin) - ΠΠ°Π²ΠΈΠ³ΠΈΡΠ°ΠΉΡΠ΅ Π΄ΠΎ Configuration β Data Sources β Add data source
- ΠΠ·Π±Π΅ΡΠ΅ΡΠ΅ Prometheus
- ΠΠ°Π΄Π°ΠΉΡΠ΅ URL Π½Π°
http://localhost:9090 - ΠΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ Save & Test
ΠΠΌΠΏΠΎΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ ΡΠ°Π±Π»ΠΎ:
- ΠΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° Dashboards β Import
- ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ID Π½Π° ΡΠ°Π±Π»ΠΎΡΠΎ 1860 (Node Exporter Full) ΠΎΡ ΠΏΠ°Π·Π°ΡΠ° Π½Π° Grafana
- ΠΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ Prometheus ΠΈ ΠΊΠ»ΠΈΠΊΠ½Π΅ΡΠ΅ Import
ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π΅Π½ ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° CPU, ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡ I/O, ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° β Π²ΡΠΈΡΠΊΠΎ Π² Π΅Π΄Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±Π»ΠΎ.
Π‘ΡΡΠΏΠΊΠ° 5: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Alertmanager
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ° Π² Prometheus ΡΠ΅ ΡΡΡΡΠΎΡΡ ΠΎΡ Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² Prometheus, ΠΈ Alertmanager, ΠΊΠΎΠΉΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ°.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ:
sudo mkdir -p /etc/prometheus/rules
sudo nano /etc/prometheus/rules/system_alerts.ymlgroups:
- name: system_alerts
rules:
- alert: HighCPUUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage on {{ $labels.instance }}"
description: "CPU usage has exceeded 80% for more than 5 minutes. Current value: {{ $value }}%"
- alert: LowDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
for: 10m
labels:
severity: critical
annotations:
summary: "Low disk space on {{ $labels.instance }}"
description: "Available disk space on / is below 15%. Immediate action required."
- alert: HighMemoryUsage
expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 85
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage on {{ $labels.instance }}"
description: "Memory usage has exceeded 85% for more than 5 minutes."
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Instance {{ $labels.instance }} is down"
description: "Prometheus target {{ $labels.instance }} has been unreachable for more than 1 minute."ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°:
promtool check rules /etc/prometheus/rules/system_alerts.ymlΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Alertmanager:
wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz
tar -xvf alertmanager-0.26.0.linux-amd64.tar.gz
sudo cp alertmanager-0.26.0.linux-amd64/alertmanager /usr/local/bin/
sudo mkdir /etc/alertmanagerΠ‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Alertmanager:
sudo nano /etc/alertmanager/alertmanager.ymlglobal:
smtp_smarthost: 'smtp.yourdomain.com:587'
smtp_from: 'alerts@yourdomain.com'
smtp_auth_username: 'alerts@yourdomain.com'
smtp_auth_password: 'your_password'
route:
group_by: ['alertname', 'instance']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@yourdomain.com'
send_resolved: true> ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΠ° ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π² ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄Π° Π²ΠΈ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΡΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Prometheus Ρ AlexHost ΠΈΠΌΠ΅ΠΉΠ» Ρ ΠΎΡΡΠΈΠ½Π³ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° SMTP ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°.
Π Π°Π·ΡΠΈΡΠ΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ: ΠΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ
ΠΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ β ΠΊΠ°ΡΠΎ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΎΡΠΎΠ²Π΅ ΠΎΡ ΡΡΡΠ²ΡΡΠΈ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ β ΡΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΏΠΈΡΡΡΠΈ Ρ ΡΠ΅Π»ΠΈ Π±ΡΡΠ·ΠΎ ΡΡΠ°Π²Π°Ρ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΈ. Prometheus ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅:
scrape_configs:
- job_name: "kubernetes-pods"
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: trueΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Kubernetes, Consul, EC2, Azure, GCE, DNS-Π±Π°Π·ΠΈΡΠ°Π½ΠΎ ΠΎΡΠΊΡΠΈΡΠΈΠ΅ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎ-Π±Π°Π·ΠΈΡΠ°Π½ΠΎ ΠΎΡΠΊΡΠΈΡΠΈΠ΅ β ΠΏΡΠ°Π²Π΅ΠΉΠΊΠΈ Prometheus Π°Π΄Π°ΠΏΡΠΈΡΡΠ΅ΠΌ ΠΊΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ.
Π‘Π»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° Prometheus
Prometheus ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Π² ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅:
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°
Π‘ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡΡΠ²ΡΡ β CPU, ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΈΡΠΊ, ΠΌΡΠ΅ΠΆΠ° β ΠΎΡ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» Π²ΡΠ² Π²Π°ΡΠΈΡ ΡΠ»ΠΎΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ Dedicated ΡΡΡΠ²ΡΡ ΠΈΠ»ΠΈ Π³ΠΎΠ»ΡΠΌ ΠΊΠ»ΡΡΡΠ΅Ρ, Prometheus ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° (APM)
ΠΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅, Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ (ΠΌΠ΅ΡΠΎΠ΄ΡΡ RED) ΠΈ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ API. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° Prometheus ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° Go, Python, Java, Ruby, Node.js ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Kubernetes ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
Prometheus ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π½Π°ΡΠΈΠ²Π½ΠΎ Ρ Kubernetes ΡΡΠ΅Π· exporters kube-state-metrics ΠΈ cAdvisor, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ Π΄ΡΠ»Π±ΠΎΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ Π² Π·Π΄ΡΠ°Π²Π΅ΡΠΎ Π½Π° pod-ΠΎΠ²Π΅ΡΠ΅, ΠΊΠ²ΠΎΡΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΡΡΡΠΈ, ΡΡΠ°ΡΡΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠ»ΡΡΡΠ΅Ρ.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ
ΠΠ°Π±Π»ΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ»Π° ΠΎΡ Π²ΡΡΠ·ΠΊΠΈ, ΠΈΠ·ΠΎΡΡΠ°Π²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠΏΠ°Π΄Π΅Π½ΠΈΡ Π² ΠΊΠ΅ΡΠ° Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ PostgreSQL, MySQL ΠΈ Redis Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ exporters.
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΠΈΠ·Π»Π°Π³Π°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ β ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΠΎΡΡΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠ΅ΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π½ΠΈΠ²ΠΎ Π½Π°ΡΠ΅Π΄ Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° GPU Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ
ΠΠ° Π΅ΠΊΠΈΠΏΠΈ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Prometheus ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Ρ DCGM exporters Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° GPU, ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°ΡΠ°. Π’ΠΎΠ²Π° ΡΠ΅ ΡΡΡΠ΅ΡΠ°Π²Π° Π΄ΠΎΠ±ΡΠ΅ Ρ AlexHost GPU Ρ ΠΎΡΡΠΈΠ½Π³ Π·Π° AI ΠΈ ML ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°.
Prometheus ΡΡΠ΅ΡΡ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅
| Π€ΡΠ½ΠΊΡΠΈΡ | Prometheus | Nagios | Zabbix | Datadog |
|---|---|---|---|---|
| ΠΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ | ΠΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ Π΅ΡΠΈΠΊΠ΅ΡΠΈ | ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ | ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ | ΠΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Ρ ΡΠ°Π³ΠΎΠ²Π΅ |
| ΠΠΎΠ΄Π΅Π» Π½Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ | Pull (+ Pushgateway) | ΠΠΊΡΠΈΠ²Π½ΠΈ/ΠΠ°ΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ | ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° Π°Π³Π΅Π½Ρ | ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° Π°Π³Π΅Π½Ρ |
| ΠΠ·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ | PromQL | ΠΡΠΌΠ° | ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ | ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ |
| ΠΠ°ΡΠΈΠ²Π΅Π½ Π·Π° Kubernetes | ΠΠ° (ΠΏΡΡΠ²ΠΎΠΊΠ»Π°ΡΠ΅Π½) | ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ | ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ | ΠΠ° (ΠΏΠ»Π°ΡΠ΅Π½) |
| Π¦Π΅Π½Π° | ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½ / Π‘ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ | ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½ / Π‘ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ | ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½ / Π‘ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ | Π’ΡΡΠ³ΠΎΠ²ΡΠΊΠΈ SaaS |
| ΠΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ | ΠΠΈΡΠΎΠΊΠ° (Ρ Thanos/Cortex) | Π£ΠΌΠ΅ΡΠ΅Π½Π° | Π£ΠΌΠ΅ΡΠ΅Π½Π° | ΠΠΈΡΠΎΠΊΠ° |
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π°
ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Prometheus Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΡΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ°:
- Π‘ΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ: ΠΠ΅ΡΠΈΠΎΠ΄ΡΡ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ 15 Π΄Π½ΠΈ. ΠΠΎΡΠΈΠ³ΠΈΡΠ°ΠΉΡΠ΅
--storage.tsdb.retention.timeΠ²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅. ΠΠ° Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° Thanos ΠΈΠ»ΠΈ Cortex. - Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ: ΠΠ³ΡΠ°Π½ΠΈΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ API Π½Π° Prometheus Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠΊΡΠΈ (Nginx ΠΈΠ»ΠΈ Caddy) Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅. Prometheus Π½Π΅ Π²ΠΊΠ»ΡΡΠ²Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅.
- ΠΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ: ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΉΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Prometheus, ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΡΠ΅Π»ΠΈ Π·Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½ΠΎΡΡ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Alertmanager, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠΈΡ.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΎΡΡΡΠ°: ΠΠ·Π±ΡΠ³Π²Π°ΠΉΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΎΡΡ (Π½Π°ΠΏΡ. ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ID, ID Π½Π° Π·Π°ΡΠ²ΠΊΠΈ) Π² ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΡΠΈΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- TLS ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅: ΠΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ TLS Π·Π° ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΈ Prometheus API. Π‘ΡΡΠ΅ΡΠ°ΠΉΡΠ΅ ΡΠΎΠ²Π° Ρ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° Prometheus.
- ΠΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅: Prometheus Π΅ ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π΅Π½ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ RAM Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π±ΡΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠ±ΡΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 1β2 Π±Π°ΠΉΡΠ° Π½Π° ΠΈΠ·Π²Π°Π΄ΠΊΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
Π§Π΅ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ
Π: ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Prometheus ΠΈ Grafana?
Prometheus Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ΡΡ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ β ΡΠΎΠΉ ΡΡΠ±ΠΈΡΠ°, ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈ Π·Π°ΡΠ²ΡΠ²Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ. Grafana Π΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π·Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Prometheus (ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ) Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»Π°. Π’Π΅ ΡΠ° Π΄ΠΎΠΏΡΠ»Π²Π°ΡΠΈ ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π° Π½Π΅ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ.
Π: ΠΠΎΠΆΠ΅ Π»ΠΈ Prometheus Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π° Windows ΡΡΡΠ²ΡΡΠΈ?
ΠΠ°. Windows Exporter (ΠΏΡΠ΅Π΄ΠΈ WMI Exporter) ΠΈΠ·Π»Π°Π³Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Windows Π² ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Prometheus ΡΠΎΡΠΌΠ°Ρ, ΠΎΠ±Ρ Π²Π°ΡΠ°Ρ CPU, ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΈΡΠΊ, ΠΌΡΠ΅ΠΆΠ°, IIS ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
Π: ΠΠ°ΠΊ Prometheus ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ?
Π‘Π°ΠΌΠΈΡΡ Prometheus Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ. ΠΠ° Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ Π΄Π²Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ Prometheus ΡΡΡΠ²ΡΡΠ°, ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΡΠ΅Π»ΠΈ. Alertmanager ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π°ΡΠΈΠ²Π½ΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π·Π° Π΄Π΅Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° Prometheus.
Π: ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° PromQL?
PromQL (Prometheus Query Language) ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π² Prometheus. Π’ΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ, Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡ ΠΏΡΠΎΡΡΠΈ ΡΡΡΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Prometheus Π΅ ΠΈΠ·ΠΏΠΈΡΠ°Π½ΠΎ Π² Π±ΠΎΠΉΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π΄ΡΠ»Π±ΠΎΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π»ΠΈΡ Π²ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅Π½ ΡΡΠ΅ΠΊ. ΠΠ΅Π³ΠΎΠ²Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΠΌΠ½ΠΎΠ³ΠΎΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΡΠ½ΠΈΡΡ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ PromQL ΠΈ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ Grafana ΠΈ Alertmanager Π³ΠΎ ΠΏΡΠ°Π²ΡΡ Π·Π»Π°ΡΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ Linux ΡΡΡΠ²ΡΡ, ΡΠ»ΠΎΡ ΠΎΡ Dedicated ΡΡΡΠ²ΡΡΠΈ, Kubernetes ΠΊΠ»ΡΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, Prometheus ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π½ΡΠΆΠ΄ΠΈ. Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΡΡΡΠΏΠΊΠΈΡΠ΅ Π² ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ β ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Prometheus, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Node Exporter, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Grafana ΡΠ°Π±Π»Π° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ β ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅ Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ ΡΠ°Π½ΠΎ, Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅, ΠΈΡΠ΅ΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΡΡ Ρ ΡΠ°Π±Π»Π°ΡΠ° ΠΈ ΠΏΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π°ΡΡΠΈΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠΈ, ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π·ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ΡΠΎ Π΄ΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΠΎΠΉ Π½Π° Π²Π°ΡΠΈΡ ΡΡΠ΅ΠΊ. Prometheus Π½Π΅ Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ β ΡΠΎΠΉ Π΅ ΠΊΡΠ°ΠΉΡΠ³ΡΠ»Π΅Π½ ΠΊΠ°ΠΌΡΠΊ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ Π½Π° ΡΠ°ΠΉΡΠΎΠ²Π΅.
ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ»ΡΠ³ΠΈ