๐Ÿ“‡Exporters

Nedir?

Exporters, รถlรงรผmlerin รผรงรผncรผ taraf sistemden (linux veya Windows iลŸletim sistemi gibi) Prometheus รถlรงรผmleriyle aynฤฑ biรงimde dฤฑลŸa aktarฤฑlmasฤฑna yardฤฑmcฤฑ olan bir servistir.

Exporter, belirli bir hizmet, uygulama veya sistem iรงin tanฤฑmlanmฤฑลŸ metrikleri toplamak ve bu metrikleri Prometheus veri toplayฤฑcฤฑsฤฑna aktarmak iรงin tasarlanmฤฑลŸ bir araรงtฤฑr.

Exporter'lar, Prometheus tarafฤฑndan kullanฤฑlabilen bir HTTP endpoint'e sahiptir ve belirli bir metrikle iliลŸkili olan birรงok farklฤฑ istekle รงaฤŸrฤฑlabilirler. Prometehus, bir exporter'ฤฑn HTTP endpoint'ini belirli bir zaman aralฤฑฤŸฤฑ boyunca dรผzenli aralฤฑklarla รงaฤŸฤฑrarak, verileri toplar ve depolar.

Exporter'lar, belirli bir hizmet veya sistem iรงin birรงok farklฤฑ metrikleri toplayabilir. ร–rneฤŸin, bir veritabanฤฑ exporter'ฤฑ, CPU kullanฤฑmฤฑ, bellek kullanฤฑmฤฑ, disk kullanฤฑmฤฑ, sorgu sayฤฑsฤฑ, baฤŸlantฤฑ sayฤฑsฤฑ gibi metrikleri toplayabilir.

Bir web sunucusu exporter'ฤฑ ise, istek sayฤฑsฤฑ, yanฤฑt sรผresi, hata sayฤฑsฤฑ gibi metrikleri toplayabilir.

Prometheus, bir exporter'ฤฑn topladฤฑฤŸฤฑ verileri, Grafana gibi diฤŸer araรงlarla birlikte kullanarak, metrikleri grafikleลŸtirmeye, monitรถr etmeye veya alarm kurmaya olanak tanฤฑr.

Exporter'lar, verileri toplama ve sunma iลŸlemini yรผrรผtmek iรงin Go, Python, Java gibi farklฤฑ dillerde yazฤฑlabilir. Prometheus exporter'larฤฑ Zabbix agent gibi dรผลŸรผnebiliriz. Her ikisi de monitรถr edilen hedeflerin belirli metriklerini toplayฤฑp bir merkezi sunucuya gรถnderirler.

ร–zetle, sunucudan รถlรงรผmler almak iรงin, sunucu da รงalฤฑลŸan ve istatistikleri sunan bir veri toplayฤฑcฤฑya (รถrneฤŸin bir exporter) ihtiyacฤฑmฤฑz var. Bu nedenle, misal bir Linux sunucunun CPU veya bellek grafiฤŸini gรถrmek istiyorsak, รถncelikle bu sunucuda รงalฤฑลŸan bir exporter kurmamฤฑz gerekir.

Node Exporter

Node Exporter, bir Linux veya Unix iลŸletim sistemi รผzerinde รงalฤฑลŸan, Prometheus'a sistem รถlรงรผmleri saฤŸlamak iรงin kullanฤฑlan bir araรงtฤฑr. Bu รถlรงรผmler, iลŸletim sistemi kaynaklarฤฑndan (CPU, bellek, disk vb.), aฤŸ baฤŸlantฤฑlarฤฑndan, sistem istatistiklerinden ve diฤŸer performans รถlรงรผmlerinden elde edilir.

Node Exporter, iลŸletim sistemi istatistiklerini รงฤฑkarmak iรงin รถnceden tanฤฑmlanmฤฑลŸ bir dizi metrik toplar ve Prometheus'a dรผzenli aralฤฑklarla sunar. Bu รถlรงรผmler daha sonra Prometheus tarafฤฑndan iลŸlenir ve depolanฤฑr, bรถylece bir sunucunun performansฤฑ, tarihsel eฤŸilimleri veya beklenmedik deฤŸiลŸiklikleri izlemek iรงin kullanฤฑlabilir.

Node Exporter, bu metriklerin saฤŸladฤฑฤŸฤฑ bilgileri bir HTTP endpoint aracฤฑlฤฑฤŸฤฑyla sunar. Bu endpoint'e eriลŸim, Prometheus'un bu metrikleri toplamasฤฑna ve depolamasฤฑna olanak tanฤฑr.

Node Exporter Kurulum ( Ubuntu 20.04 )

  • Gerekli dosyanฤฑn indirilmesi ve รงฤฑkarฤฑlmasฤฑ gerekmektedir.

    1. AลŸaฤŸฤฑdaki komut, รถncelikle "/tmp" dizinine geรงiลŸi saฤŸlar (eฤŸer yoksa oluลŸturulur), ardฤฑndan node_exporter adlฤฑ Prometheus exporter'ฤฑnฤฑn 0.18.1 sรผrรผmรผnรผn indirilmesini ve aรงฤฑlmasฤฑnฤฑ gerรงekleลŸtirir. ฤฐndirilen dosya "node_exporter-.-amd64.tar.gz" ลŸeklinde bir formatta olduฤŸundan, gerรงek dosya adฤฑ tam olarak belirtilmez ve yฤฑldฤฑz iลŸaretiyle yer deฤŸiลŸtirilir. Bu nedenle, "tar xvfz" komutuyla dosya sฤฑkฤฑลŸtฤฑrmasฤฑ รงรถzรผmlenir ve node_exporter uygulamasฤฑ /tmp dizininin altฤฑndaki bir dizine รงฤฑkarฤฑlฤฑr.

  • Dosyalarฤฑn taลŸฤฑnmasฤฑ ve kullanฤฑcฤฑ oluลŸturulmasฤฑ gerekmektedir.

    1. AลŸaฤŸฤฑdaki komut 2 adฤฑmdan oluลŸmaktadฤฑr =>

      1. /usr/local/bin/ dizinine node_exporter adฤฑndaki ana uygulama dosyamฤฑzฤฑ taลŸฤฑyoruz.

      2. node_exporter kullanฤฑcฤฑsฤฑ oluลŸturuluyoruz. Bu komutla birlikte, /usr/local/bin/ dizinine taลŸฤฑnan node_exporter dosyasฤฑnฤฑn รงalฤฑลŸmasฤฑ iรงin bir kullanฤฑcฤฑ oluลŸturulmaktadฤฑr. -rs /bin/false argรผmanlarฤฑ, kullanฤฑcฤฑnฤฑn oturum aรงmasฤฑnฤฑ engellemektedir. Yani node_exporter kullanฤฑcฤฑsฤฑ, yalnฤฑzca node_exporter servisini รงalฤฑลŸtฤฑrmak iรงin kullanฤฑlacak bir sistem kullanฤฑcฤฑsฤฑdฤฑr.

  • Systemd Dosyasฤฑnฤฑ oluลŸtuyoruz:

Yukarฤฑdaki dosyayฤฑ oluลŸturup, aลŸaฤŸฤฑdaki parametreleri dosyanฤฑn iรงerisine ekliyoruz;

  • Ardฤฑndan daemond servisini reload edip, node exporter servisini รงalฤฑลŸtฤฑrฤฑp, startup duruma getiriyoruz.

  • Servisin รงalฤฑลŸฤฑp, รงalฤฑลŸmadฤฑฤŸฤฑnฤฑ kontrol etmek iรงin aลŸaฤŸฤฑdaki http endpointe istek gรถnderiyoruz.

Node exporter kurduฤŸumuz sunucuyu, Prometheus 'a eklemek iรงin;

  • Prometheus kurulu sunucumuza geรงiyoruz ve prometheus.yaml dosyamฤฑzฤฑ dรผzenlemek iรงin vi editรถrรผ ile dosyamฤฑzฤฑ aรงฤฑyoruz.

AลŸaฤŸฤฑdaki parametreleri dosyamฤฑzฤฑn en altฤฑna yazฤฑyoruz.

Dosyamฤฑzฤฑn iรงeriฤŸi aลŸaฤŸฤฑdaki ลŸekilde gรถzรผkecek;

  • Ardฤฑndan servisi prometheus servisini restart ediyoruz:

  • Ardฤฑndan prometheus arayรผzรผnden hem targets kฤฑsmฤฑnฤฑ, hem de promQL ile up sorgusunu gรถnderip, node exporter yรผklediฤŸimiz ubuntu makinemizin durumunu kontrol ediyoruz.

Yukarฤฑda gรถrรผldรผฤŸรผ รผzere bir sorun gรถzรผkmรผyor.

Yukarฤฑda Node exporter yรผklediฤŸimiz sunucunun kullanฤฑlabilir memory miktarฤฑnฤฑ sorguluyoruz.

WMI Exporter

WMI (Windows Management Instrumentation) Exporter, Windows iลŸletim sistemi รผzerinde รงalฤฑลŸan uygulamalarฤฑn, Windows yรถnetim bileลŸenlerinin, servislerin ve iลŸletim sistemi hakkฤฑndaki performans istatistiklerini toplayan ve Prometheus tarafฤฑndan kullanฤฑlabilen bir exporter'dฤฑr. Windows WMI aracฤฑlฤฑฤŸฤฑyla toplanan verileri Prometheus'a sunar. Bu exporter, Windows sunucularฤฑnฤฑn performansฤฑnฤฑn izlenmesi iรงin oldukรงa yararlฤฑdฤฑr ve iลŸletim sistemi, bellek kullanฤฑmฤฑ, disk ve aฤŸ performansฤฑ gibi รงeลŸitli performans รถlรงรผtlerini takip etmek iรงin kullanฤฑlabilir.

WMI Exporter Kurulumu

  • Ardฤฑndan indirdiฤŸimiz exe dosyasฤฑnฤฑ รงalฤฑลŸtฤฑrฤฑyoruz.

  • Ardฤฑndan wmi kurduฤŸumuz sunucunun http://sunucuip:9182/metrics adresine gidip, servisin รงalฤฑลŸฤฑp, รงalฤฑลŸmadฤฑฤŸฤฑnฤฑ kontrol ediyoruz.

  • Sฤฑra geldi wmi exporter kurduฤŸumuz sunucuyu prometheus servisimize eklemeye, bunun iรงin prometheus sunucumuza gidip "prometheus.yaml" dosyamฤฑza wmi servisini yรผklediฤŸimiz sunucunun bilgilerini yazฤฑp, servisi restart ediyoruz.

En alt satฤฑra wmi yรผklediฤŸimiz sunucuyu ekliyoruz.

EklediฤŸimiz kฤฑsฤฑm yukarฤฑda gรถrรผldรผฤŸรผ gibidir.

Ardฤฑndan prometheus servisimizi restart ediyoruz;

  • Yeni eklediฤŸimiz sunucuyu, promQL'de up sorgusu ile ve targets sekmesinden kontrol ediyoruz.

Bir sorun gรถzรผkmรผyor. AลŸaฤŸฤฑda teyit etmek iรงin disk รผzerinde kalan boลŸ alanฤฑn sorgusunu gรถnderiyorum.

WMI exporter gibi bir araรง kullanฤฑlarak toplanan verilerde, "windows_logical_disk_free_bytes" adlฤฑ bir metrik, her bir mantฤฑksal disk iรงin mevcut kullanฤฑlabilir boลŸ alanฤฑ bayt cinsinden iรงerir. Ancak, bu bilgi bayt olarak verildiฤŸi iรงin okunmasฤฑ zor olabilir. Bu nedenle, "windows_logical_disk_free_bytes" metriฤŸini 1024^3 ile bรถlerek GB cinsinden daha okunaklฤฑ hale getirmek iรงin /1024/1024/1024 kฤฑsmฤฑ kullanฤฑlฤฑr.

Bonus Bilgi : prometheus "admin-api" aktif duruma getirmek iรงin,

  • Prometheus systemd dosyasฤฑnฤฑ aรงฤฑp aลŸaฤŸฤฑda iลŸaretlediฤŸim satฤฑrฤฑ dosyaya ekliyoruz.

  • Ardฤฑndan daemon reload ediyoruz ve prometheus servisi yeniden baลŸlatฤฑyoruz.

Ardฤฑndan bir instance'a ait verileri temizlemek iรงin, Prometheus sunucunun shellinde aลŸaฤŸฤฑdaki sorguyu รงalฤฑลŸtฤฑrabilirsiniz.

Last updated

Was this helpful?