Edge for Private Cloud 4.19.01 sürümü
Bu belgede, Apigee Edge'in şirket içi dağıtımı tarafından desteklenen bileşenlerin izleme teknikleri açıklanmaktadır.
Genel Bakış
Edge, hizmetlerle ilgili ayrıntıları öğrenmenin ve durumlarını kontrol etmenin çeşitli yollarını destekler. Aşağıdaki tabloda, uygun her hizmette gerçekleştirebileceğiniz kontrol türleri listelenmiştir:
| Mgmt API | |||||||
| Hizmet | Bellek Kullanımı [JMX*] | Hizmet Kontrolü | Kullanıcı/Kuruluş/ Dağıtım Durumu | axstatus | Veritabanı kontrolü | apigee-service Durum |
apigee-monit** |
| Yönetim Sunucusu | |||||||
| Mesaj İşleyici | |||||||
| Postgres | |||||||
| Qpid | |||||||
| Yönlendirici | |||||||
| Daha fazla bilgi | Daha fazla bilgi | Daha fazla bilgi | Daha fazla bilgi | Daha fazla bilgi | Daha fazla bilgi | Daha fazla bilgi | |
|
* JMX'i kullanabilmek için JMX'i etkinleştirme bölümünde açıklandığı şekilde etkinleştirmeniz gerekir. ** |
|||||||
JMX ve Management API izleme bağlantı noktaları
Her bileşen, farklı bağlantı noktalarında JMX ve Management API izleme çağrılarını destekler. Aşağıdaki tabloda, her sunucu türü için JMX ve Management API bağlantı noktaları listelenmiştir:
| Bileşen | JMX bağlantı noktası | Management API Bağlantı Noktası |
|---|---|---|
| Yönetim Sunucusu | 1099 | 8080 |
| Yönlendirici | 1100 | 8081 |
| Mesaj İşleyici | 1101 | 8082 |
| Qpid | 1102 | 8083 |
| Postgres | 1103 | 8084 |
İzleme için JMX kullanma
Yönetim Sunucusu, Mesaj İşlemcisi, Qpid ve Postgres için izleme süreçlerinin tümü JMX kullanır. Ancak JMX, varsayılan olarak yalnızca Cassandra için etkindir ve diğer tüm Edge bileşenleri için varsayılan olarak devre dışıdır. Bu nedenle, bileşenleri izleyebilmek için her bileşende JMX'i ayrı ayrı etkinleştirmeniz gerekir.
JMX kimlik doğrulaması varsayılan olarak etkin değildir. Tüm bileşenler için JMX kimlik doğrulamasını etkinleştirebilirsiniz. Cassandra için Cassandra için JMX kimlik doğrulamasını etkinleştirme bölümündeki talimatları uygulayın.
JMX'i etkinleştirme
JMX, yalnızca Cassandra için varsayılan olarak etkindir ve diğer tüm Edge bileşenleri için varsayılan olarak devre dışıdır. Bu bölümde, diğer Edge bileşenleri için JMX'in nasıl etkinleştirileceği açıklanmaktadır.
JMX'i etkinleştirmek için:
- Bileşenin yapılandırma dosyasını düzenleyin. Bu dosya
opt/apigee/edge-component_name/bin/startkonumunda bulunur. Üretim ortamlarında bu yapılandırma dosyaları farklı makinelerde bulunur.Her sunucuda aşağıdaki dosya konumlarından birini seçin:
- Yönetim Sunucusu:
/opt/apigee/edge-management-server/bin/start - Mesaj İşlemcisi:
/opt/apigee/edge-message-processor/bin/start - Postgres:
/opt/apigee/edge-postgres-server/bin/start - Qpid:
/opt/apigee/edge-qpid-server/bin/start - Yönlendirici:
/opt/apigee/edge-router/bin/start
Örneğin, Yönetim Sunucusu'nun sunucusundaki yapılandırma dosyası
/opt/apigee/edge-management-server/bin/startadresindedir. - Yönetim Sunucusu:
- Bileşeni başlatan
execsatırına aşağıdakicom.sun.management.jmxremoteseçeneklerini ekleyin:-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=port_number \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false
port_number, hizmetin JMX bağlantı noktasıdır. Hizmetinizin JMX bağlantı noktası numarasını öğrenmek için JMX ve Management API izleme bağlantı noktaları başlıklı makaleyi inceleyin.
Örneğin, Yönetim Sunucusu'nda JMX'i etkinleştirmek için Yönetim Sunucusu'nun yapılandırma dosyasına aşağıdakileri ekleyin:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \ -Djava.security.auth.login.config=$conf_path/jaas.config \ -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \ -Ddata.dir=$data_dir \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.local.only=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ $* $debug_options com.apigee.kernel.MicroKernel
Bu örnekte, Yönetim Sunucusu için 1099 numaralı bağlantı noktası belirtilmiştir. Daha önce de belirtildiği gibi, her hizmetin kendi bağlantı noktası numarası vardır.
Yapılandırma dosyasındaki düzenlenmiş satır aşağıdaki gibi görünür:
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
- Yapılandırma dosyasını kaydedin.
restartkomutuyla bileşeni yeniden başlatın.Örneğin, Yönetim Sunucusu'nu yeniden başlatmak için aşağıdaki komutu yürütün:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
JMX için kimlik doğrulama varsayılan olarak etkin değildir. JMX kimlik doğrulamasını etkinleştirme bölümünde açıklandığı gibi tüm bileşenler için JMX kimlik doğrulamasını etkinleştirebilirsiniz. Cassandra için JMX kimlik doğrulamasını etkinleştirmek istiyorsanız Cassandra için JMX kimlik doğrulamasını etkinleştirme başlıklı makaleyi inceleyin.
JMX kimlik doğrulamasını etkinleştirme
JMX kimlik doğrulaması varsayılan olarak etkin değildir. Tüm bileşenler için JMX kimlik doğrulamasını etkinleştirebilirsiniz. Cassandra için Cassandra için JMX kimlik doğrulamasını etkinleştirme bölümündeki talimatları uygulayın.
JMX kimlik doğrulamasını etkinleştirmek için tüm düğümlerde aşağıdaki change_jmx_auth işlemini yürütün:
/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]
Burada:
- component, aşağıdakilerden biridir:
edge-management-serveredge-message-processoredge-postgres-serveredge-qpid-serveredge-router
- options aşağıdakileri belirtir:
-u username-p password-e [y|n](etkinleştirme veya devre dışı bırakma)
- config_file, aşağıdakileri tanımladığınız bir yapılandırma dosyasının konumunu belirtir:
JMX_USERNAME=usernameJMX_ENABLED=y|nJMX_PASSWORD=password(ayarlanmadıysa veya-pile iletilmediyse sizden istenir)
Kullanıcı adını, şifreyi ve etkinleştirme/devre dışı bırakma durumunu tanımlamak için komut satırı seçeneklerini veya yapılandırma dosyasını kullanabilirsiniz. Hem bir seçenek grubu hem de bir yapılandırma dosyası belirtmezsiniz.
Aşağıdaki örnekte, komut satırı seçenekleri kullanılarak Yönetim Sunucusu için JMX kimlik doğrulaması etkinleştirilmektedir:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -u foo -p bar -e yAşağıdaki örnekte, komut satırı seçenekleri yerine bir yapılandırma dosyası kullanılmaktadır:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -f /tmp/my-config-fileEdge'i birden fazla düğümde çalıştırıyorsanız aynı kullanıcı adını ve şifreyi belirterek komutu tüm düğümlerde çalıştırın.
Komut satırında JMX kimlik doğrulamasını devre dışı bırakmak için aşağıdaki örnekte gösterildiği gibi "-e n" seçeneğini kullanın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server
change_jmx_auth -e nJConsole ile izleme
Durum kontrolü ve işlem istatistiklerini yönetmek ve izlemek için JConsole'u (JMX uyumlu bir araç) kullanın. JConsole ile sunucularınız tarafından sunulan JMX istatistiklerini kullanabilir ve bunları grafik arayüzde görüntüleyebilirsiniz. Daha fazla bilgi için JConsole'u kullanma başlıklı makaleyi inceleyin.
JConsole, JMX aracılığıyla sunulan JMX özelliklerini (MBean'ler) izlemek için aşağıdaki hizmet URL'sini kullanır:
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
Burada:
- IP_address, izlemek istediğiniz sunucunun IP adresidir.
- port_number, izlemek istediğiniz sunucunun JMX bağlantı noktası numarasıdır.
Örneğin, Yönetim Sunucusu'nu izlemek için aşağıdaki gibi bir komut verin (sunucunun IP adresinin 216.3.128.12 olduğunu varsayalım):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Bu örnekte, Yönetim Sunucusu JMX bağlantı noktası olan 1099 numaralı bağlantı noktasının belirtildiğini unutmayın. Diğer bağlantı noktaları için JMX ve Management API izleme bağlantı noktaları başlıklı makaleyi inceleyin.
Aşağıdaki tabloda genel JMX istatistikleri gösterilmektedir:
| JMX MBean'leri | JMX Özellikleri |
|---|---|
|
Bellek |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
Kullanım |
|
Management API ile izleme
Edge, sunucularınızda hizmet kontrolleri yapmanın yanı sıra kullanıcılarınızı, kuruluşlarınızı ve dağıtımlarınızı kontrol etmek için kullanabileceğiniz çeşitli API'ler içerir. Bu bölümde bu API'ler açıklanmaktadır.
Hizmet kontrolleri yapma
Management API, hizmetlerinizle ilgili sorunları izlemek ve teşhis etmek için çeşitli uç noktalar sağlar. Bu uç noktalar şunlardır:
| Uç nokta | Açıklama |
|---|---|
/servers/self/up |
Bir hizmetin çalışıp çalışmadığını kontrol eder. Bu API çağrısı, kimlik doğrulamanızı gerektirmez. Hizmet çalışıyorsa bu uç nokta aşağıdaki yanıtı döndürür: <ServerField> <Up>true</Up> </ServerField> Hizmet çalışmıyorsa aşağıdakine benzer bir yanıt alırsınız (hizmetin ne olduğuna ve nasıl kontrol ettiğinize bağlı olarak): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Hizmetle ilgili aşağıdaki bilgileri döndürür:
Bu API çağrısı, Apigee yönetici kimlik bilgilerinizle kimlik doğrulamanızı gerektirir. |
Bu uç noktaları kullanmak için aşağıdaki söz dizimini kullanan komutlarla curl gibi bir yardımcı programı çağırın:
curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"Burada:
- host, kontrol etmek istediğiniz sunucunun IP adresidir. Sunucuya giriş yaptıysanız "localhost"u kullanabilirsiniz. Giriş yapmadıysanız sunucunun IP adresini, kullanıcı adını ve şifresini belirtin.
- port_number, kontrol etmek istediğiniz sunucunun Management API bağlantı noktasıdır. Bu, her bileşen türü için farklı bir bağlantı noktasıdır. Örneğin, Yönetim Sunucusu'nun Management API bağlantı noktası 8080'dir. Kullanılacak Management API bağlantı noktası numaralarının listesi için JMX ve Management API izleme bağlantı noktaları başlıklı makaleyi inceleyin.
Yanıtın biçimini değiştirmek için Accept başlığını "application/json" veya "application/xml" olarak belirtebilirsiniz.
Aşağıdaki örnekte, localhost'taki (bağlantı noktası 8081) yönlendiricinin durumu alınmaktadır:
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
Aşağıdaki örnekte, 216.3.128.12 (bağlantı noktası 8082) adresindeki Mesaj İşleyici hakkında bilgi alınmaktadır:
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Kullanıcı, kuruluş ve dağıtım durumunu izleme
Aşağıdaki komutları vererek Yönetim Sunucuları ve Mesaj İşlemciler'deki proxy'lerinizin kullanıcı, kuruluş ve dağıtım durumunu izlemek için Management API'yi kullanabilirsiniz:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
Burada port_number, Yönetim Sunucusu için 8080 veya Mesaj İşleyici için 8082'dir.
Bu çağrı, sistem yönetimi kullanıcı adınız ve şifrenizle kimlik doğrulaması yapmanızı gerektirir.
Sunucu, tüm çağrılar için "dağıtıldı" durumunu döndürmelidir. Bu yöntemler işe yaramazsa aşağıdakileri yapın:
- Hata olup olmadığını görmek için sunucu günlüklerini kontrol edin. Günlükler şu konumda bulunur:
- Yönetim Sunucusu:
opt/apigee/var/log/edge-management-server - Mesaj İşlemcisi:
opt/apigee/var/log/edge-message-processor
- Yönetim Sunucusu:
- Düzgün çalışıp çalışmadığını kontrol etmek için sunucuya bir çağrı yapın.
- Sunucuyu ELB'den kaldırın ve ardından yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
service_name:
edge-management-serveredge-message-processor
apigee-service komutuyla durumu kontrol edin.
Hizmeti çalıştıran sunucuya giriş yaptığınızda apigee-service komutunu kullanarak Edge hizmetlerinizle ilgili sorunları giderebilirsiniz.
apigee-service ile bir hizmetin durumunu kontrol etmek için:
- Sunucuya giriş yapın ve aşağıdaki komutu çalıştırın:
/opt/apigee/apigee-service/bin/apigee-service service_name status
service_name, aşağıdakilerden biridir:
- Yönetim Sunucusu:
edge-management-server - Mesaj İşlemcisi:
edge-message-processor - Postgres:
edge-postgres-server - Qpid:
edge-qpid-server - Yönlendirici:
edge-router
Örneğin:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Yönetim Sunucusu:
- Hizmet çalışmıyorsa hizmeti başlatın:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Hizmeti yeniden başlattıktan sonra, daha önce kullandığınız
apigee-service statuskomutunu veya Management API ile izleme bölümünde açıklanan Management API'yi kullanarak hizmetin çalışıp çalışmadığını kontrol edin.Örneğin:
curl -v http://localhost:port_number/v1/servers/self/up
port_number, hizmetin Management API bağlantı noktasıdır.
Bu örnekte, sunucuya giriş yaptığınız ve ana makine adı olarak "localhost"u kullanabileceğiniz varsayılmaktadır. Management API ile durumu uzaktan kontrol etmek için sunucunun IP adresini belirtmeniz ve API çağrınıza sistem yöneticisi kullanıcı adını ve şifresini eklemeniz gerekir.
Postgres izleme
Postgres, durumunu kontrol etmek için kullanabileceğiniz çeşitli yardımcı programları destekler. Bu yardımcı programlar sonraki bölümlerde açıklanmıştır.
Postgres'te kuruluşları ve ortamları kontrol etme
Postgres sunucusuna eklenen kuruluş ve ortam adlarını kontrol etmek için aşağıdaki curl komutunu kullanabilirsiniz:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
Sistem, kuruluş ve ortam adını göstermelidir.
Analiz durumunu doğrulama
Aşağıdaki curl komutunu kullanarak Postgres ve Qpid analiz sunucularının durumunu doğrulayabilirsiniz:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Sistem, aşağıdaki örnekte gösterildiği gibi tüm analiz sunucuları için başarı durumu göstermelidir:
{
"environments" : [ {
"components" : [ {
"message" : "success at Thu Feb 28 10:27:38 CET 2013",
"name" : "pg",
"status" : "SUCCESS",
"uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
}, {
"message" : "success at Thu Feb 28 10:29:03 CET 2013",
"name" : "qs",
"status" : "SUCCESS",
"uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
} ],
"message" : "",
"name" : "prod"
} ],
"organization" : "acme",
"status" : "SUCCESS"
}PostgreSQL veritabanı
Bu bölümde, özellikle Postgres veritabanını izlemek için kullanabileceğiniz teknikler açıklanmaktadır.
check_postgres.pl komut dosyasını kullanma
PostgreSQL veritabanını izlemek için standart bir izleme komut dosyası olan check_postgres.pl kullanabilirsiniz. Daha fazla bilgi için http://bucardo.org/wiki/Check_postgres adresini ziyaret edin.
Senaryoyu çalıştırmadan önce:
- check_postgres.pl komut dosyasını her Postgres düğümüne yüklemeniz gerekir.
- Yüksek çözünürlüklü alarm, uyku, gettimeofday ve aralık zamanlayıcıları uygulayan bir Perl modülü olan
perl-Time-HiRes.x86_64modülünü yüklediğinizden emin olun. Örneğin, aşağıdaki komutu kullanarak yükleyebilirsiniz:
yum install perl-Time-HiRes.x86_64
- CentOS 7: CentOS 7 sürümünde check_postgres.pl komutunu kullanmadan önce
perl-Data-Dumper.x86_64RPM'yi yükleyin.
check_postgres.pl çıkışı
check_postgres.pl kullanan API çağrılarının varsayılan çıkışı Nagios ile uyumludur. Komut dosyasını yükledikten sonra aşağıdaki kontrolleri yapın:
- Veritabanı boyutunu kontrol edin:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
- Veritabanına gelen bağlantı sayısını kontrol eder ve izin verilen maksimum bağlantı sayısıyla karşılaştırır:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- Veritabanının çalışır durumda ve kullanılabilir olup olmadığını kontrol edin:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Disk alanını kontrol edin:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Postgres düğümüne eklenen kuruluş ve ortam sayısını kontrol edin:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer
Veritabanı kontrollerini çalıştırma
PostgreSQL veritabanında doğru tabloların oluşturulduğunu doğrulayabilirsiniz. Aşağıdaki komutu kullanarak PostgreSQL veritabanına giriş yapın:
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
Ardından şu komutu çalıştırın:
\d analytics."org.env.fact"
Postgres işleminin durumunu kontrol etme
Aşağıdaki curl komutunu çağırarak Postgres makinesinde API kontrolleri yapabilirsiniz:
curl -v http://postgres_IP:8084/v1/servers/self/health
Bu komut, postgres işlemi etkin olduğunda ACTIVE durumunu döndürür. Postgres işlemi çalışmıyorsa INACTIVE durumunu döndürür.
Postgres kaynakları
Postgres hizmetini izleme hakkında daha fazla bilgi için aşağıdakileri inceleyin:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
JMX, Cassandra için varsayılan olarak etkindir ve Cassandra'ya uzaktan JMX erişimi için şifre gerekmez.
Cassandra için JMX kimlik doğrulamasını etkinleştirme
Cassandra için JMX kimlik doğrulamasını etkinleştirebilirsiniz. Bunu yaptıktan sonra, nodetool yardımcı programına yapılan tüm çağrılara bir kullanıcı adı ve şifre iletmeniz gerekir.
Cassandra için JMX kimlik doğrulamasını etkinleştirmek üzere:
cassandra.propertiesdosyasını oluşturun ve düzenleyin:/opt/apigee/customer/application/cassandra.propertiesdosyasını düzenleyin. Dosya yoksa oluşturun.- Dosyaya aşağıdakileri ekleyin:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true conf_cassandra-env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.password conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/apigee-cassandra/jmxremote.access
cassandra.propertiesdosyasını kaydedin.- Aşağıdaki örnekte gösterildiği gibi dosyanın sahibini "apigee:apigee" olarak değiştirin:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
Jetonları ayarlamak için özellik dosyalarını kullanma hakkında daha fazla bilgi edinmek istiyorsanız Edge'i yapılandırma başlıklı makaleyi inceleyin.
jmx_auth.sholuşturma ve düzenleme:- Aşağıdaki konumda dosya yoksa oluşturun:
/opt/apigee/customer/application/jmx_auth.sh
- Dosyaya aşağıdaki özellikleri ekleyin:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
jmx_auth.shdosyasını kaydedin.- Dosyayı kaynak olarak kullanın:
source /opt/apigee/customer/application/jmx_auth.sh
- Aşağıdaki konumda dosya yoksa oluşturun:
jmxremote.passworddosyasını kopyalayıp düzenleyin:- Aşağıdaki dosyayı
$JAVA_HOMEdizininizden/opt/apigee/data/apigee-cassandra/dizinine kopyalayın:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password jmxremote.passworddosyasını düzenleyin ve aşağıdaki söz dizimini kullanarak JMX kullanıcı adınızı ve şifrenizi ekleyin:JMX_USERNAME JMX_PASSWORD
JMX_USERNAME ve JMX_PASSWORD, daha önce ayarladığınız JMX kullanıcı adı ve şifresidir.
- Dosyanın "apigee"ye ait olduğundan ve dosya modunun 400 olduğundan emin olun:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
- Aşağıdaki dosyayı
jmxremote.accessdosyasını kopyalayıp düzenleyin:- Aşağıdaki dosyayı
$JAVA_HOMEdizininizden/opt/apigee/data/apigee-cassandra/dizinine kopyalayın:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - jmxremote.access dosyasını düzenleyin ve aşağıdaki rolü ekleyin:
JMX_USERNAME readwrite
- Dosyanın "apigee"ye ait olduğundan ve dosya modunun 400 olduğundan emin olun:
chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
- Aşağıdaki dosyayı
- Cassandra'da
configurekomutunu çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra'yı yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Bu işlemi diğer tüm Cassandra düğümlerinde tekrarlayın.
JMX şifrelemesini etkinleştirme
JMX şifre şifrelemesini etkinleştirmek için aşağıdaki adımları uygulayın:
source/conf/casssandra-env.shdosyasını açın.- Dosyadaki aşağıdaki satırların açıklama işaretini kaldırın:
-
JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
-
- Komut satırında,
echo -n 'Secret' | openssl dgst -sha1komutunu girerek istediğiniz şifrelerin SHA1 karmalarını oluşturun. jmxremote.passwordiçinde kullanıcı adına karşılık gelen şifreleri ayarlayın.- Güncellemeden sonra
cassandra-env.shdosyasını tekrar salt okunur olarak değiştirin.
Cassandra için JMX kimlik doğrulamasını devre dışı bırakma
Cassandra için JMX kimlik doğrulamasını devre dışı bırakmak istiyorsanız:
/opt/apigee/customer/application/cassandra.propertiespaketini düzenleyin.- Dosyadaki şu satırı kaldırın:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Cassandra'da yapılandırmayı çalıştırın:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Cassandra'yı yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Bu işlemi diğer tüm Cassandra düğümlerinde tekrarlayın.
JConsole'u kullanma: Görev istatistiklerini izleme
JMX aracılığıyla sunulan JMX özelliklerini (MBean'ler) izlemek için JConsole'u ve aşağıdaki hizmet URL'sini kullanın:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
Burada IP_address, Cassandra sunucusunun IP'sidir.
Cassandra JMX istatistikleri
| JMX MBean'leri | JMX Özellikleri |
|---|---|
|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
|
MemtableColumnsCount |
|
|
MemtableDataSize |
|
|
ReadCount |
|
|
RecentReadLatencyMicros |
|
|
TotalReadLatencyMicros |
|
|
WriteCount |
|
|
RecentWriteLatencyMicros |
|
|
TotalWriteLatencyMicros |
|
|
TotalDiskSpaceUsed |
|
|
LiveDiskSpaceUsed |
|
|
LiveSSTableCount |
|
|
BloomFilterFalsePositives |
|
|
RecentBloomFilterFalseRatio |
|
|
BloomFilterFalseRatio |
Küme düğümlerini yönetmek için nodetool'u kullanma
nodetool yardımcı programı, küme düğümlerini yöneten Cassandra için bir komut satırı arayüzüdür. Yardımcı programı /opt/apigee/apigee-cassandra/bin adresinde bulabilirsiniz.
Tüm Cassandra küme düğümlerinde aşağıdaki çağrılar yapılabilir:
- Genel halka bilgileri (tek Cassandra düğümü için de mümkündür): Tüm düğümler için "Yukarı" ve "Normal" ifadelerini arayın.
nodetool [-u username -pw password] -h localhost ring
Yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiyseniz kullanıcı adınızı ve şifrenizi iletmeniz gerekir.
Yukarıdaki komutun çıkışı aşağıdaki gibi görünür:
Datacenter: dc-1 ========== Address Rack Status State Load Owns Token 192.168.124.201 ra1 Up Normal 1.67 MB 33,33% 0 192.168.124.202 ra1 Up Normal 1.68 MB 33,33% 5671...5242 192.168.124.203 ra1 Up Normal 1.67 MB 33,33% 1134...0484
- Düğümler hakkında genel bilgiler (düğüm başına çağrı)
nodetool [-u username -pw password] -h localhost info
Yukarıdaki komutun çıkışı aşağıdaki gibi görünür:
ID : e2e42793-4242-4e82-bcf0-oicu812 Gossip active : true Thrift active : true Native Transport active: true Load : 273.71 KB Generation No : 1234567890 Uptime (seconds) : 687194 Heap Memory (MB) : 314.62 / 3680.00 Off Heap Memory (MB) : 0.14 Data Center : dc-1 Rack : ra-1 Exceptions : 0 Key Cache : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds Counter Cache : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds Token : 0
- Thrift sunucusunun durumu (istemci API'sini sunar)
nodetool [-u username -pw password] -h localhost statusthrift
Yukarıdaki komutun çıkışı aşağıdaki gibi görünür:
running
- Veri akışı işlemlerinin durumu: Cassandra düğümleri için trafiği gözlemleyin:
nodetool [-u username -pw password] -h localhost netstats
Yukarıdaki komutun çıkışı aşağıdaki gibi görünür:
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
nodetool hakkında daha fazla bilgi için Nodetool yardımcı programı hakkında başlıklı makaleyi inceleyin.
Cassandra kaynağı
Şu URL'yi inceleyin: http://www.datastax.com/docs/1.0/operations/monitoring.
Apache ZooKeeper
ZooKeeper durumunu kontrol etme
- ZooKeeper işleminin çalıştığından emin olun. ZooKeeper,
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.piddizinine bir PID dosyası yazar. - Her ZooKeeper sunucusunda 2181 ve 3888 numaralı bağlantı noktalarına TCP bağlantısı kurabildiğinizden emin olmak için ZooKeeper bağlantı noktalarını test edin.
- ZooKeeper veritabanındaki değerleri okuyabildiğinizden emin olun. ZooKeeper istemci kitaplığı (veya
/opt/apigee/apigee-zookeeper/bin/zkCli.sh) kullanarak bağlanın ve veritabanından bir değer okuyun. - Durumu kontrol edin:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ZooKeeper dört harfli kelimelerini kullanma
ZooKeeper, netcat (nc) veya telnet kullanılarak 2181 numaralı bağlantı noktasına gönderilen küçük bir komut grubu (dört harfli kelimeler) aracılığıyla izlenebilir.
ZooKeeper komutları hakkında daha fazla bilgi için Apache ZooKeeper komut referansı başlıklı makaleyi inceleyin.
Örneğin:
srvr: Sunucuyla ilgili tüm ayrıntıları listeler.stat: Sunucu ve bağlı istemcilerle ilgili kısa ayrıntıları listeler.
ZooKeeper bağlantı noktasına aşağıdaki komutlar verilebilir:
- Sunucunun hatasız durumda çalışıp çalışmadığını test etmek için dört harfli ruok komutunu çalıştırın. Başarılı bir yanıt "imok" döndürür.
echo ruok | nc host 2181
Şunu döndürür:
imok
- Sunucu performansını ve bağlı istemci istatistiklerini listelemek için dört harfli
statkomutunu çalıştırın:echo stat | nc host 2181
Şunu döndürür:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0) /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433) /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347) /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692) Latency min/avg/max: 0/0/128 Received: 26144 Sent: 26160 Connections: 4 Outstanding: 0 Zxid: 0x2000002c2 Mode: follower Node count: 283
- Netcat (nc) kullanılamıyorsa alternatif olarak Python'u kullanabilirsiniz. Aşağıdakileri içeren
zookeeper.pyadlı bir dosya oluşturun:import time, socket, sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM) c.connect((sys.argv[1], 2181)) c.send(sys.argv[2]) time.sleep(0.1) print c.recv(512)
Şimdi aşağıdaki Python satırlarını çalıştırın:
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
LDAP seviyesi testi
Belirli isteklerin düzgün şekilde sunulup sunulmadığını görmek için OpenLDAP'yi izleyebilirsiniz. Başka bir deyişle, doğru sonucu döndüren belirli bir arama olup olmadığını kontrol edin.
- Sistem yöneticisinin girişini sorgulamak için
ldapsearch(yum install openldap-clients) kullanın. Bu giriş, tüm API çağrılarının kimliğini doğrulamak için kullanılır.ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL
Ardından LDAP yönetici şifresi istenir:
Enter LDAP Password:
Şifreyi girdikten sonra aşağıdaki biçimde bir yanıt görürsünüz:
dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top uid: admin cn: admin sn: admin userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ= = mail: opdk@google.com
- Aşağıdaki komutla Yönetim Sunucusu'nun LDAP'ye hâlâ bağlı olup olmadığını kontrol edin:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
Şunu döndürür:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
Disk erişimlerinin sayısını azaltmaya ve dolayısıyla sistemin performansını artırmaya yardımcı olan OpenLDAP önbelleklerini de izleyebilirsiniz. OpenLDAP sunucusundaki önbellek boyutunu izlemek ve ardından ayarlamak, dizin sunucusunun performansını önemli ölçüde etkileyebilir. Önbellek hakkında bilgi edinmek için günlük dosyalarını (opt/apigee/var/log) görüntüleyebilirsiniz.