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ı almanın 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:
Yönetim API'sı | |||||||
Hizmet | Bellek Kullanımı [JMX*] | Hizmet Kontrolü | Kullanıcı/Kuruluş/ Dağıtım Durumu | axstatus | Veritabanı kontrolü | apigee-service Durum |
apigee-monit ** |
Management 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 kullanmadan önce JMX'i etkinleştirme bölümünde açıklandığı gibi 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 |
İzlemek için JMX kullanın
Yönetim Sunucusu, Mesaj İşleyici, Qpid ve Postgres için izleme işlemlerinin tümü JMX kullanır. Ancak JMX, varsayılan olarak yalnızca Cassandra için etkin, diğer tüm Edge bileşenleri için ise varsayılan olarak devre dışıdır. Bu nedenle, her bileşen için ayrı ayrı JMX'i izleyebilmeniz gerekir.
JMX kimlik doğrulaması varsayılan olarak etkin değildir. JMX kimlik doğrulamasını tüm bileşenler için etkinleştirebilirsiniz. Cassandra'da, Cassandra için JMX kimlik doğrulamasını etkinleştirme bölümündeki talimatları uygulayın.
JMX'i etkinleştir
JMX, varsayılan olarak yalnızca Cassandra için etkin, diğer tüm Edge bileşenleri için ise 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 şu konumda:
opt/apigee/edge-component_name/bin/start
. Üretim ortamlarında bu yapılandırma dosyaları farklı makinelerde bulunur.Her bir sunucuda bulunan aşağıdaki dosya konumları arasından seçim yapın:
- Yönetim Sunucusu:
/opt/apigee/edge-management-server/bin/start
- Mesaj İşleyici:
/opt/apigee/edge-message-processor/bin/start
- Postgre'ler:
/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/start
adresindedir. - Yönetim Sunucusu:
- Bileşeni başlatan
exec
satırına aşağıdakicom.sun.management.jmxremote
seç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
Burada port_number, hizmetin JMX bağlantı noktasıdır. Hizmetinizin JMX bağlantı noktası numarasını almak için JMX and Management API izleme bağlantı noktaları başlıklı makaleyi inceleyin.
Örneğin, Yönetim Sunucusu'nda JMX'i etkinleştirmek için aşağıdakileri Yönetim Sunucusu'nun yapılandırma dosyasına 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ı belirtilmektedir. Daha önce belirtildiği gibi, her hizmetin kendi bağlantı noktası numarası vardır.
Yapılandırma dosyasında düzenlenen 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.
restart
komutuyla 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ı tüm bileşenler için JMX kimlik doğrulamasını etkinleştirme bölümünde açıklandığı şekilde etkinleştirebilirsiniz. Cassandra için JMX kimlik doğrulamasını etkinleştirmek üzere Cassandra için JMX kimlik doğrulamasını etkinleştirme başlıklı makaleyi inceleyin.
JMX kimlik doğrulamasını etkinleştir
JMX kimlik doğrulaması varsayılan olarak etkin değildir. JMX kimlik doğrulamasını tüm bileşenler için etkinleştirebilirsiniz. Cassandra'da, Cassandra için JMX kimlik doğrulamasını etkinleştirme başlıklı makaledeki 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 şunlardan biridir:
edge-management-server
edge-message-processor
edge-postgres-server
edge-qpid-server
edge-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=username
JMX_ENABLED=y|n
JMX_PASSWORD=password
(ayarlanmazsa veya-p
ile geçirilmediyse sizden istenir)
Kullanıcı adını ve şifreyi tanımlamak 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 seçenek grubu hem de yapılandırma dosyası belirtmezsiniz.
Aşağıdaki örnekte, Yönetim Sunucusu için komut satırı seçenekleri kullanılarak JMX kimlik doğrulaması etkinleştirilir:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
Aş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-file
Edge'i birden fazla düğümde çalıştırıyorsanız aynı kullanıcı adı 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 n
JConsole ile izleyin
Durum denetimi ve işlem istatistiklerini yönetip izlemek için JConsole'u (JMX uyumlu bir araç) kullanın. JConsole ile, sunucularınızın gösterdiği JMX istatistiklerini kullanabilir ve bunları grafik bir arayüzde görüntüleyebilirsiniz. Daha fazla bilgi için JConsole'u kullanma bölümüne bakın.
JConsole, JMX aracılığıyla sunulan JMX özelliklerini (MBeans) 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 yayınlayın (sunucunun IP adresinin 216.3.128.12 olduğu varsayılarak):
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
Bu örneğin, Yönetim Sunucusu JMX bağlantı noktası olan 1099 numaralı bağlantı noktasını belirttiğini unutmayın. Diğer bağlantı noktaları için JMX ve Management API izleme bağlantı noktaları sayfasını inceleyin.
Aşağıdaki tabloda genel JMX istatistikleri gösterilmektedir:
JMX MBean | JMX Özellikleri |
---|---|
Bellek |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Kullanım |
|
Management API ile izleme
Edge; sunucularınızda hizmet kontrolleri gerçekleştirmenin 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 söz konusu API'ler açıklanmaktadır.
Hizmet kontrolleri gerçekleştirme
Management API, hizmetlerinizle ilgili sorunların izlenmesi ve teşhis edilmesi 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ğrulaması yapmanızı gerektirmiyor. 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 (hizmete ve hizmeti nasıl kontrol ettiğinize bağlı olarak): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Aşağıdakiler dahil olmak üzere hizmetle ilgili bilgileri döndürür:
Bu API çağrısı, Apigee yöneticisi kimlik bilgilerinizle kimlik doğrulaması yapmanızı gerektiriyor. |
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" kullanabilirsiniz. Aksi takdirde, sunucunun IP adresini ve kullanıcı adını ve şifreyi 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, Management Server'ın 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ı makaleye bakın.
Yanıtın biçimini değiştirmek için Accept
üst bilgisini "application/json" veya "application/xml" olarak belirtebilirsiniz.
Aşağıdaki örnek, localhost'ta (bağlantı noktası 8081) Yönlendiricinin durumunu alı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 verilmektedir:
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Kullanıcıyı, kuruluşu ve dağıtım durumunu izleme
Aşağıdaki komutları girerek Management API'yi kullanarak proxy'lerinizin Yönetim Sunucuları ve Mesaj İşleyicilerindeki kullanıcı, kuruluş ve dağıtım durumunu izleyebilirsiniz:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
port_number değeri, Yönetim Sunucusu için 8080 veya İleti İşleyici için 8082 olur.
Bu çağrı, sistem yönetimi kullanıcı adınız ve şifrenizle kimlik doğrulaması yapmanızı gerektiriyor.
Sunucu, tüm çağrılar için "dağıtıldı" durumunu döndürmelidir. Bu işlemler başarısız olursa aşağıdakileri yapın:
- Sunucu günlüklerinde hata olup olmadığını kontrol edin. Günlükler şu konumda bulunur:
- Yönetim Sunucusu:
opt/apigee/var/log/edge-management-server
- Mesaj İşleyici:
opt/apigee/var/log/edge-message-processor
- Yönetim Sunucusu:
- Düzgün çalışıp çalışmadığını kontrol etmek için sunucuya çağrı yapın.
- Sunucuyu ELB'den kaldırıp yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Burada service_name:
edge-management-server
edge-message-processor
apigee-service
komutuyla durumu kontrol edin
Hizmeti çalıştıran sunucuya giriş yaptığınızda apigee-service
komutunu kullanarak Edge hizmetlerinizdeki sorunları giderebilirsiniz.
apigee-service
ile bir hizmetin durumunu kontrol etmek için:
- Sunucuya giriş yapın ve şu komutu çalıştırın:
/opt/apigee/apigee-service/bin/apigee-service service_name status
Burada service_name şunlardan biridir:
- Yönetim Sunucusu:
edge-management-server
- Mesaj İşleyici:
edge-message-processor
- Postgre'ler:
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 status
komutunu veya Yönetim API'si 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
Burada port_number, hizmetin Management API bağlantı noktasıdır.
Bu örnekte, sunucuya giriş yaptığınız ve ana makine adı olarak "localhost" kullanabildiğiniz varsayılmaktadır. Management API ile durumu uzaktan kontrol etmek için sunucunun IP adresini belirtmeniz ve sistem yöneticisi kullanıcı adı ile şifresini API çağrınıza 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'de kuruluşları ve ortamları kontrol edin
Aşağıdaki curl
komutunu yayınlayarak Postgres sunucusuna eklenen kuruluş ve ortam adlarını kontrol edebilirsiniz:
curl -v http://postgres_IP:8084/v1/servers/self/organizations
Sistem, kuruluş ve ortam adını göstermelidir.
Analiz durumunu doğrulayın
Postgres ve Qpid analiz sunucularının durumunu aşağıdaki curl
komutunu göndererek doğrulayabilirsiniz:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Aşağıdaki örnekte gösterildiği gibi, sistem tüm analiz sunucuları için başarı durumunu 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ı kullanın
PostgreSQL veritabanını izlemek için standart bir izleme komut dosyası (check_postgres.pl
) kullanabilirsiniz. Daha fazla bilgi için http://bucardo.org/wiki/Check_postgres sayfasına bakın.
Komut dosyasını çalıştırmadan önce:
- Her Postgres düğümüne check_postgres.pl komut dosyasını 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_64
eklentisini yüklediğinizden emin olun. Örneğin, aşağıdaki komutu kullanarak yükleyebilirsiniz:
yum install perl-Time-HiRes.x86_64
- CentOS 7: CentOS v7'de check_postgres.pl'i kullanmadan önce
perl-Data-Dumper.x86_64
BGBG'sini yükleyin.
check_postgres.pl çıktısı
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ıların sayısını kontrol eder ve izin verilen maksimum bağlantı sayısını 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ışıp çalışmadığını 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ın 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ır
PostgreSQL veritabanında uygun 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"
Postres sürecinin durumunu kontrol etme
Aşağıdaki curl
komutunu çağırarak Postgres makinesinde API denetimleri gerçekleştirebilirsiniz:
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 süreci çalışmıyorsa INACTIVE
durumunu döndürür.
Postgres kaynakları
Postgres hizmetini izleme hakkında daha fazla bilgi için aşağıdakilere bakın:
- 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 JMX'in Cassandra'ya uzaktan erişimi şifre gerektirmez.
Cassandra için JMX kimlik doğrulamasını etkinleştir
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 istenir.
Cassandra için JMX kimlik doğrulamasını etkinleştirmek üzere:
cassandra.properties
dosyasını oluşturun ve düzenleyin:/opt/apigee/customer/application/cassandra.properties
dosyası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.properties
dosyası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 için Edge'yi yapılandırma bölümüne bakın.
jmx_auth.sh
oluşturun ve düzenleyin:- Mevcut değilse şu konumda bir dosya 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.sh
dosyasını kaydedin.- Dosyayı kaynak olarak alın:
source /opt/apigee/customer/application/jmx_auth.sh
- Mevcut değilse şu konumda bir dosya oluşturun:
jmxremote.password
dosyasını kopyalayıp düzenleyin:- Aşağıdaki dosyayı
$JAVA_HOME
dizininizden/opt/apigee/data/apigee-cassandra/
hedefine kopyalayın:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
jmxremote.password
dosyasını düzenleyin ve JMX kullanıcı adınızı ve şifrenizi aşağıdaki söz dizimini kullanarak ekleyin:JMX_USERNAME JMX_PASSWORD
Burada JMX_USERNAME ve JMX_PASSWORD, daha önce ayarladığınız JMX kullanıcı adı ve şifresidir.
- Dosyanın sahibi "Apigee" 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.access
dosyasını kopyalayıp düzenleyin:- Aşağıdaki dosyayı
$JAVA_HOME
dizininizden/opt/apigee/data/apigee-cassandra/
hedefine kopyalayın:cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
- jmxremote.access dosyasını düzenleyip şu rolü ekleyin:
JMX_USERNAME readwrite
- Dosyanın sahibi "Apigee" 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
configure
komutunu ç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
- Diğer tüm Cassandra düğümlerinde bu işlemi tekrarlayın.
JMX şifre şifrelemesini etkinleştir
JMX şifre şifrelemesini etkinleştirmek için aşağıdaki adımları uygulayın:
source/conf/casssandra-env.sh
dosyasını açın.- Dosyada, aşağıdaki satırların açıklamasını 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 -sha1
komutunu girerek istenen şifrelerin SHA1 karmalarını oluşturun. - Şifreleri
jmxremote.password
alan adındaki kullanıcı adına göre ayarlayın. - Güncellemeden sonra
cassandra-env.sh
dosyasını salt okunur olarak değiştirin.
Cassandra için JMX kimlik doğrulamasını devre dışı bırak
Cassandra için JMX kimlik doğrulamasını devre dışı bırakmak üzere:
/opt/apigee/customer/application/cassandra.properties
öğesini düzenle.- Dosyadan ş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
- Diğer tüm Cassandra düğümlerinde bu işlemi tekrarlayın.
JConsole'u kullanın: Görev istatistiklerini izleme
JMX aracılığıyla sunulan JMX özelliklerini (MBeans'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 | JMX Özellikleri |
---|---|
SütunAileler/uygulama/ortamlar SütunAileler/uygulama/kuruluşlar SütunAileleri/apprepo/apiproxy_revisions SütunAileleri/uygulama/apiprox'ler SütunAileler/denetim/denetimler SütunAileleri/denetim/denetlemeler_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 kullanın
nodetool
yardımcı programı, Cassandra'nın küme düğümlerini yöneten 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 zil bilgisi (tek bir Cassandra düğümü için de mümkündür): Tüm düğümler için "Yukarı" ve "Normal" değerlerini bulun.
nodetool [-u username -pw password] -h localhost ring
Kullanıcı adınızı ve şifrenizi yalnızca Cassandra için JMX kimlik doğrulamasını etkinleştirdiyseniz iletmeniz gerekir.
Yukarıdaki komutun çıkışı aşağıda gösterildiği 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
- İkinci el sunucusunun durumu (istemci API'sini sunma)
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 Düğüm aracı yardımcı programı hakkında konusuna bakın.
Cassandra kaynağı
Şu URL'ye bakın: 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.pid
adresine PID dosyası yazar. - Her ZooKeeper sunucusunda 2181 ve 3888 numaralı bağlantı noktalarına TCP bağlantısı kurulabildiğinden 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 kelimeleri kullanma
ZooKeeper, netcat (nc) veya telnet kullanılarak bağlantı noktası 2181'e gönderilen küçük bir komut dizisi (dört harfli kelime) ile izlenebilir.
ZooKeeper komutları hakkında daha fazla bilgi için bkz. Apache ZooKeeper komut referansı.
Ö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 hata olmayan bir durumda çalışıp çalışmadığını test etmek için dört harfli komut ruok'unu çalıştırın. Başarılı bir yanıt "imok" sonucunu döndürür.
echo ruok | nc host 2181
Dönen:
imok
- Sunucu performansını ve bağlı istemci istatistiklerini listelemek için dört harfli
stat
komutunu çalıştırın:echo stat | nc host 2181
Dönen:
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) yoksa alternatif olarak python'u kullanabilirsiniz. Aşağıdakileri içeren
zookeeper.py
adlı 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 düzeyi testi
Belirli isteklerin düzgün bir şekilde sunulup sunulmadığını görmek için OpenLDAP'yi izleyebilirsiniz. Başka bir deyişle, doğru sonucu döndüren belirli bir aramanın olup olmadığını kontrol edin.
- Sistem yöneticisinin girişini sorgulamak için
ldapsearch
(yum install openldap-clients
) kodunu 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 şifresini girmeniz istenir:
Enter LDAP Password:
Şifreyi girdikten sonra şu formda 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 hâlâ LDAP'ye bağlı olup olmadığını kontrol edin:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
Dönen:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
Ayrıca, disk erişimlerinin sayısını azaltarak 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.