İzleme

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 yapabileceğiniz kontrol türleri listelenmiştir:

Mgmt API'si
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'yi kullanabilmek için JMX'yi etkinleştirme bölümünde açıklandığı şekilde etkinleştirmeniz gerekir.

** apigee-monit hizmeti, bir bileşenin çalışıp çalışmadığını kontrol eder ve mevcut değilse onu yeniden başlatmayı dener. Daha fazla bilgi için Apigee-monit ile kendi kendine iyileştirme bölümüne bakın.

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ünün JMX ve Yönetim API bağlantı noktaları listelenmektedir:

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'i kullanma

Yönetim sunucusu, ileti işleyici, Qpid ve Postgres'in izleme süreçleri JMX'yi kullanır. Ancak 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 nedenle, izleyebilmeniz için her bir bileşen için JMX'yi 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'da JMX kimlik doğrulamasını etkinleştirme başlıklı makaledeki talimatları uygulayın.

JMX'yi etkinleştirme

JMX varsayılan olarak yalnızca Cassandra için etkin olup diğer tüm Edge bileşenleri için 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'yi etkinleştirmek için:

  1. Bileşenin yapılandırma dosyasını düzenleyin. Bu dosya şu konumdadır: opt/apigee/edge-component_name/bin/start. Ü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 İşleyici: /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/start adresindedir.

  2. Bileşeni başlatan exec satırına aşağıdaki com.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 ve Management API izleme bağlantı noktaları başlıklı makaleyi inceleyin.

    Örneğin, Yönetim Sunucusu'nda JMX'yi 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 bağlantı noktası belirtilmiştir. Daha önce belirtildiği gibi her hizmetin kendi bağlantı noktası numarası vardır.

    Yapılandırma dosyasında 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
  3. Yapılandırma dosyasını kaydedin.
  4. 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ı 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 isterseniz 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'da 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_name change_jmx_auth [options|-f config_file]

Burada:

  • component aşağıdakilerden 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ştir veya devre dışı bırak)
  • config_file, aşağıdakileri tanımladığınız bir yapılandırma dosyasının yerini belirtir:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (ayarlanmadıysa veya -p ile birlikte iletilmediyse sizden istenir)

Kullanıcı adını, şifreyi ve etkin/devre dışı durumunu tanımlamak için komut satırı seçeneklerini veya yapılandırma dosyasını kullanabilirsiniz. Hem bir seçenek grubu hem de 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 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ı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 n

JConsole ile izleme

Sağlık 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 bir arayüzde görüntüleyebilirsiniz. Daha fazla bilgi için JConsole'u kullanma konusuna bakın.

JConsole, JMX üzerinden 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:

Örneğin, Yönetim Sunucusu'nu izlemek için aşağıdaki gibi bir komut verin (sunucunun IP adresinin 216.3.128.12 olduğu varsayılır):

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ı 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 yapmak ve 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 gerçekleştirme

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ı için kimlik doğrulama yapmanız gerekmez.

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 hangisi olduğuna ve onu 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:

  • Yapılandırma özellikleri
  • Başlangıç zamanı ve çalışma süresi
  • Derleme, BGBG ve UUID bilgileri
  • Dahili ve harici ana makine adları ve IP adresi
  • Bölge ve kapsül
  • Hizmetin çalışıp çalışmadığını belirten <isUp> mülkü

Bu API çağrısı için Apigee yönetici kimlik bilgilerinizle kimlik doğrulamanız gerekir.

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, kullanıcı adı ve şifrenin yanı sıra sunucunun IP adresini de 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ı bölümüne bakın.

Yanıtın biçimini değiştirmek için Accept üstbilgisini "application/json" veya "application/xml" olarak belirtebilirsiniz.

Aşağıdaki örnekte, localhost'teki (8081 bağlantı noktası) yönlendiricinin durumu alınır:

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

Aşağıdaki örnekte, 216.3.128.12 adresindeki (8082 numaralı bağlantı noktası) Mesaj İşleyen 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

Yönetim API'sini, Yönetim Sunucuları ve Mesaj İşleyicilerde proxy'lerinizin kullanıcı, kuruluş ve dağıtım durumunu izlemek için aşağıdaki komutları kullanabilirsiniz:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

Burada port_number, Yönetim Sunucusu için 8080 veya İleti İşlemcisi için 8082 değerini alır.

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 yöntemler işe yaramazsa aşağıdakileri yapın:

  1. 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 İşleyici: opt/apigee/var/log/edge-message-processor
  2. Düzgün çalışıp çalışmadığını kontrol etmek için sunucuya çağrı yapın.
  3. Sunucuyu ELB'den kaldırıp yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    service_name burada:

    • edge-management-server
    • edge-message-processor

apigee-service komutuyla durumu kontrol etme

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:

  1. Sunucuya giriş yapın ve aşağıdaki komutu çalıştırın:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    Burada service_name aşağıdakilerden biri olmalıdır:

    • Yönetim sunucusu: edge-management-server
    • Mesaj İşleyici: 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
  2. Hizmet çalışmıyorsa hizmeti başlatın:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. Hizmeti yeniden başlattıktan sonra, daha önce kullandığınız apigee-service status komutunu veya Yönetim API'si ile izleme başlıklı makalede 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"u kullanabileceğiniz varsayılmaktadır. Durumu Management API ile 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

Aşağıdaki curl komutunu kullanarak Postgres sunucusuna dahil edilen kuruluş ve ortam adlarını kontrol edebilirsiniz:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

Sistem, kuruluş ve ortam adını gösterir.

Analiz durumunu doğrulama

Aşağıdaki curl komutunu uygulayarak 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 bir 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ı kullanın

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 adresine bakın.

Komut dosyasını çalıştırmadan önce:

  1. check_postgres.pl komut dosyasını her Postgres düğümüne yüklemeniz gerekir.
  2. Yüksek çözünürlüklü alarm, uyku, gün başlangıcı ve aralıklı zamanlayıcılar uygulayan bir Perl modülü olan perl-Time-HiRes.x86_64'i yüklediğinizden emin olun. Örneğin, aşağıdaki komutu kullanarak yükleyebilirsiniz:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: CentOS v7'de check_postgres.pl kullanmadan önce perl-Data-Dumper.x86_64 BGBG'sini 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:

  1. 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'
  2. Veritabanına gelen bağlantıların sayısını kontrol edin ve izin verilen maksimum bağlantı sayısıyla karşılaştırın:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. 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
  4. 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%'
  5. Bir Postgres düğümüne dahil edilen 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ı kontrolleri ç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

Daha sonra şu komutu çalıştırın:

\d analytics."org.env.fact"

Postgres işleminin sağlık 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 etkinken 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ğıdakilere göz atın:

Apache Cassandra

JMX, Cassandra için varsayılan olarak etkindir ve Cassandra'ya uzak 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 kullanıcı adı ve şifre iletmeniz gerekir.

Cassandra için JMX kimlik doğrulamasını etkinleştirmek üzere:

  1. cassandra.properties dosyasını oluşturun ve düzenleyin:
    1. /opt/apigee/customer/application/cassandra.properties dosyasını düzenleyin. Dosya mevcut değilse dosyayı oluşturun.
    2. Dosyaya şunları 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
    3. cassandra.properties dosyasını kaydedin.
    4. Dosyanın sahibini aşağıdaki örnekte gösterildiği gibi apigee:apigee olarak değiştirin:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    Jeton ayarlamak için mülk dosyalarını kullanma hakkında daha fazla bilgi edinmek isterseniz Edge'i yapılandırma başlıklı makaleyi inceleyin.

  2. jmx_auth.sh oluşturma ve düzenleme:
    1. Aşağıdaki konumda dosya yoksa dosya oluşturun:
      /opt/apigee/customer/application/jmx_auth.sh
    2. Dosyaya aşağıdaki özellikleri ekleyin:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. jmx_auth.sh dosyasını kaydedin.
    4. Dosyayı kaynak olarak ekleyin:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. jmxremote.password dosyasını kopyalayıp düzenleyin:
    1. Aşağıdaki dosyayı $JAVA_HOME dizininizden /opt/apigee/data/apigee-cassandra/'a kopyalayın:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. jmxremote.password dosyasını düzenleyin ve aşağıdaki söz dizimini kullanarak JMX kullanıcı adınızı ve şifrenizi ekleyin:
      JMX_USERNAME JMX_PASSWORD

      Burada JMX_USERNAME ve JMX_PASSWORD, daha önce belirlediğiniz JMX kullanıcı adı ve

    3. Dosyanın sahibinin "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
  4. jmxremote.access dosyasını kopyalayıp düzenleyin:
    1. Şu 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
    2. jmxremote.access dosyasını düzenleyin ve aşağıdaki rolü ekleyin:
      JMX_USERNAME readwrite
    3. 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
  5. Cassandra'da configure çalıştırma:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Cassandra'yı yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Bu işlemi diğer tüm Cassandra düğümlerinde tekrarlayın.

JMX şifre şifrelemeyi etkinleştirme

JMX şifre şifrelemeyi etkinleştirmek için aşağıdaki adımları uygulayın:

  1. source/conf/casssandra-env.sh dosyasını açın.
  2. Dosyadaki aşağıdaki satırların yorumunu 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"
  3. Komut satırında, istenen şifrelerin SHA1 karmalarını oluşturmak için şu komutu girin: echo -n 'Secret' | openssl dgst -sha1
  4. Şifreleri, jmxremote.password içindeki kullanıcı adına göre ayarlayın.
  5. Güncellemeden sonra cassandra-env.sh dosyasını salt okunur olarak değiştirin.

Cassandra için SSL ile JMX'i etkinleştir

JMX'yi SSL ile etkinleştirmek, Cassandra ile JMX tabanlı iletişim için ek güvenlik ve şifreleme sağlar. SSL ile JMX'yi etkinleştirmek için Cassandra'ya SSL tabanlı JMX bağlantılarını kabul etmesi için bir anahtar ve sertifika sağlamanız gerekir. Ayrıca nodetool'u (ve JMX üzerinden Cassandra ile iletişim kuran diğer tüm araçları) SSL için yapılandırmanız gerekir.

SSL özellikli JMX hem düz metin hem de şifrelenmiş JMX şifrelerini destekler.

Cassandra için SSL ile JMX'yi etkinleştirmek üzere aşağıdaki prosedürü uygulayın:

  1. JMX'i etkinleştirin. Gerekirse şifre şifrelemeyi etkinleştirin.
  2. Cassandra için JMX kimlik doğrulamasını etkinleştirin. gerekir. nodetool'un yapılandırılmış kullanıcı adı ve şifreyle çalıştığından emin olun.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Anahtar deposu ve güven deposunu hazırlama.

    • Anahtar mağazası bir anahtar ve sertifika içermelidir ve Cassandra sunucusunu yapılandırmak için kullanılır. Anahtar mağazası birden fazla anahtar çifti içeriyorsa Cassandra, SSL'yi etkinleştirmek için ilk anahtar çiftini kullanır.

      Anahtar deposu ve anahtar şifrelerinin aynı olması gerektiğini unutmayın (anahtarı kullanarak anahtar oluşturduğunuzda varsayılan olarak kullanılır).

    • Truststore yalnızca sertifikayı içermelidir ve istemciler tarafından (Apigee-service tabanlı komutlar veya nodetool) JMX üzerinden bağlantı kurmak için kullanılır.

    Yukarıdaki koşulları doğruladıktan sonra:

    1. Anahtar deposu dosyasını /opt/apigee/data/apigee-cassandra içine yerleştirin.
    2. Aşağıdakileri girerek anahtar mağazası dosyasının yalnızca Apigee kullanıcısı tarafından okunabilir olduğundan emin olun:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node1
  4. Aşağıdaki adımları uygulayarak Cassandra'yı SSL ile JMX için yapılandırın:
    1. apigee-service apigee-cassandra stop
      komutunu girerek Cassandra düğümünü durdurun
    2. /opt/apigee/customer/application/cassandra.properties dosyasını açarak ve aşağıdaki satırı ekleyerek Cassandra'da SSL'yi etkinleştirin:
      conf_cassandra-env_com.sun.management.jmxremote.ssl=true

      Dosyanın sahibi apigee:apigee olmalıdır.

    3. Cassandra'da SSL ile ilgili yapılandırmayı aşağıdaki gibi etkinleştirin. /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh dosyasını açın ve /opt/apigee/data/apigee-cassandra/keystore.node1 yolunu ve anahtar deposu şifresini gerektiği şekilde değiştirerek aşağıdaki satırlarda açıklamaları kaldırın.
      JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node1"
      JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keystore-password"
      JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
      Dosyanın sahibinin apigee:apigee olduğundan emin olun.
    4. apigee-service apigee-cassandra start
      yazarak Cassandra düğümünü başlatın
  5. apigee-service Cassandra komutlarını yapılandırın. apigee-service komutlarını çalıştırırken aşağıdakiler de dahil olmak üzere belirli ortam değişkenlerini ayarlamanız gerekir:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    JMX kimlik doğrulaması ve SSL için apigee-service'ü yapılandırmayla ilgili birkaç seçenek vardır. Kullanılabilirliğe ve güvenlik uygulamalarınıza göre bir seçenek belirleyin.

    1. seçenek (SSL bağımsız değişkenleri dosyada depolanır)

    Aşağıdaki ortam değişkenlerini ayarlayın:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y

    Apigee kullanıcısının ana dizininde (/opt/apigee) bir dosya oluşturun.

    $HOME/.cassandra/nodetool-ssl.properties

    Dosyayı düzenleyip aşağıdaki satırları ekleyin:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    Trustore dosyasının Apigee kullanıcısı tarafından okunabilir olduğundan emin olun.

    Aşağıdaki apigee-service komutunu çalıştırın. Hatasız çalışırsa yapılandırmalarınız doğrudur.

    apigee-service apigee-cassandra ring

    2. Seçenek (Ortam değişkenlerinde depolanan SSL bağımsız değişkenleri)

    Aşağıdaki ortam değişkenlerini ayarlayın:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>

    Aşağıdaki apigee-service komutunu çalıştırın. Hatasız çalışırsa yapılandırmalarınız doğrudur.

    apigee-service apigee-cassandra ring

    3. Seçenek (Doğrudan apigee-service öğesine aktarılan SSL bağımsız değişkenleri)

    Aşağıdaki gibi bir apigee-service komutu çalıştırın. Herhangi bir ortam değişkenini yapılandırmanız gerekmez.

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. Düğüm aracını ayarlayın. Nodetool, kendisine JMX parametrelerinin iletilmesini gerektirir. nodetool'u, aşağıdaki yapılandırma seçeneklerinde açıklandığı gibi SSL özellikli JMX ile çalıştırmak için iki şekilde yapılandırabilirsiniz:

    Seçenekler, SSL ile ilgili yapılandırmaların Nodetool'a iletilme biçiminde farklılık gösterir. Her iki durumda da nodetool'u çalıştıran kullanıcının, güven mağazası dosyasında OKUMA iznine sahip olması gerekir. Kullanılabilirlik ve güvenlik yöntemlerinize bağlı olarak uygun bir seçenek belirleyin.

    nodetool parametreleri hakkında daha fazla bilgi edinmek için DataStax belgelerine göz atın.

    1. Yapılandırma Seçeneği

    nodetool'u çalıştıran kullanıcının ana dizininde bir dosya oluşturun.

    $HOME/.cassandra/nodetool-ssl.properties

    Dosyaya aşağıdaki satırları ekleyin:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    Yukarıda belirtilen güven mağazası yoluna, nodetool çalıştıran tüm kullanıcılar erişebilmelidir.

    nodetool--ssl seçeneğiyle çalıştırın.

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

    2. yapılandırma seçeneği

    nodetool komutunu, aşağıda listelenen ek parametrelerle tek bir komut olarak çalıştırın.

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

SSL yapılandırmalarını geri döndürme

Yukarıdaki prosedürde açıklanan SSL yapılandırmalarını geri almanız gerekirse şu adımları uygulayın:

  1. apigee-service apigee-cassandra stop
    yazarak apigee-cassandra'ü durdurun
  2. /opt/apigee/customer/application/cassandra.properties dosyasından conf_cassandra-env_com.sun.management.jmxremote.ssl=true satırını kaldırın.
  3. /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh dosyasında aşağıdaki satırları yorumlayın
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. apigee-cassandra'ü başlatmak için
  5. apigee-service apigee-cassandra start
  6. Ayarlanmışsa CASS_JMX_SSL ortam değişkenini kaldırın.

    unset CASS_JMX_SSL
  7. ring, stop, backup vb. apigee-service tabanlı komutların çalıştığından emin olun.
  8. nodetool ile --ssl anahtarını kullanmayı bırakma

Cassandra için JMX kimlik doğrulamasını devre dışı bırakma

Cassandra için JMX kimlik doğrulamasını devre dışı bırakmak üzere:

  1. /opt/apigee/customer/application/cassandra.properties öğesini düzenle.
  2. Dosyadan şu satırı kaldırın:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Cassandra'da configure komutunu çalıştırın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Cassandra'yı yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Bu işlemi diğer tüm Cassandra düğümlerinde tekrarlayın.

JConsole'u kullanın: Görev istatistiklerini izleyin

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

Buradaki IP_address, Cassandra sunucusunun IP adresidir.

Cassandra JMX istatistikleri

JMX MBean'leri JMX Özellikleri

ColumnAileler/apprepo/ortamlar

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ı, Cassandra için küme düğümlerini yöneten bir komut satırı arayüzüdür. Yardımcı programı /opt/apigee/apigee-cassandra/bin adresinde bulabilirsiniz.

Aşağıdaki çağrılar tüm Cassandra küme düğümlerinde yapılabilir:

  1. Genel halka bilgileri (tek Cassandra düğümü için de mümkündür): Tüm düğümlerde "Yüksek" ve "Normal" durumlarını 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 çıktısı 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

  2. Düğümler hakkında genel bilgiler (düğüm başına çağrı)
    nodetool [-u username -pw password]  -h localhost info

    Yukarıdaki komutun çıkışı şu şekilde 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
  3. Thrift sunucusunun durumu (istemci API'sini sunma)
    nodetool [-u username -pw password] -h localhost statusthrift

    Yukarıdaki komutun çıktısı aşağıdaki gibi görünür:

    running

  4. Veri akışı işlemlerinin durumu: Cassandra düğümlerinin trafiğini gözlemleyin:
    nodetool [-u username -pw password] -h localhost netstats

    Yukarıdaki komutun çıktısı 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ğı

Aşağıdaki URL'ye bakın: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

ZooKeeper durumunu kontrol etme

  1. ZooKeeper işleminin çalıştığından emin olun. ZooKeeper, opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid dosyasına bir PID dosyası yazar.
  2. Her ZooKeeper sunucusunda 2181 ve 3888 bağlantı noktalarına TCP bağlantısı kurabildiğinizden emin olmak için ZooKeeper bağlantı noktalarını test edin.
  3. 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.
  4. 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 grubuyla (dört harfli kelime) izlenebilir.

ZooKeeper komutları hakkında daha fazla bilgi için: Apache ZooKeeper komut referansı başlıklı makaleyi inceleyin.

Örneğin:

  • srvr: Sunucunun tüm ayrıntılarını listeler.
  • stat: Sunucu ve bağlı istemcilerle ilgili kısa ayrıntıları listeler.

ZooKeeper bağlantı noktasına aşağıdaki komutlar gönderilebilir:

  1. Sunucunun hata olmayan bir durumda çalışıp çalışmadığını test etmek için dört harfli ruok komutunu çalıştırın. Başarılı bir yanıtta "imok" döndürülür.
    echo ruok | nc host 2181

    Şunu döndürür:

    imok
  2. 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

    Ş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
  3. netcat (nc) kullanılamıyorsa 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)

    Ardından 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üzey testi

Belirli isteklerin düzgün şekilde yayınlanıp yayınlanmadığını görmek için OpenLDAP'ı izleyebilirsiniz. Diğer bir deyişle, doğru sonucu döndüren belirli bir arama olup olmadığını kontrol edin.

  1. Sistem yöneticisinin girişini sorgulamak için ldapsearch (yum install openldap-clients) değerini 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:

    Şifre girdikten sonra 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
  2. Aşağıdaki komutu kullanarak 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

    Şunu döndürür:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

Disk erişimleri sayısını azaltarak sistemin performansını artırmaya yardımcı olan OpenLDAP önbellekleri de izleyebilirsiniz. OpenLDAP sunucusunda önbellek boyutunu izlemek ve ardından ayarlamak, dizin sunucusunun performansını büyük ölçüde etkileyebilir. Önbellek hakkında bilgi edinmek için günlük dosyalarını (opt/apigee/var/log) görüntüleyebilirsiniz.