İzleme

Bu belgede, şirket içi bir çözüm tarafından desteklenen bileşenlerin izleme teknikleri açıklanmaktadır. kullanıma sunuyoruz.

Genel Bakış

Edge, hizmetlerle ilgili ayrıntıları almak ve durumlardan birine sahip olmaları halinde başlatabilirler. Aşağıdaki tabloda, uygun olan her bir öğede gerçekleştirebileceğiniz kontrol türleri listelenmiştir hizmet:

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'i kullanabilmek için öncelikle JMX'i etkinleştirmeniz gerekir. JMX'i etkinleştirme bölümünde açıklanmıştır.

** apigee-monit hizmeti, bir bileşenin çalışıp çalışmadığını kontrol eder ve yeniden başlatmamız gerekir. Daha fazla bilgi için bkz. Apigee-monit kodu kullanılabilir.

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. İlgili içeriği oluşturmak için kullanılan 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

JMX kullanarak

Yönetim Sunucusu, İleti İşleyici, Qpid ve Postgres'in izleme süreçleri JMX kullanıyorlar. Bununla birlikte, JMX varsayılan olarak yalnızca Cassandra için etkin olup tüm diğer Edge bileşenlerini de kullanabilirsiniz. Bu nedenle, başlamadan önce her bileşen için JMX'i ayrı ayrı etkinleştirmeniz gerekir izleyebiliyor.

JMX kimlik doğrulaması varsayılan olarak etkin değildir. Tüm alan adları için JMX kimlik doğrulamasını etkinleştirebilirsiniz. bileşenlerine ayıralım. Cassandra için Cassandra için JMX kimlik doğrulamasını etkinleştirin.

JMX'i etkinleştir

JMX varsayılan olarak yalnızca Cassandra için etkin olup diğer tüm Edge için varsayılan olarak devre dışıdır bileşenlerine ayıralım. 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:

  1. Bileşenin yapılandırma dosyasını düzenleyin. Bu dosyanın konumu: opt/apigee/edge-component_name/bin/start Üretimde ortamlarda, bu yapılandırma dosyaları farklı makinelerde olacaktır.

    Her bir sunucuda 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ı şu konumdadır: /opt/apigee/edge-management-server/bin/start

  2. exec öğesine aşağıdaki com.sun.management.jmxremote seçeneklerini ekleyin satırı oluşturun:
    -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'ini almak için bağlantı noktası numarası olarak JMX ve Management API izleme bağlantı noktalarına bakın.

    Örneğin, Yönetim Sunucusu'nda JMX'i etkinleştirmek için aşağıdakileri Yönetim Sunucusu'na ekleyin. Sunucunun yapılandırma dosyası:

    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 bağlantı noktası 1099 belirtilmiştir. Daha önce belirtildiği gibi, hizmetin kendi bağlantı noktası numarası vardır.

    Yapılandırma dosyasındaki 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
  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. Tüm alan adları için JMX kimlik doğrulamasını etkinleştirebilirsiniz. JMX kimlik doğrulamasını etkinleştirme başlıklı makalede açıklandığı gibi). JMX'i etkinleştirmek için Cassandra için kimlik doğrulama, bkz. Cassandra için JMX kimlik doğrulamasını etkinleştirin.

JMX kimlik doğrulamasını etkinleştir

JMX kimlik doğrulaması varsayılan olarak etkin değildir. Tüm alan adları için JMX kimlik doğrulamasını etkinleştirebilirsiniz. bileşenlerine ayıralım. Cassandra için Cassandra için JMX kimlik doğrulamasını etkinleştir

JMX kimlik doğrulamasını etkinleştirmek için tüm cihazlarda aşağıdaki change_jmx_auth işlemini yürütün düğümler:

/opt/apigee/apigee-service/bin/apigee-service component_name 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 şunları belirtir:
    • -u username
    • -p password
    • -e [y|n] (etkinleştir veya devre dışı bırak)
  • config_file, tanımladığınız bir yapılandırma dosyasının konumunu belirtir şu:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (ayarlanmadıysa veya -p, sizden istenir)

Kullanıcı adını tanımlamak için komut satırı seçeneklerini veya yapılandırma dosyasını kullanabilirsiniz. ve etkinleştirme/devre dışı bırakma durumunu kontrol edin. Hem seçenek grubu hem de yapılandırma belirtmezseniz dosyası olarak kaydedebilirsiniz.

Aşağıdaki örnek, satır seçenekleri:

/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ız ve şifreniz.

Komut satırında JMX kimlik doğrulamasını devre dışı bırakmak için "-e n" kullanın aşağıdaki gibi bir seçenek örnek gösterilmektedir:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -e n

JConsole ile İzle

Durum denetimi ve işlem istatistiklerini yönetip izlemek için JConsole'u (JMX uyumlu bir araç) kullanın. JConsole ile sunucularınız tarafından sunulan JMX istatistiklerini tüketebilir ve bunları bir Grafik arayüzü. Daha fazla bilgi için bkz. JConsole kullanarak.

JConsole, sunulan JMX özelliklerini (MBeans) izlemek için aşağıdaki hizmet URL'sini kullanır: JMX:

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 yayınlayın (varsa) sunucunun IP adresi 216.3.128.12 ise):

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ı bölümüne bakın.

Aşağıdaki tabloda genel JMX istatistikleri gösterilmektedir:

JMX MBeans JMX Özellikleri

Bellek

HeapMemoryUsage

NonHeapMemoryUsage

Kullanım

Management API ile izleme

Edge, sunucularınızda hizmet kontrolleri yapmak için kullanabileceğiniz çeşitli API'ler ve kullanıcılarınızı, kuruluşlarınızı ve dağıtımlarınızı kontrol edin. Bu bölümde söz konusu API'ler açıklanmaktadır.

Hizmet kontrolleri gerçekleştirme

Management API, kullanıma sunuyoruz. 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ı şunları yapmanızı gerektirmez: kimlik doğrulama.

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 zamanı
  • 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ı gösteren <isUp> özelliği

Bu API çağrısı için Apigee yönetici kimlik bilgilerinizle kimlik doğrulaması yapmanız gerekiyor.

Bu uç noktaları kullanmak içincurl şu söz dizimi:

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. Giriş yaptıysanız "localhost"u kullanabilirsiniz; aksi takdirde, sunucunun IP adresini de belirtin girmeniz gerekir.
  • 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ı oluşturabilirsiniz. Ö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 bkz. JMX ve Management API izleme bağlantı noktaları

Yanıtın biçimini değiştirmek için Accept başlığını şu şekilde belirtebilirsiniz: &quot;application/json&quot; veya "application/xml".

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 örnek, 216.3.128.12 (bağlantı noktası 8082):

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

Kuruluşunuzun kullanıcı, kuruluş ve dağıtım durumunu izlemek için Management API'yi kullanabilirsiniz. Yönetim Sunucuları ve İleti İşlemcileri üzerinde proxy'ler oluşturmak için kullanılır:

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 için 8082 olmalıdır. İşleyen.

Bu çağrı, sistem yönetimi kullanıcı adınızla kimliğinizi doğrulamanızı ve şifre.

Sunucunun "Deployed" (Dağıtıldı) döndürmesi gerekir durum gösterir. Bu işlemler başarısız olursa 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 bir ç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 edin

Aşağıdaki durumlarda apigee-service komutunu kullanarak Edge hizmetlerinizle ilgili sorunları giderebilirsiniz hizmeti çalıştıran sunucuya giriş yaptı.

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 ş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
  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 veya Management API'yi kullanarak kullandığınız apigee-service status komutu Yönetim API'si ile izleme başlıklı makalede açıklanmıştır.

    Örneğin:

    curl -v http://localhost:port_number/v1/servers/self/up

    Burada port_number, hizmet için Management API bağlantı noktasıdır.

    Bu örnekte, sunucuya giriş yaptığınız ve "localhost"u kullanabileceğiniz varsayılmaktadır olarak ana makine adı. Durumu Management API ile uzaktan kontrol etmek için IP'yi belirtmeniz gerekir. ve sistem yöneticisi kullanıcı adı ile şifresini API'nize dahil edin. çağrısına bir tıklama URL'si 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'teki kuruluşları ve ortamları kontrol edin

Postgres sunucusuna eklenen kuruluş ve ortam adlarını kontrol edebilirsiniz. aşağıdaki curl komutunu verin:

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

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

Analiz durumunu doğrulama

Postgres ve Qpid analiz sunucularının durumunu şu belgeyle doğrulayabilirsiniz: curl komutu:

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ı durumunu göstermelidir. gösterir:

{
  "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, Postgres'i izlemek için özel olarak 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ı kullanabilirsiniz. check_postgres.pl Daha fazla bilgi için bkz. http://bucardo.org/wiki/Check_postgres.

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

  1. Her Postgres düğümüne check_postgres.pl komut dosyasını yüklemeniz gerekir.
  2. perl-Time-HiRes.x86_64 adlı Perl modülünü yüklediğinizden emin olun. yüksek çözünürlüklü alarm, uyku, günün başlangıcı ve aralıklı zamanlayıcıları uygular. Ö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 devir/dk.

check_postgres.pl çıkışı

check_postgres.pl kullanan API çağrılarının varsayılan çıkışı Nagios'tur uyumlu olmalıdır. 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ı sayısını kontrol eder ve izin verilen maksimum bağlantı sayısıyla karşılaştırır bağlantılar:
    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. 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ı kontrolleri çalıştırma

PostgreSQL veritabanında uygun tabloların oluşturulduğunu doğrulayabilirsiniz. PostgreSQL'e giriş yapın veritabanını yükleyebilirsiniz:

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 sürecinin sağlık durumunu kontrol etme

Aşağıdaki curl çağırarak Postgres makinesinde API kontrolleri gerçekleştirebilirsiniz. komut:

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

Bu komut, postgres işlemi etkinken ACTIVE durumunu döndürür. Öğe Postgres işlemi çalışmıyor, INACTIVE durumunu döndürüyor.

Postgres kaynakları

Postgres hizmetini izleme hakkında daha fazla bilgi için aşağıdakilere göz atın:

Apache Cassandra

Cassandra için JMX varsayılan olarak etkindir ve Cassandra'ya uzaktan JMX erişimi için şifre.

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 iletir.

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. Öğe dosyası mevcut değilse oluşturun.
    2. 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
    3. cassandra.properties dosyasını kaydedin.
    4. 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 üzere Edge'yi yapılandırma.

  2. jmx_auth.sh oluşturun ve düzenleyin:
    1. Dosya mevcut değilse şu konumda 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 gönderin:
      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 kopyalayıp şuraya kopyalayın: /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. jmxremote.password dosyasını düzenleyin ve JMX kullanıcı adınızı ve şifrenizi ekleyin. şu söz dizimini kullanabilirsiniz:
      JMX_USERNAME JMX_PASSWORD

      Burada JMX_USERNAME ve JMX_PASSWORD, JMX kullanıcı adı ve parolayı kullanabilirsiniz.

    3. Dosyanın sahibi olarak "Apigee"nin bulunduğundan emin olun ve dosya modunun 400 olduğunu varsayalım:
      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. Aşağıdaki dosyayı $JAVA_HOME dizininizden kopyalayıp şuraya kopyalayın: /opt/apigee/data/apigee-cassandra/:
      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 sahibi olarak "Apigee"nin bulunduğundan emin olun ve dosya modunun 400 olduğunu varsayalım:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
  5. Cassandra'da configure komutunu çalıştırın:
    /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 şifrelemesini etkinleştir

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

  1. source/conf/casssandra-env.sh dosyasını açın.
  2. 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"
  3. Komut satırında, 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

SSL ile JMX'in etkinleştirilmesi, JMX tabanlı iletişim için ek güvenlik ve şifreleme sağlar. Cansu. SSL ile JMX'i etkinleştirmek üzere Cassandra'ya anahtar ve sertifika sağlayarak SSL tabanlı JMX bağlantılarını kabul edin. Ayrıca Nodetool'u (ve JMX üzerinden Cassandra ile iletişim kurma) kullanılmasına olanak tanır.

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

Cassandra için SSL ile JMX'i 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. Düğüm aracının yapılandırılmış kullanıcı adınız ve şifreniz.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Anahtar deposu ve güven deposunu hazırlama.

    • Anahtar deposu bir anahtar ve sertifika içermelidir. ve Cassandra sunucusunu yapılandırmak için kullanılır. Anahtar deposu ise birden fazla anahtar çifti içeriyorsa Cassandra, tıklayın.

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

    • Truststore yalnızca sertifikayı içermelidir ve istemciler tarafından kullanılır (Apigee-service tabanlı komutlarının veya düğüm araçlarının) JMX üzerinden bağlanmasını sağlar.

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

    1. Anahtar deposu dosyasını /opt/apigee/data/apigee-cassandra konumuna yerleştirin.
    2. Anahtar deposu dosyasının Apigee kullanıcısı tarafından okunabildiğinden 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 SSL ile JMX için Cassandra'yı yapılandırın:
    1. Girerek Cassandra düğümünü durdurun
      apigee-service apigee-cassandra stop
    2. Cassandra'da SSL'yi etkinleştirmek için /opt/apigee/customer/application/cassandra.properties dosyası açılıyor şu satırı ekleyerek:
      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. Dosyayı aç /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh. ve yolu değiştirerek, aşağıdaki satırlardaki açıklamaları iptal edin /opt/apigee/data/apigee-cassandra/keystore.node1 ve anahtar deposu şifresini gerektiği şekilde girin.
      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 sahibi olarak apigee:apigee bulunduğundan emin olun.
    4. Şunu girerek Cassandra düğümünü başlatın:
      apigee-service apigee-cassandra start
  5. apigee-service Cassandra komutlarını yapılandırın. Çalıştırırken belirli ortam değişkenlerini ayarlamanız gerekir Aşağıdakiler de dahil olmak üzere apigee-service komutları:
    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ı için apigee-service yapılandırmasının çeşitli seçenekleri vardır. ve SSL'yi tıklayın. Kullanılabilirlik ve güvenlik yöntemlerinize bağlı olarak bir seçenek belirleyin.

    1. Seçenek (Dosyada 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

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

    $HOME/.cassandra/nodetool-ssl.properties

    Dosyayı düzenleyin ve 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

    Güvenilir dosyanın Apigee kullanıcısı tarafından okunabildiğinden emin olun.

    Aşağıdaki apigee-service komutunu çalıştırın. Hata olmadan çalışıyorsa 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. Hata olmadan çalışıyorsa 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 herhangi bir apigee-service komutunu çalıştırın. Herhangi bir ortam değişkeni 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. İki yol vardır Düğüm aracını aşağıdaki örnekte açıklandığı gibi, aşağıdaki yapılandırma seçeneklerini görebilirsiniz:

    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 deposu dosyasında OKUMA izinlerine 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.

    Yapılandırma Seçeneği 1

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

    $HOME/.cassandra/nodetool-ssl.properties

    Aşağıdaki satırları dosyaya 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 Trustedstore yolu, nodetool.

    nodetool öğesini --ssl seçeneği ile çalıştırın.

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

    Yapılandırma seçeneği 2

    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ür

Prosedürde açıklanan SSL yapılandırmalarını geri almanız gerekirse: yukarıdaki adımları uygulayın:

  1. Girerek apigee-cassandra özelliğini durdurun
    apigee-service apigee-cassandra stop
  2. Şu satırdan conf_cassandra-env_com.sun.management.jmxremote.ssl=true satırını kaldır: /opt/apigee/customer/application/cassandra.properties dosyası.
  3. /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh içindeki aşağıdaki satırlara yorum ekleyin
    # 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 özelliğini girerek başlayın
  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 gibi apigee-service tabanlı komutların, stop, backup ve benzeri uygulamalar çalışıyor.
  8. --ssl anahtarını Nodetool ile kullanmayı durdurun

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:

  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 yapılandırmayı ç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

Şurada sunulan JMX özelliklerini (MBeans) izlemek için JConsole'u ve aşağıdaki hizmet URL'sini kullanın. JMX:

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

Burada IP_address, Cassandra sunucusunun IP'sidir.

Cassandra JMX istatistikleri

JMX MBeans 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ı Cassandra'ya ait olan ve küme düğümleri için geçerlidir. 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:

  1. Genel çalma bilgileri (tek Cassandra düğümü için de mümkündür): "Yukarı" ve "Normal" tıklayın.
    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ştirdiğinizden emin olun.

    Yukarıdaki komutun çıkışı aşağıda gösterildiği gibidir:

    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. İkinci el sunucusunun durumu (istemci API'si sunma)
    nodetool [-u username -pw password] -h localhost statusthrift

    Yukarıdaki komutun çıkışı şu şekilde 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 çıkışı şu şekilde 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 edinmek için Düğüm aracı yardımcı programı hakkında.

Cassandra kaynağı

Şu 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, bir PID dosyasını şuraya yazıyor: opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
  2. 2181 ve 2181 numaralı bağlantı noktalarıyla TCP bağlantısı kurabildiğinizden emin olmak için ZooKeeper bağlantı noktalarını test edin. Her ZooKeeper sunucusunda 3888.
  3. ZooKeeper veritabanındaki değerleri okuyabildiğinizden emin olun. ZooKeeper kullanarak bağlan istemci kitaplığını (veya /opt/apigee/apigee-zookeeper/bin/zkCli.sh) okumayı ve bir değer okumayı kaldıracak.
  4. Durumu kontrol edin:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

ZooKeeper'daki dört harfli kelimeleri kullanma

ZooKeeper, Search Ads 360'a gönderilen küçük bir komut dizisi (dört harfli kelime) ile izlenebilir netcat (nc) veya telnet kullanarak bağlantı noktası 2181'dir.

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ı istemciler için kısa ayrıntıları listeler.

ZooKeeper bağlantı noktasına aşağıdaki komutlar verilebilir:

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

    Şunu döndürür:

    imok
  2. Sunucu performansını ve bağlantı performansını listelemek için dört harfli stat komutunu çalıştırın müşteri istatistikleri:
    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) mevcut değilse python'u alternatif olarak kullanabilirsiniz. Dosya oluşturun şunları içeren zookeeper.py adında:
    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üzey testi

Belirli isteklerin düzgün bir şekilde sunulup sunulmadığını görmek için OpenLDAP'yi izleyebilirsiniz. İçinde diğer bir deyişle, doğru sonucu döndüren belirli bir arama olup olmadığını kontrol edin.

  1. Girişi sorgulamak için ldapsearch (yum install openldap-clients) işlevini kullanın size yardımcı olabilir. 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 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"
    }

Ayrıca OpenLDAP önbelleklerini izleyebilirsiniz. Bu, disk erişimlerinin sayısını azaltmaya yardımcı olur. Böylece sistemin performansını iyileştirebilir. Önbellek boyutunu izleme ve OpenLDAP sunucusu, dizin sunucusunun performansını önemli ölçüde etkileyebilir. Günlüğü görüntüleyebilirsiniz dosyalarını (opt/apigee/var/log) indirin.