İçeriğe geç

Prometheus ile Red Hat sistemlerin monitör edilmesi

Selamlar,

Bir süredir kurcaladığım ve beğendiğim bir açık kaynak monitörleme sistemi olan Prometheus ile ilgili Türkçe bir kaynak göremediğimden yazmak istedim. İlk yazıda kurulum ve yapılması gereken ayarlardan bahsedeceğim. Sonraki yazılarda bazı ek bileşenlerin kurulum ve konfigürasyonlarına da değineceğim.

Test ettiğim ortam bilgileri:

  • Cloud sağlayıcısı: AWS
  • Sistem: Red Hat 7.3

Sistem Güncelleme

Yeni bir sunucu üzerinde çalışacaksanız, kurulum sırasında eksik paket veya bağımlılık problemleriyle karşılaşmamanız için öncelikle sistemi güncelleştirmenizi öneririm.

Prometheus’ın İndirilmesi

“prometheus” adında bir klasör oluşturup Prometheus’ın son stabil versiyonunu indirelim.

Not: 8.8.2017 tarihi itibariyle son stabil release 1.7.1 olarak Github’da yer almaktadır. 2.0.0 sürümüne Alpha veya Beta olarak https://github.com/prometheus/prometheus/releases/ adresinden ulaşabilirsiniz.

Prometheus’ın Kurulması

Kurulum aşamasında birden fazla sayıda bileşen kurulumu yapılacağı için, bir önceki adımda oluşturduğumuz “prometheus” klasörü üzerinden diğer işlemlere devam edelim. İndirdiğimiz arşivi dizine çıkarıyoruz.

Prometheus kurulumu aslında bu kadar lakin asıl olay bu değil tabi ki 🙂

Ana servise “version” parametresini girdiğimizde aşağıdaki gibi bir çıktı almanız gerekiyor:

Node Exporter’ın İndirilmesi

Node Exporter, monitör edilen makinelerin CPU yükü, RAM kullanımı, I/O istatistiği, network bilgileri, dosya sistemi istatisikleri, load average bilgileri başta olmak üzere birçok metriği Prometheus’ın okuyabileceği formata çeviren ve aktaran bir araçtır, Go diliyle yazılmıştır.

Not: 8.8.2017 tarihi itibariyle son Node Exporter sürümü 0.14.0’dır. Diğer versiyonlara ulaşmak ve güncellemeleri takip etmek için https://github.com/prometheus/node_exporter/releases adresini ziyaret edebilirsiniz.

Node Exporter için ana klasör altında yeni bir dizin oluşturalım ve çıkarma işlemini buraya yapalım.

Arşivi çıkaralım.

Node Exporter’ın Başlatılması ve Servis Olarak Ayarlanması

Node Exporter, doğrudan bir shell script çalıştırır gibi terminal üzerinden başlatılabilir fakat daha yönetilebilir bir formata çevirmek için Systemd’nin anlayabileceği formata çevirmek daha iyi bir pratik olacaktır.

Şeklinde servis dosyamızı oluşturuyoruz. Burada ben servis adını “nodex” olarak kısalttım, siz orjinal adı kullanabilir veya kafanıza göre değiştirebilirsiniz.

systemd’nin yeni konfigürasyonu tanıması ve servisi reboot sonrasında otomatik olarak başlatması için sırasıyla gerekli systemctl komutlarını giriyoruz.

Dilerseniz “systemctl status nodex” komutu ile de servisin çalıştığını teyit edebilirsiniz.

Buraya kadar herhangi bir hata yapmadıysanız, web tarayıcısı üzerinden http://sunucu_ip_adresi:9100/metrics adresine gittiğinizde aşağıdaki gibi bir ekranla karşılaşmanız gerekiyor.

Not: Yapılan ayarlardan emin olmanıza rağmen sayfaya erişim sağlayamıyorsanız, 9100 portuna izin verildiğinden emin olun. AWS EC2, Google Cloud Platform vb. bulut sunucuları üzerinde çalışıyorsanız bu platformlar üzerinden aynı port için custom TCP kuralı oluşturmanız gerekebilir.

Prometheus’ın Başlatılması

“prometheus” klasörü altında bulunan prometheus.yml dosyasında ufak bir değişik yapacağız.

En altta yer alan “targets” bölümünde IP adresimizi 9100 portuyla birlikte yazarak dosyayı kaydediyoruz.

Not: Eski sürümlerde “prometheus.yml” yapılandırma dosyası hali hazırda olmayabilir, bu durumda gerekli değişkenleri el ile yazmanız veya hazır bir yerden kopyalamanız gerekir.

Prometheus’ı hata mesajlarını da kapsayacak şekilde bütün çıktıları bir log dosyasına yazdırmasını sağlayıp bir arkaplan servisi olarak başlatalım.

“tail -f prometheus.log” ile oluşturulan log dosyasının anlık takibini yapabilirsiniz.

Artık tarayıcı üzerinden 9090 portuna giderek Prometheus web konsoluna ulaşabiliriz.

Versiyon, yetkili kullanıcı, çalıştırılan dizin gibi bazı bilgilere “Status –> Runtime & Build Information” menüsünden erişebilirsiniz.

Node Explorer‘ın doğru bir şekilde çalıştığını test etmek için, Graph ekranında bir metrik seçerek gelen ekranı kontrol etmek önemli. Ben örnek olması açısından “node_network_receive_packets” metriğini seçtim.

Prometheus, sık kullanılan metrikleri ayrı birer şablon haline getirmiş, “prometheus.yml” dosyasında tanımlı olan:

bölümü, “prometheus” şablonunu konsol erişimine açmaktadır. CPU, I/O ve RAM kullanımı bilgileri için job_name parametresini ‘node‘ olarak değiştirip, tarayıcıdan:

http://server_ip_adresi:9100/console/node.html

adresine gittiğimizde bu kullanım bilgilerini grafiksel olarak görebiliriz.

Yazının devamı gelecek.

Tarih:DevOpsLinux

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

DenizParlak.