2017-02-22 26 views
8

Etkinliğe dinleme/tepki verme ile ilgileniyorum, bir hizmetin yetersiz CPU veya bellek nedeniyle bir görevi başlatamaya başlayamaması. Belirli bir hizmeti seçip "Etkinlikler" sekmesine baktığımda bu bilgiler konsolda görüntülenebilir. Orada, aşağıdaki gibi bir olay görüntülenir:AWS ECS hizmetinde "Yetersiz işlemci/bellek" olayı nasıl dinlenir?

"hizmet X, bir kapsayıcı örneği tüm gereksinimlerini karşıladığı için bir görev veremedi. En yakın eşleşen kapsayıcı örneği Y, yetersiz CPU birimlerine sahiptir. , Sorun Giderme bölümüne bakın. "

Kümedeki kapsayıcı örnekleri bir AutoScalingGroup'da yönetilir, bu nedenle uygun bir eylem, bu olaya tepki vermek ve ek bir örnekte ölçeklendirerek, bu sayede görevin çalışacak şekilde zamanlanmasını sağlar. Şimdi, benim sorunum, bu olaya nasıl tepki gösteririm?

  • /var/log/messages
  • /var dmesg

    • /var/log /:

      Ben kümedeki tüm EC2 örneklerini aşağıdaki dosyalardan verileri içeren bir LogGroup var/docker/log

    • /var/log/ecs/ecs-init.log.*
    • /var/log/ecs/ecs-agent.log.*

    (EC2 örnekleri, amazon ecs ile en iyileştirilmiş görüntülere dayanmaktadır)

    Başlangıçta, "X hizmeti bir görev veremedi ..." iletisi, bu günlük dosyalarından birinde görünecektir. daha spesifik olarak ecs-agent.log veya ecs-init.log), ama durum böyle değildi.

    "ECS Evenets" in bir şey olduğunu anladım (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_cwe_events.html numaralı telefondan daha fazlası). Ancak maalesef bu özel olay, "ECS Events" tarafından desteklenen bir değil. Yalnızca: Kapsayıcı Örneği Durum Değişikliği ve Görev Durumu Değiştirme Etkinlikleri. "Hizmet Durumu Değiştirme Olayları" NOT. Her ne kadar olsa da, hizmetteki "Olaylar" sekmesinden gelen olayların da yayınlanacağını düşünürler. Ben belgelerine bile söylüyor fark geldi: CloudWatch Olaylar bir Amazon ECS küme içinde hem konteyner örnekleri mevcut durumu ile ilgili gerçek zamanlı bildirimler yakın almak için

    "Sen Amazon ECS olay akışını kullanabilir ve Bu kapsayıcı örnekleri üzerinde çalıştıran tüm görevlerinin geçerli durumu. "

    Ve böylece, "CloudWatch Olayları için Amazon ECS Olay Akışı", hizmet olaylarını buharlaştırma (ve dolayısıyla çalışmayı engelleyen görevler için olayları değil). Umarım, "Hizmet Durumu Değişim Olayları" nın gelecekte dahil edileceğini umuyorum, bu olayla eşleşen bir CloudWatch Etkinlik Kuralı oluşturabildiğim, daha sonra bir etkinliğin "hizmet X" türünde bir olay olup olmadığını belirleyen bir Lambda işlevini tetikler. bir görev veremedi ... "ve buna dayanarak, AutoScalingGroup'u kümeye ek bir örnekte ölçeklendirmek için kullanamazsınız.

    Ancak belirtildiği gibi, şu anda desteklenmiyor. Bu etkinlik için "dinleyebileceğim" başka bir yolu var mı?Hatta her 2-3 dakikada bir CLI kullanan "aws ecs define-services --service X" olaylarını listeden çıkarmak için bir lambda çalıştırmayı düşündüm ve daha sonra "servis X" bir görev veremedi ..." Etkinlik. Ama bu yanlış görünüyor ...

    Herhangi bir yardım çok takdir edilmektedir. Teşekkürler!

  • +0

    AWS, ECS için makul ölçümler sağladıysa (* mutlak * cpu/bellek kullanılabilir) mümkün olmak Yani, bu değerler kümede çalışan hizmetler için en büyük gereksinimlerin altına düştüğünde ve uygun şekilde ölçeklendiğinde bir alarm kurabilir. AWS için özellik isteği? – MikeGM

    +0

    Kullanılabilir mutlak CPU/bellek yeterli olacağından emin değilim. Yeterli belleğe sahip bir örneğiniz ve yeterli bir cpu içeren bir başka örneğiniz olabilir, ancak hem yeterli belleğe hem de cpu sahip olan bir örneğe sahip olamazsınız. Daha sonra, problemi örtebilecek başka kısıtlamalar vardır, örn. kullanılabilir bağlantı noktaları, ana makine etiketleri, vb. Yerleşim hataları almaya devam edersiniz ve yine de onları yakalamak ve muhtemelen kümenizin boyutunu büyütmek isteyebilirsiniz. –

    cevap

    1

    Ayrıca bu soruna bir çözüm arıyorum. Firmamız ECS kümelerimizi yönetmek için Spotinst kullanıyor. Geçen yıl Spotinst'ten bir çözüm sunmasını istedim. Orada bir ürün yöneticisi bana sadece Ağustos ayının başında özelliği bırakacaklarını bildirdi (bundan birkaç hafta sonra).

    +0

    GÜNCELLEME: Şimdi bu özelliği otomatik ölçeklendirmek için kullanıyoruz (iyi çalışıyor) ve Spotinst özelliği daha fazla "yedek" kaynak bırakmak için özelliği geliştirmek için çalışıyor. –