Otopsi: Kötü Ağ Geçidi
2024-01-11 tarihinde alan adı yenileme hatası nedeniyle Logto hizmet kesintisi olayı raporu.
Özet
2024-01-11 tarihinde, Logto hizmetleri birçok 502 Kötü Ağ Geçidi hatasıyla hizmet kesintisi yaşadı.
- Başlangıç zamanı: Yaklaşık 2024-01-11 15:28 UTC
- Çözülme zamanı: Yaklaşık 2024-01-12 00:49 UTC
- Süre: Yaklaşık 9 saat
- Etkilenen hizmetler: Logto kimlik doğrulama hizmeti, Logto Bulut hizmeti
- Etkililik seviyesi: Kritik
- Ana neden:
logto.app
alan adı süresi doldu ve yenileme tamamlanamadı.
Zaman Çizelgesi
- 2024-01-11 15:28 UTC Kullanıcı, Logto kimlik doğrulama hizmetine erişirken 502 Kötü Ağ Geçidi hatası bildiriyor.
- 2024-01-11 15:42 UTC Daha fazla kullanıcı aynı sorunu bildiriyor.
- 2024-01-11 15:50 UTC Ekibimiz sorunla ilgili araştırmalara başlıyor ve diğer ekip üyelerine telefonlar ediyor. Gecenin geç saatleri olduğu için bazı ekip üyelerini normal telefonlar uyandıramadı.
- 2024-01-12 23:54 UTC Bulut hizmetinin kimlik doğrulama hizmetine istek gönderdiğini ancak isteğin ERR_TLS_CERT_ALTNAME_INVALID hatası nedeniyle başarısız olduğunu öğrendik.
- 2024-01-12 00:36 UTC DNS önbelleğini temizledik sorun çözülür mü diye. Çözülmedi.
- 2024-01-12 00:38 UTC TLS sertifikalarını yeniden düzenledik sorun çözülür mü diye. Çözülmedi.
- 2024-01-12 00:45 UTC
logto.app
alan adının süresinin dolmuş olabileceğini fark ettik. Alan adı kayıt şirketini kontrol ettik ve yenilenmediği için alan adının süre dolduğunu öğrendik. - 2024-01-12 00:49 UTC Alan adı yenileme işlemi tamamlandı. Hizmetler yavaş yavaş normale dönüyor.
Olay analizi
Ne oldu?
Alan adlarımız genellikle alan adı kayıt şirketimiz aracılığıyla otomatik olarak yenilenir. Ancak, bu durumda yenileme işlemi olası bir yanlış yapılandırma nedeniyle başarısız oldu. Sonuç olarak, logto.app
alan adının süresi doldu ve DNS kayıtları kayıt şirketinin park sayfasına yönlendirildi.
Şu anda, kimlik doğrulama hizmeti çalışmaya devam etmektedir, ancak çoğu istek ona ulaşamamaktadır. İstisna, auth.logto.io
alanına bağlı olan Logto yönetici kiracısıdır ve süre dolmasından etkilenmemiştir.
Kimlik doğrulama hizmetine ek olarak, Logto kiracılarını organize eden ve Logto Bulut Konsolunu (bir ön uç uygulaması) sağlayan bir Bulut hizmetimiz de bulunmaktadır.
Bir kullanıcı Bulut Konsolunu çalıştırdığında, uygulama doğrudan kimlik doğrulama hizmetini çağırmaz; bunun yerine, tüm yönetim işlemleri için Bulut hizmetini çağırır.
Logto Yönetim API'si ile uyumlu olmak için, istekleri kimlik doğrulama hizmetine yönlendirmek amacıyla "Yönetim API proxy" uç noktasını tasarladık. Tüm akış şu şekildedir:
*.logto.app
alan adının sertifika uyumsuzluğu sorunu olduğu için, Bulut hizmeti (Node.js) isteği reddeder ve bir hata atar.
Normalde, istek hataları hizmetin çökmesini önlemek için yakalanır. Ancak, hata proxy modülünden kaynaklandığı için, mevcut hata işleme mantığı onu yakalayamadı ve bu da hizmetin çökmesine neden oldu.
Her Logto hizmetinde en az üç replika bulunmasına rağmen, Bulut Konsolundan gelen hemen hemen her istekte hata oluştuğu için tüm replikalar kolayca çöktü. Otomatik kurtarma mekanizmasının devreye girmesi zaman aldığından, hizmet bir süre kullanılamaz hale geldi.
Bu, kullanıcıların neden 502 Kötü Ağ Geçidi hataları gördüğünü açıklıyor (tüm replikalar çöktü). Bulut hizmeti yeniden çalışır duruma geldiğinde, yeni ve tekrarlanan Bulut Konsol istekleri geliyor ve çökme döngüsü devam ediyor.
Bulut hizmeti kapalı olduğunda, bu aynı zamanda belirli uç noktalar (çoğunlukla /api/.well-known/sign-in-exp
) için kimlik doğrulama hizmetini de etkiler. Bu uç nokta, bağlayıcı bilgilerini içeren ve Bulut hizmetinden alınması gereken oturum açma deneyimi yapılandırmasını almak için kullanılır.
Çözüm
- Alan adını manuel olarak yenile.
Alınan ders
- Alan adı sona ermesi durumunda her zaman izleme kur veya daha uzun bir dönem için satın al.
- Zaman dilimi farklılıklarının olay müdahalesinde gecikmeye neden olabileceğini unutma.
- İzlemenin tüm alan adlarını kapsadığından emin ol.
- Atılabilir modüllerle etkileşimde dikkatli ol, hataların yakalanıp doğru bir şekilde işlenebileceğinden emin ol.
Düzeltici ve önleyici tedbirler
- ✅ Otomatik yenileme etkin olsa bile, alan adı sona ermesi için aylık izleme ekle.
- ✅
logto.app
için izleme ekle. - ✅ Bulut hizmeti hata işleme mantığını güncelle, proxy hatalarını doğru bir şekilde yakalayarak işle.
- ✅ Tüm zaman dilimlerini kapsayan bir SRE ekibi kurulmadan önce ekibi olaylar için uyandırabilecek daha güçlü uyarılar uygula.