Genel olarak, bir üretim kurulumunda Apigee Edge for Private Cloud dağıtımında izleme mekanizmalarını etkinleştirmeniz gerekir. Bu izleme teknikleri, ağ yöneticilerini (veya operatörlerini) bir hata ya da arıza konusunda uyarır. Oluşturulan her hata, Apigee Edge'de uyarı olarak bildirilir. Uyarılar hakkında daha fazla bilgi için İzlemeyle İlgili En İyi Uygulamalar başlıklı makaleyi inceleyin.
Apigee bileşenleri temel olarak iki kategoriye ayrılır:
- Apigee'ye özgü Java sunucu hizmetleri: Bunlar arasında Yönetim Sunucusu, Mesaj İşleyici, Qpid Sunucusu ve Postgres Sunucusu bulunur.
- Üçüncü Taraf Hizmetleri: Nginx Router, Apache Cassandra, Apache ZooKeeper, SymasLDAP, PostgreSQL veritabanı ve Qpid bu hizmetler arasındadır.
Apigee Edge'in şirket içi dağıtımında, aşağıdaki tabloda izleyebileceğiniz parametreler hakkında kısa bir genel bakış sunulmaktadır:
Bileşen | Sistem Kontrolleri | İşlem Düzeyinde İstatistikler | API Düzeyinde Kontroller | İleti Akışı Kontrolleri | Bileşene Özgü | |
---|---|---|---|---|---|---|
Apigee'ye özgü Java hizmetleri |
Yönetim Sunucusu |
|||||
Mesaj İşleyici |
||||||
Qpid Sunucusu |
||||||
Postgres sunucusu |
||||||
Üçüncü Taraf Hizmetleri |
Apache Cassandra |
|||||
Apache ZooKeeper |
||||||
SymasLDAP |
||||||
PostgreSQL veritabanı |
||||||
Qpid |
||||||
Nginx Router |
Genel olarak, Apigee Edge yüklendikten sonra bir Apigee Edge for Private Cloud yüklemesinin performansını izlemek için aşağıdaki izleme görevlerini gerçekleştirebilirsiniz.
Sistem durumu denetimleri
CPU kullanımı, bellek kullanımı ve bağlantı noktası bağlantısı gibi sistem sağlığı parametrelerini daha yüksek bir düzeyde ölçmek çok önemlidir. Sistem sağlığıyla ilgili temel bilgileri edinmek için aşağıdaki parametreleri izleyebilirsiniz.
- CPU Kullanımı: CPU kullanımıyla ilgili temel istatistikleri (Kullanıcı/Sistem/G/Ç Bekleme/Boşta) belirtir. Örneğin, sistem tarafından kullanılan toplam CPU.
- Boş/Kullanılan Bellek: Sistem belleğinin bayt cinsinden kullanımını belirtir. Örneğin, sistem tarafından kullanılan fiziksel bellek.
- Disk Alanı Kullanımı: Mevcut disk kullanımına göre dosya sistemi bilgilerini belirtir. Örneğin, sistem tarafından kullanılan sabit disk alanı.
- Yük Ortalaması: Çalışmayı bekleyen işlemlerin sayısını belirtir.
- Ağ İstatistikleri: Belirli bir bileşenle ilgili iletim hatalarının yanı sıra iletilen ve alınan ağ paketleri ve/veya baytları.
Süreçler/uygulama kontrolleri
Süreç düzeyinde, çalışan tüm süreçlerle ilgili önemli bilgileri görüntüleyebilirsiniz. Örneğin, bir sürecin veya uygulamanın kullandığı bellek ve CPU kullanım istatistikleri buna dahildir. Qpid, Postgres Postmaster, Java gibi işlemler için aşağıdakileri izleyebilirsiniz:
- İşlem tanımlama: Belirli bir Apigee işlemini tanımlayın. Örneğin, Apigee sunucusu Java işleminin varlığını izleyebilirsiniz.
- İş parçacığı istatistikleri: Bir işlemin kullandığı temel iş parçacığı oluşturma kalıplarını görüntüleyin. Örneğin, en yüksek iş parçacığı sayısını ve tüm işlemlerin iş parçacığı sayısını izleyebilirsiniz.
- Bellek kullanımı: Tüm Apigee işlemlerinin bellek kullanımını görüntüleyin. Örneğin, yığın bellek kullanımı ve bir işlem tarafından kullanılan yığın dışı bellek kullanımı gibi parametreleri izleyebilirsiniz.
API düzeyinde kontroller
API düzeyinde, Apigee tarafından proxy'lenen sık kullanılan API çağrıları için bir sunucunun çalışır durumda olup olmadığını izleyebilirsiniz. Örneğin, aşağıdaki curl
komutunu çağırarak Yönetim Sunucusu, Yönlendirici ve Mesaj İşleyici'de API kontrolü gerçekleştirebilirsiniz:
curl http://host:port/v1/servers/self/up
Burada host, Apigee Edge bileşeninin IP adresidir. port numarası her bir Edge bileşenine özeldir. Örneğin:
Yönetim Sunucusu: 8080
- Yönlendirici: 8081
- Message Processor: 8082
- vb.
Bu komutu her bileşen için çalıştırma hakkında bilgi edinmek için aşağıdaki bölümlere bakın.
Bu çağrı "true" ve "false" değerlerini döndürür. En iyi sonuçları elde etmek için API çağrılarını doğrudan arka uçta (Apigee yazılımının etkileşimde bulunduğu) da yayınlayabilirsiniz. Böylece, Apigee yazılım ortamında mı yoksa arka uçta mı hata olduğunu hızlıca belirleyebilirsiniz.
İleti akışı kontrolleri
Yönlendiricilerden ve Mesaj İşleyicilerden mesaj akışı kalıbı/istatistikleri hakkında veri toplayabilirsiniz. Bu sayede aşağıdakileri izleyebilirsiniz:
- Etkin istemci sayısı
- Yanıt sayısı (10 kat, 20 kat, 30 kat, 40 kat ve 50 kat)
- Bağlantı hataları
Bu, API mesaj akışı için kontrol panelleri sağlamanıza yardımcı olur. Daha fazla bilgi için İzleme başlıklı makaleyi inceleyin.
Mesaj işleyicinin yönlendirici durum kontrolü
Yönlendirici, hangi ileti işlemcilerinin beklendiği gibi çalıştığını belirlemek için bir durum denetimi mekanizması uygular. Bir Mesaj İşleyici'nin çalışmadığı veya yavaş olduğu algılanırsa Yönlendirici, Mesaj İşleyici'yi otomatik olarak kullanımdan kaldırabilir. Bu durumda yönlendirici, /opt/apigee/var/log/edge-router/logs/system.log
konumundaki yönlendirici günlük dosyasına "Mark Down" mesajları yazar.
Bu mesajlar için yönlendirici günlük dosyasını izleyebilirsiniz. Örneğin, yönlendirici bir ileti işlemcisini devre dışı bırakırsa iletiyi aşağıdaki biçimde günlüğe yazar:
2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = MP_IP at 1399409512159 2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /MP_IP:PORT Mark Down
Burada MP_IP:PORT, Mesaj İşleyici'nin IP adresi ve bağlantı noktası numarasıdır.
Daha sonra yönlendirici bir durum denetimi gerçekleştirir ve ileti işlemcisinin düzgün çalıştığını belirlerse yönlendirici, ileti işlemcisini otomatik olarak tekrar kullanıma alır. Yönlendirici, günlük dosyasına şu biçimde bir "Mark Up" mesajı da yazar:
2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = IP at 1399410449054 2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from IP:PORT Mark Up