Birden çok sunucuda program ilerlemesini izleme


9

Bir tmuxoturumda veri analizi görevleri yürüten python programları çalıştıran üç sunucumuz var . Şu anda kullandığımız yöntem, tmuxoturumu bağlayan ve çıktıyı komut satırında izleyen her birine ssh'ing .

Bu yöntem sıkıcıdır, bu yüzden aradığımız, aynı anda birden çok sunucu için program ilerlemesinin (CLI üzerinde çıktı) izlenmesini otomatikleştiren bir çözümdür. İdeal olarak bir web kullanıcı arayüzü çözümü isteriz, ancak bir CLI da mükemmel bir şekilde uygun olacaktır.

Okuduğunuz için teşekkürler.


Yanıtlar:


8

Geçici uzun süreli komutları her çalıştırdığınızda, geri adım atmanız ve işleminizi yeniden düşünmeniz gerekir, çünkü hata işleme de dahil olmak üzere otomatikleştirilmelidir.

Durumu görmek için sunuculara bağlanmak yerine, bu bilgiyi dışarı atmak daha iyi bir yaklaşımdır. Bir sürü özel kod yazmak istiyorsanız çok çeşitli şeyler yapabilirsiniz, ancak en basit şey, çıktıyı syslog aracılığıyla merkezi bir günlük sistemine (syslog, ELK veya her neyse) göndermeye başlamaktır. Bu şekilde her şeyi merkezi bir konumdan izleyebilirsiniz.

Düşünmek, eğer bu bir defalık bir görev değilse, izleme otomatik olmalıdır. Yani, şeylerin olması gerektiği gibi ilerleyip ilerlemediğini görmek için asla günlükleri izlemek zorunda kalmamalısınız. Bunun yerine, uyarınız tetiklenene kadar olduklarını varsaymalısınız (ve diğer çalışmalarla devam edin) . Bu, güvenilir ve geniş kapsama alanı uyarısı almak için zaman yatırımıdır, ancak sistemleriniz karmaşıklaştıkça, herhangi bir şeyi değiştirdiğinizde her şeyi izlemek zorunda kalmayacağınız için ödeme yapar .


Bu tek seferlik bir şey değil. Günlüğü izleme ve merkezileştirme otomasyonuna zaman ayırma fikrinizi seviyorum. Kullanımı ücretsiz olan ve programları çalıştıran ubuntu ana bilgisayarlarıyla iyi çalışan araçlar için herhangi bir öneriniz var mı?
guano

@guano Bence Wissam, uyarıyı güçlendirmek için Sensu gibi bir şey kullanmanın yanı sıra, bahsettiğim tüm araçları kapsıyor .
Xiong Chiamiov

4

Graylog

İki kişi zaten mevcut sürecinizi yeniden düşünmenizi tavsiye ettiğinden (bir noktada uykusuz gecelere neden olacağından ikinci olarak;)), başka bir rotaya gideceğim ve bence - çoğu kişiye uyan belirli bir yazılım önereceğim ihtiyaçlarınız: Graylog .

Hem günlük toplama hem de iş zekası için birkaç ELK yığını uyguladım ve kullandım ve şu anki işverenimde yaklaşık iki yıldır graylog çalıştırdım / korudum. Aşağıdaki özelliklere sahip olduğundan ve - bence - kurulumu ve bakımı biraz daha kolay olduğu için graylog'u öneriyorum:

  • Bir web arayüzü
  • Çok kullanıcılı yetenekler
  • uyarma

Senaryoyu anladığım kadarıyla, günlük mesajları akışınızda görünen belirli olaylarda harekete geçmeniz veya uyarılmanız gerekiyor gibi görünüyor. Biz bakarsak Graylog özellikleri :

Başarısız giriş denemeleri, istisnalar veya performans düşüşü gibi bir şeye dikkat edilmesi gerektiğinde eylemleri tetikleyin veya bildirim alın.

Fikirler: Ekibinize bir e-posta veya Gevşek mesaj gönderin. İşleme yükünü dengelemek için yeni bir makine ortaya çıkarın. Bir saldırı algılandığında güvenlik duvarlarınızdaki IP aralıklarını otomatik olarak engelleyin.

Graylog'u denemek için aşağıdaki iki adımı öneririm:

  • Uygulama ana bilgisayarlarınız tarafından graylog (ve bağımlılıkları MongoDB ve Elastik Arama) çalıştırmak için erişilebilen özel bir ana bilgisayar kurun
  • Günlükleri uygulamanızdan graylog'a gönderin (muhtemelen GELF mesajları olarak)

Not: Bu iki adım, en iyi uygulamaların sayfalarını ve sayfalarını doldurma özelliğine sahiptir ve en az birkaç düşünce almalıdır. Graylog'un bir izleme çözümü olmadığını ve graylog'un kendisinin uygun bir izleme aracıyla (örneğin, sadece birkaçını belirtmek için Icinga, Prometheus, Nagios gibi) izlenmesi gerektiğini belirtmiyoruz.


3

@Xiong Chiamiov ile hemfikirim ve daha fazla açıklama seçeneği sunmak istiyorum. Eğer izlenecek CLI her satırı istiyorsanız, o zaman, bütün başka bir dosyaya özgü dosyaya çıktı ve hatayı yeniden yönlendirmek kullanmak öneririm logstash veya filebeat bu dosyaların ikisi de göndermeye Elasticsearch , o zaman yapılandırabilirsiniz Logtril ile Kumpana , kullanıcı dostu arayüz ile gerçek zamanlı olarak birden fazla ana bilgisayardan günlük olaylarını görüntüleme, analiz etme, arama ve kuyruk kaydı yapma


1

merkezi tmux

Diğer cevaplar uzun vadede daha akıllı ve daha akıllı olsa da, hızlı hileli CLI çözümünden bahsetmeye değer. tmuxDiğerlerine erişebilen bir sunucuda çalıştırın . Bunun için iyi bir yer bir atlama kutusu veya millet zaten giriş yapmış başka bir yer olurdu. Bu "merkezi" tmuxssh içinde farklı bir bölmede her kutuya ve kuyruk ne günlük dosyaları gereklidir. ctrl- b "içindeki bir sekmede daha fazla bölme almak için - tuşunu kullanabilirsiniz tmux. Şimdi birileri "merkezi" tmuxoturuma bağlı olduğunu kontrol etmek için yapmak zorunda tüm ve bir bakışta tüm küme görebilirsiniz.

Çalıştığınız web UI çözümlerini oluşturmak için çok zaman harcadım, ancak bugün ihtiyacınız varsa birlikte bir şey kesmek tmuxgünü kurtarabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.