Amazon Cloudwatch'ı, sunucunuz kapalıyken uyarı alacak şekilde ayarlama


13

Amazon EC2 üzerinde çalışan ve web sunucusuna çevirdiğim bir örneğim var.

Şimdi cloudwatch'a bakıyordum, ancak iş için doğru araç olup olmadığını bilmiyorum. Temelde ne olursa olsun, sunucu kapalı olduğunda haberdar olmak istiyorum.

Belki sunucu saldırıya uğradı ya da herhangi bir nedenle sunucu kapatıldı, bu konuda bir bildirim almak istiyorum.

Clouwatch'ı etkinleştirdim ve bir uyarı oluşturmaya çalıştım, ancak yalnızca ağ girişi veya işlemci kullanımı, d metrisi gibi şeyler görüyorum. Şimdi bunların hile yapıp yapmayacağını bilmiyorum.


1
ödeme cloudkick. fikrimi yaymamamız gerektiğini biliyorum, ama cloudkick benim en sevdiğim izleme çözümü. siteniz pinglenebilir (apache / nginx) olabileceğinden pingdom oldukça işe yaramaz, ancak proxy'nizde çok php / java / ruby ​​işlemleriniz çalışmıyor olabilir. her 3 dakikada bir cloudkick ile gerçek bir URL'ye vurmak ve belirttiğiniz metnin varlığını veya 2xx başarısını kontrol etmek çok daha kullanışlıdır ve tüm yığının çalışmasını sağlar. yükleme, mem kullanımı, aracı bağlantısı (sunucu çevrimdışı veya bağlantı kesildi), sayfalarda http 2xx başarısı, vb. için monitör kurulumum var.
iainlbc

Burada iyi bir noktaya değindin. Eğer sadece php kapalı ise hala 200 yanıt alırsınız. Sağladığınız bağlantı iyi bir alternatif. Son kararımı verirken bir göz atacağım.
Saif Bechan

@iainlbc Pingdom'u gerçek bir URL'ye vuracak ve belirli bir metni kontrol edecek şekilde ayarlayabilirsiniz.
ceejayoz

Yanıtlar:


11

Bir öneri, CPU kullanımı gibi her zaman sayısal bir değere sahip olması gereken bir metriği izlemektir ve metrik durumu 'yetersiz veri' olduğunda bir alarmı tetiklemek Amazon'un SNS'yi bunu size bildirmek için kullanabilirsiniz.

Alternatif olarak, belirli hizmetler için bir ikili durum döndüren (httpd, mysql, vb.) Özel metrikler oluşturabilir ve bu okuma 0'dan herhangi bir zamanda bir uyarı oluşturabilirsiniz. Bu yaklaşım, çok daha ince ayrıntılar sunar - yetersiz verilerle birleştirir 'tüm vakaları kapsamaktadır.

Sitenizi gerçekten izleyen bir şey (ör. Pingdom, UptimeRobot, vb.) Kullanarak daha başarılı olabilirsiniz.


Pingdom gibi hizmetlere baktım ve onları kesinlikle etkinleştireceğim. Ayrıca, cpu'ya bakmayı da düşünüyordum, ama sadece web sunucusu hacklendiğinde ne olacağını düşündüm. Httpd, mysql vs için bir test olması kesinlikle yardımcı olacaktır. Bana bu ikili durum metriğinin nasıl etkinleştirileceğine dair bir ipucu verebilir misiniz ?
Saif Bechan

Kısaca: İlgilenilen hizmetin durumunu almanın bir yolunu belirleyin (örn . Pid / name için ps | grep ; kullanımda bir port olup olmadığını kontrol edin , vb.) - yani bir bekçi köpeği betiği. Cloudwatch API'sini (PutMetricData) onu 0 (aşağı) veya 1 (yukarı) ileterek çağıracak şekilde değiştirmek için bu komut dosyasını değiştirin - bu amaç için var olan SDK'lardan birini kullanmak en iyisidir (ör. Ruby, PHP, vb); komut satırı sürümü mon-put-data daha yavaştır. Hepsini cron ile çalıştırın.
cyberx86

1
Tamam bu biraz karmaşık geliyor. Bence uptimerobot gibi bir hizmet benim için kişisel olarak daha iyi bir seçim olacaktır. Tüm yardımlarınız için teşekkürler.
Saif Bechan

3

CloudWatch için zengin uyarı göndermek için OpsGenie'yi ( http://www.opsgenie.com ) kullanabilirsiniz. Currenly CloudWatch, SNS mekanizması aracılığıyla E-posta ve SMS dahil olmak üzere sınırlı bir uyarı mekanizması kümesine sahiptir.

CloudWatch'u, OpsGenie web hizmetleri API'sını arayacak, alıcıların tercihlerine göre iPhone / Android uygulamalarına push bildirimleri, SMS, sesli aramalar vb. Yoluyla doğru kişilere hızlı bir şekilde bildirim alacak şekilde yapılandırabilirsiniz.

Ayrıntılı bilgi için lütfen aşağıdaki blog yayınına göz atın:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html


2

Cloudwatch'da bir Alarm oluşturabilir ve alarmı "Yetersiz Veri" durumuna geçtiğinde sizi uyaracak şekilde ayarlayabilirsiniz. Zaten mevcut olan metriklerin çoğu, makinenizin içinde olup bitenler hakkında gerçek bir fikri olmayan VM Ana Bilgisayarından alınmıştır.

Başlangıçta, Amazon araçlarını örneğinize yüklemenizi ve bir şeyi (Herhangi bir şey: CPU kullanımı, her neyse) bildirmek için bir komut dosyası kurmanızı ve bu metrik veri göndermeyi durdurursa (Böylece metrik Yetersiz Veri durumuna geçer) ).

Bu sadece minimum bir minimum, ancak başlamak için iyi bir yer olmalıdır.

Cloudwatch geliştirici kılavuzunun izleme komut dosyaları bölümüne bakın: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html


Harika, sadece aradığım şey.
GivP

2

Route 53 ve onun "Sağlık kontrolleri" ni kullanabilirsiniz. Bununla, SNS uyarıları gönderebilir ve kullanıcılarınızı başka bir ikincil web sitesine veya hata ekranına yönlendirebilirsiniz. Bu sorunun Cloudwatch'dan daha iyi bir çözüm olduğunu düşünüyorum.


2

Bir EC2 durum kontrolü uygulayabilirsiniz . EC2 kontrol panelinden yapılır. Örneklere gidin, örneğinizi seçin, durum kontrolleri sekmesini seçin (örnek açıklamasının yanında) Durum kontrolü alarmı oluştur'u tıklayın Varsayılan "Durum Kontrolü Başarısız (herhangi biri)" iyi olmalıdır. Geçici sorunlar için rahatsız etmemem için aralığı her zaman birden fazla ayarladım.

EC2'yi herhangi bir nedenden ötürü örneğinizi otomatik olarak kurtaracak şekilde ayarlamak da mümkündür .

Ayrıca ikincil bir izleme sistemi öneririm. Aptal bunun için iyidir. Başka bir ana bilgisayardan benim web sunucusuna işaret linux yardımcı programı kurdu. Arka arkaya 200 yanıt kodu alamazsa bir e-posta alırım.


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.