O'zbek

Prometheus va Grafana bilan metrikalar yig'ishni o'rganing. Ushbu kuchli ochiq kodli vositalar bilan ilovalaringiz va infratuzilmani samarali kuzating.

Metrikalar Yig'ish: Prometheus va Grafana bilan To'liq Qo'llanma

Bugungi murakkab IT landshaftida ilovalar va infratuzilmaning sog'lig'ini va unumdorligini saqlash uchun samarali monitoring juda muhimdir. Metrikalar yig'ish ushbu monitoringning asosini tashkil etadi, bu sizga asosiy unumdorlik ko'rsatkichlarini (KPI) kuzatish, potentsial muammolarni aniqlash va resurslardan foydalanishni optimallashtirish imkonini beradi. Ushbu keng qamrovli qo'llanma kuchli ochiq kodli vositalar bo'lgan Prometheus va Grafanadan foydalangan holda metrikalar yig'ish va vizualizatsiya qilish usullarini o'rganadi.

Metrikalar Yig'ish Nima?

Metrikalar yig'ish vaqt o'tishi bilan turli tizimlar, ilovalar va infratuzilma komponentlarining holati va xulq-atvorini aks ettiruvchi raqamli ma'lumotlarni yig'ishni o'z ichiga oladi. Ushbu metrikalar CPU foydalanish, xotira iste'moli, tarmoq trafigi, javob vaqtlari, xatolik darajalari va boshqa ko'plab tegishli ko'rsatkichlarni o'z ichiga olishi mumkin. Ushbu metrikalarni tahlil qilish orqali siz o'z muhitingizning unumdorligi va holati haqida qimmatli ma'lumotlarga ega bo'lishingiz mumkin.

Metrikalar Yig'ish Nima uchun Muhim?

Prometheus va Grafanani Tanishtirish

Prometheus – bu SoundCloudda ishlab chiqilgan ochiq kodli tizimlar monitoringi va ogohlantirish vositalari to'plamidir. U vaqt seriyalari ma'lumotlarini yig'ish va saqlashda ustunlik qiladi, bu vaqt belgilari bilan indekslangan ma'lumotlardir. Prometheus muntazam intervallarda nishonlardan (masalan, serverlar, ilovalar) metrikalarni tortib olish uchun tortish asosidagi modeldan foydalanadi. U to'plangan ma'lumotlarni tahlil qilish va ogohlantirish qoidalarini aniqlash uchun kuchli so'rov tiliga (PromQL) ega.

Grafana – bu ochiq kodli ma'lumotlarni vizualizatsiya qilish va monitoring platformasi. U Prometheus kabi turli manbalardan olingan ma'lumotlarni vizualizatsiya qilish uchun interaktiv panellarni va grafikani yaratishga imkon beradi. Grafana grafikalar, jadvallar, diagrammalar va gauge'lar kabi boy vizualizatsiya variantlarini taqdim etadi. Shuningdek, u ogohlantirishni qo'llab-quvvatlaydi, ma'lum chegaralar buzilganda bildirishnomalar olish imkonini beradi.

Birgalikda Prometheus va Grafana keng doiradagi muhitlar va foydalanish holatlariga moslashtirilishi mumkin bo'lgan kuchli va moslashuvchan monitoring yechimini tashkil qiladi. Ular butun dunyo bo'ylab DevOps va SRE (Sayt Ishonchliligi Muhandisligi) amaliyotlarida keng qo'llaniladi.

Prometheus Arhitekturasi va Konseptlari

Samarali joriy etish va foydalanish uchun Prometheusning asosiy komponentlarini tushunish muhimdir:

Prometheus Ish Jarayoni

  1. Nishonlar (Ilovalar, Serverlar va boshqalar) metrikalarni taqdim etadi. Ushbu metrikalar odatda HTTP endpoint orqali taqdim etiladi.
  2. Prometheus Server konfiguratsiya qilingan nishonlardan metrikalarni tortib oladi. U ushbu endpointlardan muntazam ravishda metrikalarni tortib oladi.
  3. Prometheus tortib olingan metrikalarni o'zining vaqt seriyalari ma'lumotlar bazasida saqlaydi.
  4. Foydalanuvchilar PromQL yordamida metrikalarni so'rashadi. Bu ularga ma'lumotlarni tahlil qilish va grafikalar hamda panellarni yaratish imkonini beradi.
  5. Saqlangan metrikalar asosida ogohlantirish qoidalari baholanadi. Agar qoida sharti bajarilsa, ogohlantirish ishga tushiriladi.
  6. Alertmanager ishga tushirilgan ogohlantirishlarni boshqaradi. U ularni takrorlanishini bartaraf etadi, guruhlaydi va tegishli bildirishnoma kanallariga yo'naltiradi.

Grafana Arhitekturasi va Konseptlari

Grafana to'plangan metrikalarni vizualizatsiya qilish va tahlil qilish uchun qulay interfeysni taqdim etish orqali Prometheusni to'ldiradi:

Grafana Ish Jarayoni

  1. Ma'lumot Manbalarini Konfiguratsiya Qilish: Grafanani Prometheus serveringizga ulang.
  2. Panellarni Yaratish: Metrikalaringizni vizualizatsiya qilish uchun panellarni loyihalashtiring.
  3. Panellarni Panellarga Qo'shish: PromQL so'rovlaridan foydalangan holda Prometheusdan ma'lum bir ma'lumot nuqtalarini ko'rsatish uchun panellarni qo'shing.
  4. Ogohlantirishni Konfiguratsiya Qilish (Majburiy emas): Ma'lum metrika chegaralari asosida bildirishnomalar olish uchun Grafana ichida ogohlantirish qoidalarini o'rnating.
  5. Panellarni Baham Ko'ring: Monitoring va tahlil qilish bo'yicha hamkorlik qilish uchun panellarni jamoangiz bilan baham ko'ring.

Prometheus va Grafanani O'rnatish

Ushbu bo'lim Prometheus va Grafanani o'rnatish bo'yicha qadam-baqadam qo'llanmani taqdim etadi.

Prometheusni O'rnatish

1. Prometheusni Yuklab Oling:

Prometheusning so'nggi versiyasini rasmiy veb-saytdan yuklab oling: https://prometheus.io/download/. Operatsion tizimingiz uchun mos paketni tanlang (masalan, Linux, Windows, macOS).

2. Arxivni Chiqarish:

Yuklab olingan arkhivni xohlagan katalogingizga chiqaring.

3. Prometheusni Konfiguratsiya Qilish:

`prometheus.yml` konfiguratsiya faylini yarating. Ushbu fayl Prometheus tortib oladigan nishonlarni va boshqa konfiguratsiya variantlarini aniqlaydi. Oddiy konfiguratsiya quyidagicha bo'lishi mumkin:


global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

Ushbu konfiguratsiya ikkita tortish ishini aniqlaydi: biri Prometheusning o'zi uchun (o'z metrikalarini tortib olish) va biri localhost port 9090 portida ishlayotgan node_exporter uchun. `scrape_interval` Prometheusning nishonlarni qancha tez-tez tortib olishini belgilaydi.

4. Prometheusni Ishga Tushirish:

Arkhivni chiqargan katalogingizdan Prometheus ijro etuvchi faylini ishga tushiring:

./prometheus --config.file=prometheus.yml

Prometheus ishga tushadi va standart bo'lib 9090 portida tinglaydi. Prometheus veb-interfeysiga brauzeringizda http://localhost:9090 manzilida kirishingiz mumkin.

Grafanani O'rnatish

1. Grafanani Yuklab Oling:

Grafananing so'nggi versiyasini rasmiy veb-saytdan yuklab oling: https://grafana.com/grafana/download. Operatsion tizimingiz uchun mos paketni tanlang.

2. Grafanani O'rnatish:

Operatsion tizimingiz uchun o'rnatish ko'rsatmalariga amal qiling. Masalan, Debian/Ubuntu'da:


sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
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 -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

3. Grafanani Ishga Tushirish:

Grafana xizmatini ishga tushiring:

sudo systemctl start grafana-server

4. Grafanaga Kirish:

Grafana ishga tushadi va standart bo'lib 3000 portida tinglaydi. Grafana veb-interfeysiga brauzeringizda http://localhost:3000 manzilida kirishingiz mumkin.

Standart foydalanuvchi nomi va paroli `admin` va `admin` hisoblanadi. Birinchi marta kirishda parolni o'zgartirish so'raladi.

Grafanani Prometheusga Ulanishi

Grafanada Prometheusdan metrikalarni vizualizatsiya qilish uchun, siz Grafanada Prometheusni ma'lumot manbai sifatida konfiguratsiya qilishingiz kerak.

1. Ma'lumot Manbasini Qo'shish:

Grafana veb-interfeysida Konfiguratsiya > Ma'lumot Manbalari ga o'ting va Ma'lumot Manbasini Qo'shish tugmasini bosing.

2. Prometheusni Tanlash:

Ma'lumot manbai turi sifatida Prometheusni tanlang.

3. Prometheus Ulanishini Konfiguratsiya Qilish:

Prometheus serveringizning URL'ini kiriting (masalan, `http://localhost:9090`). Boshqa variantlarni kerak bo'lganda konfiguratsiya qiling (masalan, autentifikatsiya).

4. Saqlash va Sinovdan O'tkazish:

Grafana Prometheusga muvaffaqiyatli ulanishini tekshirish uchun Saqlash va Sinovdan O'tkazish tugmasini bosing.

Grafanada Panellarni Yaratish

Grafanani Prometheusga ulaganingizdan so'ng, metrikalaringizni vizualizatsiya qilish uchun panellarni yaratishingiz mumkin.

1. Yangi Panel Yaratish:

Grafana veb-interfeysida yon panelda + belgisini bosing va Panelni tanlang.

2. Panel Qo'shish:

Panellarga yangi panelni qo'shish uchun Bo'sh Panel Qo'shish tugmasini bosing.

3. Panellarni Konfiguratsiya Qilish:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

Ushbu so'rov 5 daqiqalik intervalda node_exporter tomonidan yig'ilgan jarayonlar tomonidan ishlatiladigan CPU vaqtining o'zgarish tezligini hisoblaydi.

4. Panellarni Saqlash:

Panellarni saqlash uchun saqlash belgisini bosing.

PromQL: Prometheus So'rov Tili

PromQL – Prometheusda saqlangan metrikalarni olish va manipulyatsiya qilish uchun ishlatiladigan kuchli so'rov tili. U keng doiradagi operatsiyalarni bajarishga imkon beradi, jumladan:

PromQL Misollari


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

PromQLni o'rganish Prometheus va Grafanadan samarali foydalanish uchun muhimdir. Tilga to'liq qo'llanma uchun Prometheus hujjatlariga murojaat qiling.

Prometheus va Alertmanager bilan Ogohlantirish

Prometheus metrika qiymatlariga asoslanib qoidalarni aniqlashga imkon beruvchi kuchli ogohlantirish tizimini taqdim etadi. Qoida sharti bajarilganda, ogohlantirish ishga tushiriladi va Alertmanager bildirishnoma jarayonini boshqaradi.

Ogohlantirish Qoidalarini Aniqlash

Ogohlantirish qoidalari `prometheus.yml` konfiguratsiya faylida aniqlanadi. Mana CPU foydalanish 80% dan oshganda ogohlantirishni ishga tushiradigan ogohlantirish qoidasi misoli:


rule_files:
  - "rules.yml"

Keyin, `rules.yml` nomli faylda, quyidagilarni joylashtiring:


groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "High CPU usage detected"
      description: "CPU usage is above 80% on {{ $labels.instance }}"

Tushuntirish:

Alertmanagerni Konfiguratsiya Qilish

Alertmanager ogohlantirishlarni yo'naltirish va bildirishnomalarni boshqaradi. Ogohlantirishlar qayerga yuborilishi kerakligini (masalan, elektron pochta, Slack, PagerDuty) aniqlash uchun Alertmanager'ni konfiguratsiya qilishingiz kerak. Batafsil konfiguratsiya ko'rsatmalari uchun Alertmanager hujjatlariga murojaat qiling.

Minimal `alertmanager.yml` konfiguratsiyasi quyidagicha bo'lishi mumkin:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'web.hook'

receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8080/'

Ushbu konfiguratsiya localhost port 8080'dagi webhook'ga ogohlantirishlarni yuboradi. Slack yoki elektron pochta kabi xizmatlardan foydalanish uchun `receivers` qismini o'zgartirishingiz mumkin.

Amaliy Misollar va Foydalanish Holatlari

Prometheus va Grafana keng doiradagi ilovalar va infratuzilma komponentlarini monitoring qilish uchun ishlatilishi mumkin. Mana ba'zi amaliy misollar:

Misol: Mikroservis Arhitekturani Monitoring Qilish

Mikroservis arxitekturasida Prometheus va Grafana alohida xizmatlarning, shuningdek, umumiy tizimning holati va unumdorligini monitoring qilish uchun ishlatilishi mumkin. Har bir xizmat o'zining metrikalarini, masalan, so'rov tezligi, javob vaqtlarini va xatolik darajalarini taqdim etishi mumkin. Keyin Prometheus ushbu metrikalarni tortib olishi mumkin va Grafana ularni vizualizatsiya qilish uchun ishlatilishi mumkin. Bu sizga ma'lum xizmatlardagi unumdorlik bottlenecklarini yoki nosozliklarni tezda aniqlash imkonini beradi.

Ilg'or Usullar va Eng Yaxshi Amaliyotlar

Prometheus va Grafanadan maksimal foydalanish uchun quyidagi ilg'or usullar va eng yaxshi amaliyotlarni ko'rib chiqing:

Umumiy Muammolarni Bartaraf Etish

Ehtiyotkorlik bilan rejalashtirish va joriy etish bilan ham, Prometheus va Grafanadan foydalanishda muammolarga duch kelishingiz mumkin. Mana ba'zi umumiy muammolar va ularning echimlari:

Alternativ Monitoring Yechimlari

Prometheus va Grafana kuchli vositalar bo'lsa-da, ular metrikalar yig'ish va vizualizatsiya qilish uchun yagona variantlar emas. Boshqa mashhur monitoring yechimlari quyidagilarni o'z ichiga oladi:

Tashkilotingiz uchun eng yaxshi monitoring yechimi sizning maxsus talablaringiz va byudjetingizga bog'liq bo'ladi.

Xulosa

Metrikalar yig'ish ilovalar va infratuzilmaning holati va unumdorligini saqlash uchun muhimdir. Prometheus va Grafana metrikalarni yig'ish, saqlash va vizualizatsiya qilish uchun kuchli va moslashuvchan ochiq kodli yechimni taqdim etadi. Ushbu qo'llanmada bayon etilgan asosiy konseptlarni tushunish va eng yaxshi amaliyotlarga amal qilish orqali siz tashkilotingizning ehtiyojlarini qondiradigan mustahkam monitoring tizimini qurish uchun Prometheus va Grafanadan foydalanishingiz mumkin.

Samarali monitoring, proaktiv ogohlantirish va tezkor hodisalarni bartaraf etish bilan birgalikda zamonaviy IT operatsiyalarining tayanchidir. Prometheus va Grafana kabi vositalarni qabul qilish tashkilotlarga o'z foydalanuvchilariga ishonchli va samarali xizmatlar ko'rsatish imkonini beradi, ularning joylashuvi yoki sanoatidan qat'i nazar.