Raspberry Pi'ye Prometheus Kurulumu

Bu yazı, PiMyLifeUp - Installing Prometheus on the Raspberry Pi kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Prometheus izleme çözümünü Raspberry Pi'ye nasıl kuracağınızı öğrenin.

Raspberry Pi Prometheus

Prometheus, Raspberry Pi'nizden sistem metriklerini kolayca izlemenizi sağlayan açık kaynaklı bir izleme çözümüdür.

Diğer cihazlardaki sistem metriklerini okuyabilmek ve verilerini Prometheus kurulumunuza geri döndürebilmek için "node exporter" adı verilen şeyi kurabilirsiniz.

Prometheus yazılımı, alınan verilere dayalı bir bildirim göndermenizi sağlayan yerleşik bir uyarı yöneticisine sahiptir.

İzleme yazılımı, Prometheus'un yakaladığı tüm verileri kolayca görselleştirmenizi sağlayan yerleşik Grafana desteğine bile sahiptir.

Prometheus, çalışması için ek bağımlılık gerektirmediğinden kurulumu son derece kolaydır.

Prometheus'u Raspberry Pi'ye İndirme

Bu bölümde, Raspberry Pi'nin donanımı için Prometheus'un doğru sürümünü nasıl indireceğinizi göstereceğiz.

Bu adımlar, ARMv7 mimarisini kullanan herhangi bir cihaz için çalışacaktır. Bu cihazlar arasında Raspberry Pi 2, 3 ve 4 bulunur.

1. Devam etmeden önce, tüm paketlerimizin güncel olduğundan emin olmalıyız.

Bunu yapmak, her şeyi temiz bir temelden kurduğumuzdan emin olmamızı sağlar ve güncel olmayan hiçbir paket sorun yaratmamalıdır.

Şu anda kurulu olan tüm paketleri güncellemek için, Raspberry Pi'nizde aşağıdaki komutu çalıştırın.

sudo apt update
sudo apt full-upgrade

2. ARMv7 mimarisi için önceden derlenmiş Prometheus sürümünü indirebiliriz.

Bu yazılımı indirmek için, cihazınızda aşağıdaki komutu çalıştırın.

wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-armv7.tar.gz

Bu komut, Prometheus'un 2.22.0 sürümünü Raspberry Pi'nize indirmek için wget kullanacaktır.

3. İndirdiğiniz arşivdeki ikili dosyaları aşağıdaki komutu çalıştırarak çıkarın.

Arşivimizi çıkarmak için tar programını kullanabiliriz.

tar xfz prometheus-2.22.0.linux-armv7.tar.gz

4. Bir sonraki adımımız, çıkarılan klasörün adından sürümü kaldırmak için yeniden adlandırmaktır.

Bunu yapmak, dizin içindeki dosyalara referans vermeyi kolaylaştırır. Dizini prometheus olarak yeniden adlandırmak için mv komutunu kullanın.

mv prometheus-2.22.0.linux-armv7/ prometheus/

5. Son adımımız, kurulumumuzu temizlemektir.

Yapmamız gereken tek şey, daha önce indirdiğimiz arşivi silmektir. Tutmak güvenli olsa da, dosyayı etrafta tutmaya artık gerek yoktur.

Raspberry Pi'nizde aşağıdaki komutu çalıştırarak Prometheus arşivini silin.

rm prometheus-2.22.0.linux-armv7.tar.gz

Bununla birlikte, artık Raspberry Pi'mizde Prometheus kurulu.

Prometheus için Bir Servis Ayarlama

Bu bölümde, Raspberry Pi'nizde Prometheus için nasıl bir servis kuracağınızı göstereceğiz.

Bir servis, bir yazılımın önyüklemede otomatik olarak başlatılmasını sağlayan şeydir. Ayrıca yazılımı hızlı bir şekilde başlatıp durdurmanızı da sağlar.

1. Bir servis oluşturmak için, "/etc/systemd/system/" dizini içinde yeni bir dosya oluşturmamız gerekiyor.

Bu dizin, servislerin varsayılan olarak işlendiği yerdir.

Bu dosyayı oluşturmak için nano metin editörünü kullanacağız.

Pi'nizde aşağıdaki komutu çalıştırarak yeni servis dosyasını yazmaya başlayın.

sudo nano /etc/systemd/system/prometheus.service

2. Bu dosyanın içine, aşağıdaki metni girin.

Bu metin, servisin nasıl çalıştığını ve Prometheus yazılımını nasıl çalıştırması gerektiğini tanımlar.

[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=pi
Restart=on-failure

ExecStart=/home/pi/prometheus/prometheus \
  --config.file=/home/pi/prometheus/prometheus.yml \
  --storage.tsdb.path=/home/pi/prometheus/data

[Install]
WantedBy=multi-user.target

Bu servis dosyasının yazılma şekliyle, ağ çevrimiçi olduğunda Raspberry Pi'nizde Prometheus yazılımını çalıştıracaktır.

Başladığında, "/home/pi/prometheus/prometheus" konumundaki Prometheus çalıştırılabilir dosyasını çalıştıracaktır.

Hem yapılandırma dosyası konumunu hem de izleme yazılımının gerektirdiği veritabanı için bir depolama konumunu iletiyoruz.

Yapılandırma dosyasını değiştirmeniz gerekirse, onu "/home/pi/prometheus/prometheus.yml" konumunda bulabilirsiniz.

2. Servis dosyasına yazmayı bitirdikten sonra, kaydedin.

CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedip çıkabilirsiniz.

3. Yeni servis oluşturulduğuna göre, artık devam edip onu etkinleştirebiliriz.

Prometheus servisini etkinleştirmek için, aşağıdaki komutu çalıştırabiliriz.

sudo systemctl enable prometheus

Servisi etkinleştirmek, Raspberry Pi önyüklendiğinde başlamasını sağlar.

4. Servis etkinleştirildiğine göre, şimdi Prometheus yazılımını başlatalım.

Servisi başlatmak için, aşağıdaki komutu çalıştırın.

sudo systemctl start prometheus

5. Durumunu kontrol ederek Prometheus'un Raspberry Pi'mizde başarıyla başladığını doğrulayabiliriz.

Servisin durumunu almak için Raspberry Pi'nizde aşağıdaki komutu yazın.

sudo systemctl status prometheus

6. Her şey doğru şekilde başladıysa, durum komutu tarafından aşağıdakinin döndürüldüğünü görmelisiniz.

Active: active (running)

Durum çalışıyor olarak görünmüyorsa, lütfen aşağıya bir yorum bırakın.

Prometheus Web Arayüzünü Yükleme

Artık Raspberry Pi'nizde Prometheus kurulu ve ayarlanmış olduğuna göre, şimdi web arayüzünü keşfedebiliriz.

1. Devam etmeden önce, Raspberry Pi'nizin IP adresini bilmeniz gerekiyor.

Pi'niz için IP'yi almanın en kolay yolu aşağıdaki komutu kullanmaktır, ancak başka yöntemler de vardır.

hostname -I

IP'nizi not edin, ardından bir sonraki adıma geçin.

2. Favori web tarayıcınızda, Prometheus arayüzüne ulaşmak için aşağıdaki adrese gidin.

http://[PIADRESI]:9090

3. Arayüzü yüklediğinizde, aşağıdaki arayüzle karşılaşacaksınız.

Bu arayüz, metrikleriniz üzerinde sorgular yapmanıza ve bunları ham veri olarak veya zaman tabanlı bir grafik içinde göstermenize olanak tanır.

Raspberry Pi Prometheus Web Arayüzü

4. Ayrıca bu web arayüzünü, Prometheus için hedef olarak hangi cihazlara sahip olduğunuzu görüntülemek için de kullanabilirsiniz.

Üst menü çubuğundaki "Status" seçeneğine tıklayarak hedefler ekranına gidebilirsiniz (1.).

Ardından, açılan alt menüde "Targets" seçeneğine tıklamanız gerekiyor (2.).

Prometheus Targets Sayfasına Gitme

5. Hedefler ekranı, şu anda Raspberry Pi'nizin Prometheus kurulumuna bağlı olan tüm cihazları gösterecektir.

Her mevcut hedefinizin durumunu, en son ne zaman scrape edildiğini ve scrape süresinin ne kadar sürdüğünü görebilirsiniz.

Prometheus'u Pi'mize yeni kurduğumuz için, yalnızca mevcut cihazımız kullanılabilir olacaktır.

Raspberry Pi'de Prometheus Hedefleri

Bir Cihazı Prometheus Node'u Olarak Ayarlama

Bu bölümde, Raspberry Pi'nizde Prometheus için başka bir cihazı nasıl node olarak ayarlayacağınızı göstereceğiz.

Bu örnek için, başka bir Raspberry Pi'de Prometheus'a geri bildirim yapan node exporter yazılımını kuracağız.

Ancak, mimariniz için doğru sürümü indirdiğiniz sürece bu adımlar diğer çoğu Linux sistemi için de çalışmalıdır.

Devam etmeden önce, cihazınızın statik bir IP adresine sahip olduğundan emin olun. IP adresiniz dinamik olarak atanıyorsa, muhtemelen bu node'a bağlantının kesilmesine neden olacaktır.

Node Exporter Yazılımını Kurma

1. Yapmamız gereken ilk şey, aşağıdaki komutu kullanarak "/opt" içinde yeni bir dizin oluşturmaktır.

Bu dizin, konumun işletim sisteminin dağıtımı tarafından sağlanmayan paketler için tasarlandığı için node exporter'ı tutacağımız yerdir.

sudo mkdir /opt/node-exporter

2. Ardından, yeni oluşturduğumuz dizine geçin.

Dizine geçmek, indirmek üzere olduğumuz arşivlerin doğru yerde olmasını sağlayacaktır.

cd /opt/node-exporter

3. Bir sonraki adımımız, Prometheus node exporter'ın arşivini cihazımıza indirmektir.

İndirmek istediğiniz sürüm cihazınıza göre değişir. Örneğin, bir Raspberry Pi 4 kullandığımız için, Prometheus exporter'ın ARMv7 sürümünü indirmek isteyeceğiz.

Cihazınızın ve işletim sisteminizin hangi mimariyi kullandığını not aldığınızdan emin olun.

ARMv7 (Örn. Raspberry Pi 2, 3, 4)
Node exporter'ın ARMv7 sürümünü cihazınıza indirmek için aşağıdaki komutu kullanın.
64-bit bir işletim sistemi kullanıyorsanız, bunun yerine bir ARM64 sürümü kullanmanız gerektiğini lütfen unutmayın.

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-armv7.tar.gz

ARMv6 (Örn. Raspberry Pi 1, Zero, CM1)
ARMv6 sürümü, Raspberry Pi 1 gibi eski IoT ARM cihazları için kullanışlıdır. Cihazınızın hangi mimariyi kullandığından emin değilseniz, bunu araştırmanız yardımcı olabilir.
Aşağıdaki komutu kullanarak, node exporter'ın ARMv6 sürümünü indirebilirsiniz.

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-armv6.tar.gz

ARM64 (Örn. Raspberry Pi 3, 4, Rock64)
Prometheus Node exporter'ın ARM64 sürümü, tamamen 64-bit bir işletim sistemi çalıştıran 64-bit ARM cihazları içindir.
Cihazınızda aşağıdaki komutu çalıştırarak ARM64 sürümünün arşivini indirin.

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-arm64.tar.gz

x64
Linux sisteminiz için Node exporter sisteminin x64 sürümünü indirmek için komut aşağıda sağlanmıştır.
x64, çoğu ARM olmayan cihazla kullanılan en yaygın işletim sistemidir.

sudo wget -O node-exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

4. Prometheus'un arşivi cihazınıza indirildiğine göre. Artık onu çıkarmak için tar paketini kullanabiliriz.

Arşivi mevcut dizine çıkarmak için aşağıdaki komutu çalıştırın.

sudo tar -xvf node-exporter.tar.gz --strip-components=1

Yalnızca arşiv içindeki dosyaları almak ve üst düzey dizini almamak için "strip-components" seçeneğini kullanıyoruz.

5. Prometheus node exporter cihazımıza çıkarıldığına göre, artık arşivi silebiliriz.

Arşivi silmek için aşağıdaki komutu çalıştırın.

sudo rm node-exporter.tar.gz

Arşivi silmek mutlaka gerekli değildir, ancak sisteminizi gereksiz dosyalardan temiz tutmaya yardımcı olur.

6. Son olarak, aşağıdaki komutu kullanarak node exporter'ı çevrimiçi hale getirebiliriz.

./node_exporter

7. Şu anda çıktı verdiği metrikler sayfasına giderek yeni node'unuzun çalıştığını doğrulayabilirsiniz.

Bu sayfaya gitmek için, cihazınızın IP adresini bilmeniz gerekecek, bunun en kolay yollarından biri hostname -I komutunu kullanmaktır.

Ayrıca şuna ihtiyacınız olacak:

http://[IPADRESINIZ]:9100

Bu adrese gittiğinizde, Prometheus node exporter'ın raporladığı tüm metrikleri göreceksiniz.

Node Exporter'ı Servis Olarak Ayarlama

Artık cihazınızda node exporter'ı çalışır hale getirdiğimize göre, şimdi onu bir servis olarak ayarlamalıyız.

Onu bir servis olarak yapılandırmak, önyüklemede otomatik olarak başlamasını sağlayacak ve yazılımı yönetmenizi kolaylaştıracaktır.

1. Servisimizi tanımlayacak dosyayı yazarak başlayalım.

Yeni bir dosyaya yazmaya başlamak için aşağıdaki komutu çalıştırın.

sudo nano /etc/systemd/system/nodeexporter.service

2. Bu dosyanın içine, aşağıdaki kod satırlarını yazın.

[Unit]
Description=Prometheus Node Exporter
Documentation=https://prometheus.io/docs/guides/node-exporter/
After=network-online.target

[Service]
User=pi
Restart=on-failure

ExecStart=/opt/node-exporter/node_exporter

[Install]
WantedBy=multi-user.target

3. Yukarıdaki satırları yazmayı bitirdikten sonra, dosyayı kaydedebiliriz.

Dosyayı kaydetmek için CTRL + X, ardından Y, sonra ENTER tuşuna basın.

4. Servis artık kaydedildiğine göre, şimdi onu etkinleştirmeliyiz.

Aşağıdaki komutu çalıştırmak, cihaz açıldığında node exporter'ımızın başlamasını sağlayacaktır.

sudo systemctl enable nodeexporter

5. Ardından, yeniden başlatmayı beklememize gerek kalmaması için Prometheus node exporter'ı şimdi başlatalım.

sudo systemctl start nodeexporter

6. Prometheus node exporter'ın cihazınızda başarıyla çalıştığını doğrulamak için, ya daha önce belirttiğimiz URL'ye gidebilir ya da aşağıdaki komutu çalıştırabilirsiniz.

Bu komut, az önce oluşturduğumuz servisin durumunu alacaktır.

sudo systemctl status nodeexporter

Servis doğru şekilde çalışıyorsa, aşağıdaki mesajı görmelisiniz, "Active: active (running)".

Raspberry Pi Prometheus Node'unuza Node Ekleme

Bu noktada, artık iki ayrı şeyin çalışıyor olması gerekiyor. Raspberry Pi'nizde Prometheus yazılımının başarıyla çalışması gerekiyor.

Ayrıca, ister bir Raspberry Pi ister başka bir cihaz olsun, node exporter ile kurulmuş bir cihazınız da olmalı.

Bir sonraki bölümde, Raspberry Pi'nizde Prometheus'u node'umuza bağlanacak ve ondan veri okuyacak şekilde nasıl yapılandıracağınızı göstereceğiz.

Bu bölüme devam etmeden önce node'unuzun IP adresini bilmeniz gerektiğini lütfen unutmayın.

1. Bu sürece Prometheus yapılandırma dosyasını düzenleyerek başlayalım.

Raspberry Pi'nizde aşağıdaki komutu kullanarak bu dosyayı düzenlemeye başlayabilirsiniz.

nano /home/pi/prometheus/prometheus.yml

2. Bu dosyanın içinde, Prometheus'un nasıl çalışacağını tanımlayan bir dizi satır göreceksiniz.

İlgilendiğimiz kısım "scrape_configs" bölümüdür. Bu bölüm, scrape yapmak için ek işler eklememizi sağlayacak olan bölümdür.

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

3. Bu bölümün altında, başka bir node eklemek için gereken yapılandırmayı eklemeye başlayalım.

Burada, scrape yaptığımız bu belirli hedef için bir isim tanımlamamız gerekiyor. Bir isim tanımlayarak, bu yapılandırmadan scrape edilen verilere bir etiket eklenecektir.

Ayrıca hedef endpoint'imizi belirtmek için bu yapılandırmayı kullanmamız gerekiyor. Node'larımız durumunda, bu cihazın IP adresi, ardından 9100 portu olacaktır.

Aşağıdaki satırları dosyaya girerken, "[IPADRESI]" kısmını cihazınızın IP'si ile değiştirdiğinizden emin olun.

  - job_name: 'node1'

    static_configs:
    - targets: ['[IPADRESI]:9100']

4. Yeni yapılandırma eklendiğinde, aşağıda gösterdiğimize biraz benzeyen bir şeyle karşılaşmalısınız.

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # The job name is added as a label `job=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node1'

    static_configs:
    - targets: ['192.168.0.193:9100']

5. Her şeyi doğru şekilde yapılandırdığınızdan memnun olduğunuzda, artık dosyayı kaydedebilirsiniz.

CTRL + X, ardından Y, sonra ENTER tuşuna basarak kaydedin.

6. Prometheus yapılandırmasında değişiklik yaptığımız için, yazılımı yeniden başlatmamız gerekiyor.

Raspberry Pi'mizde onun için zaten bir servis oluşturduğumuzdan, yeniden başlatmak aşağıdaki komutu çalıştırmak kadar basittir.

sudo systemctl restart prometheus

7. Prometheus web arayüzünüze geri dönerseniz, artık node'unuzdan çekilen verileri görmelisiniz.

Örneğin, node'umuzun artık hedefler sayfasında olası bir veri kaynağı olarak görüldüğünü görebiliriz.

Prometheus Yeni Node Eklendi

Sonuç

Bu noktada, artık Raspberry Pi'niz Prometheus izleme yazılımıyla kurulmuş olmalı.

Ayrıca, ek bir cihazda node exporter yazılımını nasıl kuracağınızı ve Raspberry Pi'nizin ondan verileri nasıl okuyacağını öğrenmiş olmanız gerekiyor.

Prometheus, kullanımı oldukça basit bir yazılımdır ve sistemlerinden metrikler almak isteyenler için mükemmeldir.

Ayrıca, Prometheus'u Grafana gibi bir analitik görselleştirme aracıyla birleştirebilirsiniz. Grafana, verilerinizi daha kolay görüntülemenizi ve kolayca kullanışlı grafikler oluşturmanızı sağlayacaktır. En iyisi, Raspberry Pi üzerinde de çalışır.

Prometheus'u Raspberry Pi'nizde çalıştırmakla ilgili herhangi bir sorunla karşılaştıysanız, aşağıya yorum bırakmaktan çekinmeyin.

Cihazınızla neler yapabileceğinizi görmek için diğer Raspberry Pi projelerimize de göz atmalısınız.