Cara memantau

Dokumen ini menjelaskan teknik pemantauan komponen yang didukung oleh deployment Apigee Edge lokal untuk Private Cloud.

Ringkasan

Edge mendukung beberapa cara untuk mendapatkan detail tentang layanan serta memeriksa statusnya. Tabel berikut mencantumkan jenis pemeriksaan yang dapat Anda lakukan pada setiap layanan yang memenuhi syarat:

API Mgmt
Komponen Penggunaan Memori [JMX*] Pemeriksaan Layanan Status Deployment/Pengguna/ Organisasi status ax Pemeriksaan database Status apigee-service apigee-monit**
Server Pengelolaan
Message Processor
Router
APID
Postgres
Info Lebih Lanjut Info Lebih Lanjut Info Lebih Lanjut Info Lebih Lanjut Info Lebih Lanjut Info Lebih Lanjut Info Lebih Lanjut

* Sebelum dapat menggunakan JMX, Anda harus mengaktifkannya, seperti dijelaskan dalam Mengaktifkan JMX.

** Layanan apigee-monit memeriksa apakah komponen aktif dan akan mencoba memulai ulang jika tidak aktif. Untuk mengetahui informasi selengkapnya, lihat Pemulihan mandiri dengan apigee-monit.

Memantau port dan file konfigurasi

Setiap komponen mendukung panggilan pemantauan Java Management Extensions (JMX) dan Management API di port yang berbeda. Tabel berikut mencantumkan port JMX dan Management API untuk setiap jenis server, dan lokasi file konfigurasi:

Komponen Port JMX Port Management API Lokasi file konfigurasi
Server Pengelolaan 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
Message Processor 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
Router 1100 8081 $APIGEE_ROOT/customer/application/router.properties
APID 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

Menggunakan JMX untuk memantau komponen

Bagian berikut menjelaskan cara menggunakan JMX untuk memantau komponen Edge.

Aktifkan JMX

Untuk mengaktifkan JMX tanpa autentikasi atau komunikasi berbasis SSL, lakukan langkah-langkah di bawah ini. Catatan: Dalam sistem produksi, autentikasi terenkripsi dan SSL harus diaktifkan untuk keamanan.

  1. Edit file konfigurasi yang sesuai (lihat Referensi file konfigurasi). Buat file konfigurasi jika tidak ada.
    conf_system_jmxremote_enable=true
  2. Simpan file konfigurasi dan pastikan file tersebut dimiliki oleh apigee:apigee.
  3. Memulai ulang komponen Edge yang sesuai
    apigee-service edge-management-server restart

Untuk menonaktifkan JMX, hapus properti conf_system_jmxremote_enable atau ubah nilainya menjadi false. Kemudian, mulai ulang komponen Edge yang sesuai.

Autentikasi di JMX

Edge untuk Private Cloud mendukung autentikasi berbasis sandi menggunakan detail yang disimpan dalam file. Anda dapat menyimpan sandi sebagai Hash untuk keamanan tambahan.

  1. Untuk mengaktifkan autentikasi JMX pada komponen edge-*, edit file konfigurasi yang sesuai (lihat Referensi file konfigurasi). Buat file konfigurasi jika tidak ada:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
    Simpan file konfigurasi dan pastikan file tersebut dimiliki oleh apigee:apigee.
  2. Buat hash SHA256 sandi:
    echo -n '' | openssl dgst -sha256
  3. Buat file jmxremote.password dengan kredensial pengguna JMX:
    1. Salin file berikut dari direktori $JAVA_HOME Anda ke direktori /opt/apigee/customer/application/<component>/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. Edit file tersebut lalu tambahkan nama pengguna dan sandi JMX Anda menggunakan sintaksis berikut:
      USERNAME <HASH-PASSWORD>
    3. Pastikan file dimiliki oleh apigee dan mode filenya adalah 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. Buat file jmxremote.access dengan izin pengguna JMX:
    1. Salin file berikut dari direktori $JAVA_HOME ke direktori /opt/apigee/customer/application/<component>/
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. Edit file tersebut dan tambahkan nama pengguna JMX Anda, diikuti dengan izin (HANYA BACA/BACA)
      USERNAME READONLY
    3. Pastikan file dimiliki oleh apigee dan mode filenya adalah 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. Mulai ulang komponen Edge yang sesuai:
    apigee-service edge-management-server restart

Untuk menonaktifkan autentikasi JMX, hapus properti conf_system_jmxremote_authenticate atau ubah nilai menjadi false dan mulai ulang komponen Edge yang sesuai.

SSL di JMX

Untuk mengaktifkan JMX berbasis SSL dalam komponen edge-*:

  1. Edit file konfigurasi yang sesuai (lihat Referensi file konfigurasi). Buat file konfigurasi jika tidak ada:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    Simpan file konfigurasi dan pastikan file tersebut dimiliki oleh apigee:apigee.
  2. Siapkan keystore yang berisi kunci server dan tempatkan di jalur yang disediakan dalam konfigurasi conf_system_javax_net_ssl_keystore di atas. Pastikan file keystore dapat dibaca oleh apigee:apigee.
  3. Mulai ulang komponen Edge yang sesuai:
    apigee-service edge-management-server restart

Untuk menonaktifkan JMX berbasis SSL, hapus properti conf_system_jmxremote_ssl atau ubah nilai menjadi false. Mulai ulang komponen Edge yang sesuai.

Memantau melalui Jconsole

Petunjuk pemantauan melalui jconsole tetap sama seperti yang dijelaskan di https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.

Dapat ditambahkan satu baris bahwa “jconsole perlu dimulai dengan sandi truststore dan truststore jika SSL diaktifkan untuk JMX”. Referensi: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

Memantau dengan JConsole

Gunakan JConsole (alat yang sesuai dengan JMX) untuk mengelola dan memantau health check dan statistik proses. Dengan JConsole, Anda dapat menggunakan statistik JMX yang diekspos oleh server dan menampilkannya dalam antarmuka grafis. Untuk informasi selengkapnya, lihat Menggunakan JConsole.

Anda harus memulai JConsole dengan sandi truststore dan truststore jika SSL diaktifkan untuk JMX. Lihat Menggunakan JConsole.

JConsole menggunakan URL layanan berikut untuk memantau atribut JMX (MBean) yang ditawarkan melalui JMX:

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

Dengan keterangan:

  • IP_address adalah alamat IP server yang ingin Anda pantau.
  • port_number adalah nomor port JMX server yang ingin Anda pantau.

Misalnya, untuk memantau Server Pengelolaan, berikan perintah seperti berikut (dengan asumsi alamat IP server adalah 216.3.128.12):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

Perhatikan bahwa contoh ini menentukan port 1099, yang merupakan port Management Server JMX. Untuk port lainnya, lihat Port pemantauan JMX dan Management API.

Tabel berikut menampilkan statistik JMX umum:

JMX MBean Atribut JMX

Memori

HeapMemoryUsage

NonHeapMemoryUsage

Penggunaan

Referensi file konfigurasi

Bagian berikut ini menjelaskan perubahan yang mungkin perlu Anda lakukan pada file konfigurasi komponen Edge untuk konfigurasi terkait JMX. Lihat Memantau port dan file konfigurasi untuk informasi selengkapnya.

Konfigurasi JMX akan ditambahkan ke file konfigurasi komponen yang sesuai

  • Aktifkan agen JMX pada komponen tepi. Salah secara default.
    conf_system_jmxremote_enable=true

Konfigurasi untuk autentikasi berbasis sandi

  • Aktifkan autentikasi berbasis sandi. Salah secara default.
    conf_system_jmxremote_authenticate=true
  • Jalur untuk mengakses file. Hanya boleh dimiliki dan dapat dibaca oleh pengguna Apigee.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • Jalur ke file sandi. Hanya boleh dimiliki dan dapat dibaca oleh pengguna Apigee.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • Mengaktifkan penyimpanan sandi dalam format terenkripsi. Salah secara default.
    conf_system_jmxremote_encrypted_auth=true

Konfigurasi untuk JMX berbasis SSL

  • Aktifkan SSL untuk komunikasi JMX. Salah secara default.
    conf_system_jmxremote_ssl=true
  • Jalur ke keystore. Hanya boleh dimiliki dan dapat dibaca oleh pengguna Apigee.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • Sandi keystore:
    conf_system_javax_net_ssl_keystorepassword=changeme

Konfigurasi JMX opsional

Nilai yang tercantum adalah nilai default dan dapat diubah.

  • Port JMX. Nilai default tercantum dalam tabel di bawah.
    conf_system_jmxremote_port=
  • Port JMX RMI. Secara default, proses Java akan memilih porta acak.
    conf_system_jmxremote_rmi_port=
  • Nama host untuk stub jarak jauh. Alamat IP default localhost.
    conf_system_java_rmi_server_hostname=
  • Melindungi registry JMX dengan SSL. Salah default. Hanya berlaku jika SSL diaktifkan.
    conf_system_jmxremote_registry_ssl=false

Memantau dengan Management API

Edge menyertakan beberapa API yang dapat Anda gunakan untuk melakukan pemeriksaan layanan pada server Anda serta memeriksa pengguna, organisasi, dan deployment Anda. Bagian ini menjelaskan API tersebut.

Melakukan pemeriksaan layanan

Management API menyediakan beberapa endpoint untuk memantau dan mendiagnosis masalah pada layanan Anda. Endpoint ini mencakup:

Endpoint Deskripsi
/servers/self/up

Memeriksa apakah layanan sedang berjalan. Panggilan API ini tidak mengharuskan Anda untuk melakukan autentikasi.

Jika layanan berjalan, endpoint ini akan menampilkan respons berikut:

<ServerField>
  <Up>true</Up>
</ServerField>

Jika layanan tidak berjalan, Anda akan mendapatkan respons yang serupa dengan berikut ini (bergantung pada layanan yang dijalankan dan cara Anda memeriksanya):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

Menampilkan informasi tentang layanan, termasuk:

  • Properti konfigurasi
  • Waktu mulai dan waktu aktif
  • Informasi build, RPM, dan UUID
  • Nama host dan alamat IP internal dan eksternal
  • Region dan pod
  • Properti <isUp>, yang menunjukkan apakah layanan berjalan atau tidak

Panggilan API ini mengharuskan Anda melakukan autentikasi dengan kredensial admin Apigee.

Untuk menggunakan endpoint ini, panggil utilitas seperti curl dengan perintah yang menggunakan sintaksis berikut:

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]"

Dengan keterangan:

  • host adalah alamat IP server yang ingin Anda periksa. Jika login ke server, Anda dapat menggunakan "localhost"; jika tidak, tentukan alamat IP server serta nama pengguna dan sandi.
  • port_number adalah port Management API untuk server yang ingin Anda periksa. Port ini berbeda untuk setiap jenis komponen. Misalnya, port Management API Server Pengelolaan adalah 8080. Untuk mengetahui daftar nomor port Management API yang akan digunakan, lihat Port pemantauan JMX dan Management API

Untuk mengubah format respons, Anda dapat menentukan header Accept sebagai "application/json" atau "application/xml".

Contoh berikut mendapatkan status Router di localhost (port 8081):

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

Contoh berikut mendapatkan informasi tentang Pemroses Pesan di 216.3.128.12 (port 8082):

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

Memantau status pengguna, organisasi, dan deployment

Anda dapat menggunakan Management API untuk memantau status pengguna, organisasi, dan deployment proxy Anda di Server Pengelolaan dan Pemroses Pesan dengan memberikan perintah berikut:

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

Dengan port_number adalah 8080 untuk Server Pengelolaan atau 8082 untuk Pemroses Pesan.

Panggilan ini mengharuskan Anda melakukan autentikasi dengan nama pengguna dan sandi administrasi sistem Anda.

Server akan menampilkan status "di-deploy" untuk semua panggilan. Jika gagal, lakukan hal berikut:

  1. Periksa log server untuk menemukan error. Log terletak di:
    • Server Pengelolaan: opt/apigee/var/log/edge-management-server
    • Pemroses Pesan: opt/apigee/var/log/edge-message-processor
  2. Lakukan panggilan ke server untuk memeriksa apakah server berfungsi dengan baik.
  3. Hapus server dari ELB, lalu mulai ulang:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    Dengan service_name adalah:

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

Periksa status dengan perintah apigee-service

Anda dapat memecahkan masalah layanan Edge menggunakan perintah apigee-service saat login ke server yang menjalankan layanan.

Untuk memeriksa status layanan dengan apigee-service:

  1. Login ke server dan jalankan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    Dengan service_name adalah salah satu dari yang berikut:

    • Server Pengelolaan: edge-management-server
    • Pemroses Pesan: edge-message-processor
    • Postgre: edge-postgres-server
    • Qpid: edge-qpid-server
    • Router: edge-router

    Contoh:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. Jika layanan tidak berjalan, mulai layanan:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. Setelah memulai ulang layanan, periksa apakah layanan berfungsi dengan baik menggunakan perintah apigee-service status yang Anda gunakan sebelumnya atau dengan menggunakan Management API yang dijelaskan dalam Memantau dengan Management API.

    Contoh:

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

    Dengan port_number adalah port Management API untuk layanan.

    Contoh ini mengasumsikan bahwa Anda login ke server dan dapat menggunakan "localhost" sebagai nama host. Untuk memeriksa status dari jarak jauh dengan Management API, Anda harus menentukan alamat IP server dan menyertakan nama pengguna serta sandi administrator sistem dalam panggilan API Anda.

Pemantauan postgre

Postgres mendukung beberapa utilitas yang dapat Anda gunakan untuk memeriksa statusnya. Utilitas ini dijelaskan di bagian berikutnya.

Memeriksa organisasi dan lingkungan di Postgres

Anda dapat memeriksa nama organisasi dan lingkungan yang teraktivasi di Server Postgres dengan menjalankan perintah curl berikut:

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

Sistem harus menampilkan nama organisasi dan lingkungan.

Memverifikasi status analisis

Anda dapat memverifikasi status server analisis Postgres dan Qpid dengan mengeluarkan perintah curl berikut:

curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus

Sistem akan menampilkan status keberhasilan untuk semua server analisis, seperti yang ditunjukkan contoh berikut:

{
  "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"
}

Database PostgreSQL

Bagian ini menjelaskan teknik yang dapat Anda gunakan secara khusus untuk memantau database Postgres.

Menggunakan skrip check_postgres.pl

Untuk memantau database PostgreSQL, Anda dapat menggunakan skrip pemantauan standar, check_postgres.pl. Untuk informasi selengkapnya, lihat http://bucardo.org/wiki/Check_postgres.

Sebelum menjalankan skrip:

  1. Anda harus menginstal skrip check_postgres.pl di setiap node Postgres.
  2. Pastikan Anda telah menginstal perl-Time-HiRes.x86_64, modul Perl yang mengimplementasikan alarm, tidur, gettimeofday, dan timer interval beresolusi tinggi. Misalnya, Anda dapat menginstalnya menggunakan perintah berikut:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: Sebelum menggunakan check_postgres.pl di CentOS v7, instal RPM perl-Data-Dumper.x86_64.

output check_postgres.pl

Output default panggilan API yang menggunakan check_postgres.pl kompatibel dengan Nagios. Setelah Anda menginstal skrip, lakukan pemeriksaan berikut:

  1. Periksa ukuran database:
    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. Periksa jumlah koneksi yang masuk ke database dan bandingkan dengan koneksi maksimum yang diizinkan:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Periksa apakah database berjalan dan tersedia:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Periksa kapasitas disk:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. Periksa jumlah organisasi dan lingkungan yang diaktivasi dalam node Postgres:
    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

Menjalankan pemeriksaan database

Anda dapat memverifikasi bahwa tabel yang tepat telah dibuat di database PostgreSQL. Login ke database PostgreSQL menggunakan perintah berikut:

psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee

Kemudian, jalankan:

\d analytics."org.env.fact"

Memeriksa status respons proses postgre

Anda dapat melakukan pemeriksaan API pada mesin Postgres dengan memanggil perintah curl berikut:

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

Perintah ini akan menampilkan status ACTIVE saat proses postgres aktif. Jika proses Postgres tidak aktif dan berjalan, proses tersebut akan menampilkan status INACTIVE.

Resource postgre

Untuk informasi tambahan tentang pemantauan layanan Postgres, lihat informasi berikut:

Apache Cassandra

JMX diaktifkan secara default untuk Cassandra dan akses JMX jarak jauh ke Cassandra tidak memerlukan sandi.

Aktifkan autentikasi JMX untuk Cassandra

Anda dapat mengaktifkan autentikasi JMX untuk Cassandra. Setelah itu, Anda akan diminta untuk meneruskan nama pengguna dan sandi ke semua panggilan ke utilitas nodetool.

Untuk mengaktifkan autentikasi JMX untuk Cassandra:

  1. Buat dan edit file cassandra.properties:
    1. Edit file /opt/apigee/customer/application/cassandra.properties. Jika tidak ada, buat file tersebut.
    2. Tambahkan kode berikut ke file:
      conf_cassandra_env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
    3. Simpan file cassandra.properties.
    4. Ubah pemilik file menjadi apigee:apigee, seperti yang ditunjukkan contoh berikut:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    Untuk mengetahui informasi selengkapnya tentang penggunaan file properti untuk menyetel token, lihat Cara mengonfigurasi Edge.

  2. Membuat dan mengedit jmx_auth.sh:
    1. Buat file di lokasi berikut jika lokasi tersebut tidak ada:
      /opt/apigee/customer/application/jmx_auth.sh
    2. Tambahkan properti berikut ke file:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. Simpan file jmx_auth.sh.
    4. Sumber file:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. Salin dan edit file jmxremote.password:
    1. Salin file berikut dari direktori $JAVA_HOME Anda ke /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. Edit file jmxremote.password lalu tambahkan nama pengguna dan sandi JMX Anda menggunakan sintaksis berikut:
      JMX_USERNAME JMX_PASSWORD

      Dengan JMX_USERNAME dan JMX_PASSWORD adalah nama pengguna dan sandi JMX yang Anda setel sebelumnya.

    3. Pastikan file adalah milik "apigee" dan mode filenya adalah 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. Salin dan edit file jmxremote.access:
    1. Salin file berikut dari direktori $JAVA_HOME Anda ke /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. Edit file jmxremote.access dan tambahkan peran berikut:
      JMX_USERNAME readwrite
    3. Pastikan file adalah milik "apigee" dan mode filenya adalah 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. Jalankan configure di Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Mulai ulang Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Ulangi proses ini pada semua node Cassandra lainnya.

Aktifkan enkripsi sandi JMX

Untuk mengaktifkan enkripsi sandi JMX, lakukan langkah-langkah berikut:

  1. Buka file source/conf/casssandra-env.sh.
  2. Buat dan edit file cassandra.properties:
    1. Edit file /opt/apigee/customer/application/cassandra.properties. Jika file tidak ada, buat file tersebut.
    2. Tambahkan kode berikut ke file:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. Simpan file cassandra.properties.
    4. Ubah pemilik file menjadi apigee:apigee, seperti yang ditunjukkan contoh berikut:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. Pada command line, buat hash SHA1 sandi yang diinginkan dengan memasukkan echo -n 'Secret' | openssl dgst -sha1
  4. Tetapkan sandi terhadap nama pengguna di $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (yang dibuat di bagian sebelumnya).
  5. Menjalankan konfigurasi di Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Mulai ulang Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Ulangi proses ini pada semua node Cassandra lainnya.

Mengaktifkan JMX dengan SSL untuk Cassandra

Mengaktifkan JMX dengan SSL akan memberikan keamanan dan enkripsi tambahan untuk komunikasi berbasis JMX dengan Cassandra. Untuk mengaktifkan JMX dengan SSL, Anda harus memberikan kunci dan sertifikat kepada Cassandra untuk menerima koneksi JMX berbasis SSL. Anda juga harus mengonfigurasi nodetool (dan alat lain yang berkomunikasi dengan Cassandra melalui JMX) untuk SSL.

JMX dengan SSL aktif mendukung teks biasa dan sandi JMX yang dienkripsi.

Untuk mengaktifkan JMX dengan SSL untuk Cassandra, gunakan prosedur berikut:

  1. Aktifkan JMX. Aktifkan enkripsi sandi jika diperlukan.
  2. Aktifkan autentikasi JMX untuk Cassandra. sebagaimana dijelaskan di atas. Pastikan nodetool berfungsi dengan nama pengguna dan sandi yang dikonfigurasi.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. Menyiapkan keystore dan truststore.

    • Keystore harus berisi kunci dan sertifikat, serta digunakan untuk mengonfigurasi server Cassandra. Jika keystore berisi beberapa pasangan kunci, Cassandra akan menggunakan pasangan kunci pertama untuk mengaktifkan SSL.

      Perlu diperhatikan bahwa sandi untuk keystore dan kunci harus sama (defaultnya jika Anda membuat kunci menggunakan keytool).

    • Truststore hanya boleh berisi sertifikat dan digunakan oleh klien (perintah berbasis layanan apigee atau nodetool) untuk terhubung melalui JMX.

    Setelah memverifikasi persyaratan di atas:

    1. Tempatkan file keystore di /opt/apigee/customer/application/apigee-cassandra/.
    2. Pastikan file keystore hanya dapat dibaca oleh pengguna Apigee dengan memasukkan
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. Konfigurasikan Cassandra untuk JMX dengan SSL dengan melakukan langkah-langkah berikut:
    1. Hentikan node Cassandra dengan memasukkan
      apigee-service apigee-cassandra stop
    2. Aktifkan SSL di Cassandra dengan membuka file /opt/apigee/customer/application/cassandra.properties dan menambahkan baris berikut:
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
    3. Ubah pemilik file menjadi apigee:apigee, seperti yang ditunjukkan contoh berikut:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. Menjalankan konfigurasi di Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. Mulai ulang Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. Ulangi proses ini pada semua node Cassandra lainnya.
    7. Mulai node Cassandra dengan memasukkan
      apigee-service apigee-cassandra start
  5. Konfigurasi perintah Cassandra apigee-service. Anda perlu menetapkan variabel lingkungan tertentu saat menjalankan perintah apigee-service, termasuk variabel di bawah ini:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    Ada beberapa opsi guna mengonfigurasi apigee-service untuk autentikasi JMX dan SSL. Pilih opsi berdasarkan kegunaan dan praktik keamanan Anda.

    Opsi 1 (Argumen SSL yang disimpan dalam file)

    Tetapkan variabel lingkungan berikut:

    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

    Buat file di direktori utama pengguna Apigee (/opt/apigee).

    $HOME/.cassandra/nodetool-ssl.properties

    Edit file dan tambahkan baris berikut:

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

    Pastikan file trustore dapat dibaca oleh pengguna Apigee.

    Jalankan perintah apigee-service berikut. Jika berjalan tanpa error, berarti konfigurasi Anda sudah benar.

    apigee-service apigee-cassandra ring

    Opsi 2 (Argumen SSL disimpan dalam variabel lingkungan)

    Tetapkan variabel lingkungan berikut:

    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>

    Jalankan perintah apigee-service berikut. Jika berjalan tanpa error, berarti konfigurasi Anda sudah benar.

    apigee-service apigee-cassandra ring

    Opsi 3 (Argumen SSL diteruskan langsung ke apigee-service)

    Jalankan perintah apigee-service seperti di bawah ini. Anda tidak perlu mengonfigurasi variabel lingkungan apa pun.

    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. Siapkan nodetool. Nodetool memerlukan parameter JMX untuk diteruskan ke nodetool. Ada dua cara untuk mengonfigurasi nodetool agar berjalan dengan JMX yang mendukung SSL, seperti yang dijelaskan dalam opsi konfigurasi di bawah ini:

    Opsinya berbeda dalam cara meneruskan konfigurasi terkait SSL ke nodetool. Dalam kedua kasus tersebut, pengguna yang menjalankan nodetool harus memiliki izin BACA pada file truststore. Pilih opsi yang sesuai berdasarkan kegunaan dan praktik keamanan Anda.

    Untuk mempelajari parameter nodetool lebih lanjut, lihat dokumentasi DataStax.

    Opsi Konfigurasi 1

    Buat file di direktori beranda pengguna yang menjalankan nodetool.

    $HOME/.cassandra/nodetool-ssl.properties

    Tambahkan baris berikut ke file:

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

    Jalur truststore yang ditentukan di atas harus dapat diakses oleh pengguna yang menjalankan nodetool.

    Jalankan nodetool dengan opsi --ssl.

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

    Opsi konfigurasi 2

    Jalankan nodetool sebagai perintah tunggal dengan parameter tambahan yang tercantum di bawah.

    /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

Mengembalikan konfigurasi SSL

Jika Anda perlu mengembalikan konfigurasi SSL yang dijelaskan dalam prosedur di atas, lakukan langkah-langkah berikut:

  1. Hentikan apigee-cassandra dengan memasukkan
    apigee-service apigee-cassandra stop
  2. Hapus baris conf_cassandra-env_com.sun.management.jmxremote.ssl=true dari file /opt/apigee/customer/application/cassandra.properties.
  3. Jadikan baris berikut sebagai komentar di /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
    # 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. Mulai apigee-cassandra dengan memasukkan
  5. apigee-service apigee-cassandra start
  6. Hapus variabel lingkungan CASS_JMX_SSL jika sudah disetel.

    unset CASS_JMX_SSL
  7. Pastikan perintah berbasis apigee-service seperti ring, stop, backup, dan seterusnya berfungsi.
  8. Berhenti menggunakan tombol --ssl dengan nodetool

Nonaktifkan autentikasi JMX untuk Cassandra

Untuk menonaktifkan autentikasi JMX untuk Cassandra:

  1. Edit /opt/apigee/customer/application/cassandra.properties.
  2. Hapus baris berikut dalam file:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Menjalankan konfigurasi di Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Mulai ulang Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Ulangi proses ini pada semua node Cassandra lainnya.

Menggunakan JConsole: Memantau statistik tugas

Gunakan JConsole dan URL layanan berikut untuk memantau atribut JMX (MBean) yang ditawarkan melalui JMX:

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

Dengan IP_address adalah IP server Cassandra.

Statistik Cassandra JMX

JMX MBean Atribut JMX

ColumnFamily/apprepo/environments

ColumnFamily/apprepo/organisasi

Columnfamilies/apprepo/apiproxy_revisions

ColumnFamily/apprepo/apiproxies

ColumnFamily/audit/audit

KolomKeluarga/audit/audit_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

Menggunakan nodetool untuk mengelola node cluster

Utilitas nodetool adalah antarmuka command line untuk Cassandra yang mengelola node cluster. Alatnya dapat ditemukan di /opt/apigee/apigee-cassandra/bin.

Panggilan berikut dapat dilakukan di semua node cluster Cassandra:

  1. Info dering umum (juga memungkinkan untuk node Cassandra tunggal): Cari "Up" dan "Normal" untuk semua node.
    nodetool [-u username -pw password] -h localhost ring

    Anda hanya perlu meneruskan nama pengguna dan sandi jika Anda mengaktifkan autentikasi JMX untuk Cassandra.

    Output dari perintah di atas terlihat seperti di bawah ini:

    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. Info umum tentang node (panggilan per node)
    nodetool [-u username -pw password]  -h localhost info

    Output dari perintah di atas terlihat seperti berikut:

    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. Status server barang bekas (API klien penayangan)
    nodetool [-u username -pw password] -h localhost statusthrift

    Output dari perintah di atas akan terlihat seperti berikut:

    running

  4. Status operasi streaming data: Amati traffic untuk node cassandra:
    nodetool [-u username -pw password] -h localhost netstats

    Output dari perintah di atas akan terlihat seperti berikut:

    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

Untuk mengetahui info selengkapnya tentang nodetool, lihat Tentang utilitas nodetool.

Referensi Cassandra

Lihat URL berikut: http://www.datastax.com/docs/1.0/operations/monitoring.

Memantau Broker-J Apache Qpid

Anda dapat memantau Qpid Broker-J dari konsol pengelolaan Qpid. Bagian ini menjelaskan cara mengakses konsol dan menggunakannya untuk menjalankan fungsi pemantauan dasar. Untuk informasi lebih detail tentang cara menggunakan konsol pengelolaan, lihat Konsol Pengelolaan Web dalam dokumentasi Apache Qpid.

Mengakses konsol pengelolaan

Port konsol pengelolaan default adalah 8090. Untuk mengakses konsol pada port default ini, arahkan browser web Anda ke:

http://QPID_NODE_IP:8090

Untuk login ke konsol, gunakan kredensial default yang disetel oleh Apigee atau kredensial yang disetel dalam file konfigurasi Edge. Untuk mengetahui detailnya, lihat Referensi file konfigurasi Edge.

Memantau antrean dan pesan

Di panel navigasi kiri, buka Java-Broker > virtualhosts > queues. Pilih antrean untuk melihat detailnya di bagian utama UI. Dalam tampilan detail, Anda dapat melihat Atribut dan Statistik Antrean, termasuk informasi tentang pesan yang dikirim, dalam antrean, kecepatan pesan, dan sebagainya.

Melihat dan mendownload file log

Di panel navigasi kiri, buka Java-Broker > brokerloggers > logfile. Dalam tampilan detail UI utama, Anda dapat melihat detail file log dan mendownload file log.

Menggunakan API pengelolaan Qpid

Anda dapat menggunakan Apache Qpid Broker-J REST API untuk mengotomatiskan tugas pengelolaan dan memantau broker. Untuk mengetahui detailnya, lihat dokumentasi REST API Apache Qpid Broker.

Anda juga dapat menggunakan alat command line untuk memantau broker. Contoh:

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

Apache ZooKeeper

Periksa status ZooKeeper

  1. Pastikan proses ZooKeeper berjalan. ZooKeeper menulis file PID ke opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Uji port ZooKeeper untuk memastikan bahwa Anda dapat membuat koneksi TCP ke port 2181 dan 3888 pada setiap server ZooKeeper.
  3. Pastikan Anda dapat membaca nilai dari database ZooKeeper. Hubungkan menggunakan library klien ZooKeeper (atau /opt/apigee/apigee-zookeeper/bin/zkCli.sh) dan baca nilai dari database.
  4. Periksa status:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

Gunakan kata empat huruf ZooKeeper

ZooKeeper dapat dipantau melalui serangkaian perintah kecil (empat huruf) yang dikirim ke port 2181 menggunakan netcat (nc) atau telnet.

Untuk info selengkapnya tentang perintah ZooKeeper, baca: Referensi perintah Apache ZooKeeper.

Contoh:

  • srvr: Mencantumkan detail lengkap untuk server.
  • stat: Menampilkan detail singkat untuk server dan klien yang terhubung.

Perintah berikut dapat dikeluarkan ke port ZooKeeper:

  1. Jalankan ruok perintah empat huruf untuk menguji apakah server berjalan dalam status non-error. Respons yang berhasil akan menampilkan "imok".
    echo ruok | nc host 2181

    Retur:

    imok
  2. Jalankan perintah empat huruf, stat, untuk membuat daftar performa server dan statistik klien yang terhubung:
    echo stat | nc host 2181

    Retur:

    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. Jika netcat (nc) tidak tersedia, Anda dapat menggunakan python sebagai alternatif. Buat file bernama zookeeper.py yang berisi hal berikut:
    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)

    Sekarang jalankan baris python berikut:

    python zookeeper.py 192.168.124.201 ruok
    python zookeeper.py 192.168.124.201 stat

Pengujian level LDAP

Anda dapat memantau OpenLDAP untuk melihat apakah permintaan tertentu dilayani dengan benar. Dengan kata lain, periksa penelusuran tertentu yang menampilkan hasil yang tepat.

  1. Gunakan ldapsearch (yum install openldap-clients) untuk meng-kueri entri admin sistem. Entri ini digunakan untuk mengautentikasi semua panggilan API.
    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

    Anda kemudian diminta untuk memasukkan sandi admin LDAP:

    Enter LDAP Password:

    Setelah memasukkan sandi, Anda akan melihat jawaban dalam bentuk:

    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. Periksa apakah Server Pengelolaan masih terhubung ke LDAP dengan perintah berikut:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    Retur:

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

Anda juga dapat memantau cache OpenLDAP, yang membantu mengurangi jumlah akses disk, sehingga meningkatkan performa sistem. Pemantauan dan kemudian menyesuaikan ukuran cache di server OpenLDAP dapat berdampak besar pada performa server direktori. Anda dapat melihat file log (opt/apigee/var/log) untuk mendapatkan informasi tentang cache.