Sobes.tech
Middle

Ինչպես կարգավորել հաճախորդները՝ մետրիկաները Prometheus-ին փոխանցելու համար։

sobes.tech AI

Պատասխան AI-ից

Տեղափոխելու համար մետաղական տվյալները Prometheus-ին, անհրաժեշտ է օգտագործել արտահանողներ (Exporters): Արտահանողներն են փոքր ծառայություններ, որոնք բացում են HTTP-էնդպոինտ, որը պարունակում է մետաղական տվյալներ այն ձևաչափով, որը հասկանալի է Prometheus-ին:

Հիմնական եղանակները՝

  1. Անձնական և երրորդ կողմի արտահանողների օգտագործում:

    • Կան պատրաստի արտահանողներ շատ հանրահայտ ծառայությունների և համակարգերի համար՝ node_exporter (ՕՀ մետաղական տվյալներ), mysqld_exporter (MySQL մետաղական տվյալներ), kube-state-metrics (Kubernetes մետաղական տվյալներ) և այլն:
    • Կանխատեսում է, որ կոնֆիգուրացիան ներառում է արտահանողի տեղադրումը նպատակային սերվերում և նրա հասցեի նշումը Prometheus կոնֆիգուրացիայում:
  2. Ծրագրերի ինստրումենտացիա:

    • Ծրագրավորողները կարող են ավելացնել կոդ իրենց ծրագրերին՝ ուղղակի մետաղական տվյալներ ներկայացնելու համար:
    • Prometheus նախագիծը տրամադրում է հաճախորդային գրադարաններ տարբեր ծրագրավորման լեզուների համար՝ Go, Java, Python, Ruby և այլն:
    • Այս գրադարանները թույլ են տալիս ստեղծել հաշվողականիչներ (counters), սենսորներ (gauges), հիստոգրամներ (histograms) և ամփոփումներ (summaries), և ապա բացել HTTP-էնդպոինտ՝ Prometheus-ից տվյալներ հավաքելու համար:
  3. Textfile Collector (node_exporter համար):

    • node_exporter ունի textfile հավաքիչ, որը կարող է կարդալ մետաղական տվյալներ ֆայլերից՝ որոշակի ձևաչափով:
    • Սա օգտակար է պարբերական սցենարների կամ գործառույթների համար, որոնք ստեղծում են մետաղական տվյալներ:
  4. Pushgateway:

    • Pushgateway օգտագործվում է կարճաժամկետ կամ խմբային առաջադրանքների համար, որոնք չեն կարող ուղիղ հավաքագրվել Prometheus-ով՝ քանի որ կարող է չլինել դրանց ժամանակը հավաքագրման պահին:
    • Ծրագիրը ուղարկում է իր մետաղական տվյալները Pushgateway-ին, և Prometheus հավաքում է տվյալները Pushgateway-ից:
# Prometheus կոնֆիգուրացիայի օրինակ (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Աշխատանքի անվանում
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Հոստեր/պորտեր, որտեղ աշխատում է `node_exporter`

  - job_name: 'application_metrics' # Ծրագիր մետաղական տվյալների հավաքագրման համար
    metrics_path: /metrics # Փողոց, որով ծրագիրը ներկայացնում է մետաղական տվյալներ
    static_configs:
      - targets: ['application-host:8080'] # Ծրագրի հասցե

  - job_name: 'pushgateway' # Pushgateway- ի մետաղական տվյալների հավաքագրման համար
    honor_labels: true # Կարևոր է Pushgateway- ի նշանների ճիշտ մշակման համար
    static_configs:
      - targets: ['pushgateway-host:9091'] # Pushgateway- ի հասցե

Հետո, երբ կոնֆիգուրացվում են արտահանողներն կամ ծրագրերի ինստրումենտացիան, Prometheus-ը պարբերաբար հարցում է նշված endpoinտները՝ մետաղական տվյալներ հավաքելու համար։