Birkaç kez, Linux dağıtımlarının, içlerine kurulabilecek binlerce açık kaynak uygulamasına sahip olarak bize sunduğu ölçeklenebilirlikten ve böylece hizmetlerin ve rollerin kullanım ve geliştirme kapasitesini önemli ölçüde genişlettiğinden bahsettik.
Her tür görev için kişisel veya kurumsal düzeyde uygulamalar bulabiliriz ve bugün Solvetic, birden fazla türde metrik toplama söz konusu olduğunda potansiyel dinamizmi nedeniyle çarpıcı olanı ayrıntılı olarak analiz edecek ve bize çok yararlı olacak ayrıntılı raporlar sunacaktır. yönetimimize ve desteğimize gelince.
Bu uygulamanın adı Prometheus ve bugün pratik bir şekilde Ubuntu 17.04'te nasıl kurulacağını göreceğiz.
Prometheus nedir?Prometheus, hizmetlerimizin ölçümlerini toplayan ve bunları bir zaman serisi veritabanında saklayan güçlü bir açık kaynaklı izleme sistemidir. Grafana gibi araçlar aracılığıyla bize çok boyutlu bir veri modeli, esnek bir sorgu dili ve çeşitli görselleştirme olanakları sunuyor.
Varsayılan olarak, Prometheus diğerlerinin yanı sıra alınan istek sayısı, bellek tüketimi gibi yalnızca kendisiyle ilgili metrikleri dışa aktarır. Ancak, analiz edilecek diğer yönlerin ek ve ayrıntılı ölçümlerini oluşturan isteğe bağlı programlar olan ihracatçılar yükleyerek Prometheus'u genişletmek mümkündür.
Bu ihracatçılar, mesajlaşma sistemlerinde, API'lerde ve çok daha fazlasında altyapıya, veritabanlarına ve web sunucularına odaklanmıştır.
Prometheus'un bize sunduğu ihracatçılardan bazıları:
düğüm_ihracatçıBu ihracatçı, mevcut CPU, bellek ve sabit disk kullanımının yanı sıra G / Ç ve ağ istatistikleri (bir diskten okunan bayt sayısı veya bir diskteki ortalama yük gibi) dahil olmak üzere ekipman altyapısına ilişkin metrikler üretir.
blackbox_exporterBu dışa aktarıcı ile uç noktaların kullanılabilirliğini, yanıt süresini ve daha fazlasını belirlemek için HTTP ve HTTPS gibi tarama protokollerinden türetilen ölçümler oluşturabileceğiz.
mysqld_exporterBu dışa aktarıcının işlevi, yürütülen sorgu sayısı, sorguların ortalama yanıt süresi ve kümenin çoğaltma durumu gibi bir MySQL sunucusuyla ilgili ölçümleri toplamaktır.
tavşanmq_exporterBu dışa aktarıcı, RabbitMQ mesajlaşma sistemi hakkında, yayınlanan mesajların sayısı, teslim edilmeye hazır mesajların sayısı ve kuyruktaki tüm mesajların boyutu gibi ayrıntılar dahil olmak üzere ölçümler üretir.
nginx-vts-ihracatçısıBu dışa aktarıcı ile, Nginx VTS modülünü kullanan bir Nginx web sunucusunda, açık bağlantıların sayısını, gönderilen yanıtların sayısını (cevap kodlarına göre gruplandırılmış) ve gönderilen veya alınan isteklerin toplam boyutunu içeren ölçümler elde edeceğiz. bayt.
Prometheus ÖzellikleriPrometheus'un en göze çarpan özelliklerinden bazıları şunlardır:
- Veri boyutu, Prometheus olarak tüm verileri aynı metriğe ve aynı etiketli boyut kümesine ait zaman değerleri akışlarını kullanarak zaman serisi olarak saklar. Ek olarak, Prometheus, sorgular sonucunda zamandan türetilmiş zaman serileri üretebilir.
- Dinamik sorgular Bu bağlamda, Prometheus, kullanıcının zaman serisi verilerini gerçek zamanlı olarak seçebileceği ve toplayabileceği işlevsel bir ifade dili sunar. Bir ifadenin sonucu bir grafik olarak görüntülenebilir, Prometheus ifade tarayıcısında tablo verileri olarak görüntülenebilir veya HTTP API aracılığıyla harici sistemler tarafından yürütülebilir.
- Prometheus, Grafana 2.5.0'dan (2015-10-28) beri mevcut olan Grafana'yı içerdiğinden, çeşitli görüntüleme seçenekleri.
- Verimli depolama, çünkü Prometheus'un gelişmiş bir yerel depolama altsistemi vardır. İndeksler için LevelDB'yi kullanır. Toplu örnek veriler için, örnek verileri sabit boyutlu (1024 bayt yük) parçalar halinde düzenleyen kendi özel depolama katmanına sahiptir. Bu parçalar, zaman serisi başına bir dosyada diskte depolanır.
- Prometheus komut satırı parametreleri ve bir yapılandırma dosyası aracılığıyla yapılandırıldığından basit kullanım. Komut satırı, değişmez sistem parametrelerini (depolama konumları, diske ve belleğe kaydedilecek veri miktarı gibi) yapılandırmayı isterken, yapılandırma dosyası, kazıma işleri ve örnekleriyle ilgili her şeyi ve uygulama ile yüklenen kural dosyalarını tanımlar. .
- Kesin uyarı, Prometheus ifade dili değerlerine dayalı uyarı koşulları tanımlamamıza ve belirli bir zamanda harici bir hizmete tetik uyarıları hakkında bildirim göndermemize ve böylece herhangi bir değişiklikten haberdar olmamıza olanak tanıyan uyarı kuralları oluşturma seçeneğine sahip olarak.
- Prometheus'un bize Java veya Scala, Python, Rubí, Bash, C ++, Common Lisp, Elixir, Erlang, Haskell, Lua for Nginx, Lua for Tarantool, . NET/C#, Node.js, PHP ve Rust.
- Çoklu entegrasyon, mevcut metrikleri üçüncü taraf sistemlerden Prometheus metriklerine aktarmaya yardımcı olan birkaç kütüphanemiz ve sunucumuz olduğundan, bunlardan bazıları Aerospike ihracatçısı, ClickHouse ihracatçısı, Consul ihracatçısı, CouchDB ihracatçısı, ElasticSearch ihracatçısı, Memcached ihracatçısı, MongoDB ihracatçısı , MSSQL sunucu dışa aktarıcı, MySQL sunucu dışa aktarıcı, OpenTSDB Aktarıcı, PgBouncer dışa aktarıcı, PostgreSQL dışa aktarıcı veya ProxySQL dışa aktarıcı.
Şimdi Prometheus'u Ubuntu 17.04'e nasıl kuracağımızı göreceğiz.
1. Nginx kurulumu
Aşama 1
Unutulmaması gereken ilk nokta, Nginx'in Ubuntu'da kurulu olması gerektiğidir, bizde yoksa aşağıdaki komutu uygulayacağız:
sudo apt nginx'i kurun
Adım 2
Gerekli paketlerin indirilmesini ve kurulmasını onaylamak için S harfini gireceğiz. Kurulduktan sonra, Nginx hizmetine erişime izin vermek için Ubuntu güvenlik duvarı ayarlarını yapılandırmak gerekli olacaktır, bunun için ufw uygulamalarının yapılandırmalarını listelemek için aşağıdaki satırı uygulayacağız:
sudo ufw uygulama listesi
Nginx düzeyinde aşağıdaki seçeneklere sahibiz
- Nginx Full: Bu profil, hem 80 numaralı bağlantı noktasını (normal, şifrelenmemiş web trafiği) hem de 443 numaralı bağlantı noktasını (şifreli TLS/SSL trafiği) açar.
- Nginx HTTP: Bu profil yalnızca 80 numaralı bağlantı noktasını açar (normal, şifrelenmemiş web trafiği)
- Nginx HTTPS: Bu profil yalnızca 443 numaralı bağlantı noktasını açar (şifreli TLS / SSL trafiği)
Aşama 3
Bu durumda aşağıdaki satırı uygulayacağız:
sudo ufw 'Nginx HTTP'ye izin veriyor
4. Adım
Güvenlik duvarının durumunun bazı durumlarda devre dışı olduğunu görebiliriz ve bunu etkinleştirmek için gerekli olması gerekir, bunun için aşağıdakileri uygularız:
sudo ufw etkinleştir
Güvenlik duvarında bu parametreleri yapılandırdıktan sonra Prometheus kurulumuna devam ediyoruz.
Giriş Yap Katıl!