Cara Memantau

Edge untuk Private Cloud v. 4.17.05

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

Mengaktifkan JMX

JMX diaktifkan secara default untuk Cassandra, dan dinonaktifkan secara default untuk semua komponen Edge lainnya. Karena itu Anda harus mengaktifkan JMX satu per satu untuk setiap komponen.

Setiap komponen mendukung JMX pada porta yang berbeda. Tabel berikut mencantumkan port JMX dan file yang Anda ubah untuk mengaktifkan JMX pada port tersebut:

Komponen Port JMX File
Server Pengelolaan 1099 /opt/apigee/edge-management-server/bin/start
Message Processor 1101 /opt/apigee/edge-mesage-processor/bin/start
Qpid 1102 /opt/apigee/edge-qpid-server/bin/start
Postgres 1103 /opt/apigee/edge-postgres-server/bin/start

Misalnya, untuk mengaktifkan JMX di Server Pengelolaan, buka /opt/apigee/edge-management-server/bin/start di editor. Anda akan melihat baris berikut yang digunakan untuk memulai Server Pengelolaan:

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 $* $debug_options com.apigee.kernel.MicroKernel

Edit baris ini untuk menambahkan hal berikut:

-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 

Perhatikan bahwa baris ini menentukan nomor port JMX sebagai 1099 untuk Server Pengelolaan. Tetapkan nomor port untuk setiap komponen seperti yang ditentukan pada tabel di atas. Contoh:

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts 
-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 
-Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

Simpan file, lalu mulai ulang komponen. Misalnya, untuk memulai ulang Server Pengelolaan:

> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart

Mengaktifkan autentikasi JMX dan menyetel sandi JMX

Proses pemantauan untuk Server Pengelolaan, Message Processor, Qpid, dan Postgres semuanya menggunakan JMX. Secara default, akses JMX jarak jauh tidak memerlukan sandi.

Untuk mengaktifkan autentikasi JMX, setiap komponen memiliki tindakan change_jmx_auth yang Anda gunakan untuk mengaktifkan/menonaktifkan autentikasi dan untuk menetapkan kredensial JMX.

Untuk mengaktifkan autentikasi JMX, gunakan perintah berikut:

>  /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

dalam hal ini:

  • comp dapat berupa edge-management-server, edge-message-processor, edge-qpid-server, atau edge-postgres-server.
  • Opsi yang tersedia:
    • -u: nama pengguna
    • -p: sandi
    • -e: y (aktifkan) atau n (dapat diubah)
  • File konfigurasi mencakup:
    • JMX_USERNAME=nama pengguna
    • JMX_ENABLED=y/n
    • JMX_PASSWORD=password (jika tidak ditetapkan atau tidak diteruskan dengan -p, Anda akan diminta)

Misalnya, untuk menggunakan opsi pada command line:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

Jika Anda memiliki file konfigurasi:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

Jika Anda menjalankan Edge di beberapa node, jalankan perintah ini pada semua node, dengan menentukan nama pengguna dan sandi yang sama.

Untuk menonaktifkan autentikasi JMX nanti, gunakan perintah:

> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

Server Pengelolaan

Menggunakan JConsole untuk memantau health check sistem dan memproses informasi

Gunakan JConsole (alat yang sesuai dengan JMX) untuk mengelola dan memantau health check dan memproses statistik. Dengan JConsole, Anda dapat menggunakan statistik JMX yang diekspos oleh Server Pengelolaan (atau server apa pun) dan menampilkannya dalam antarmuka grafis. Untuk informasi selengkapnya tentang penggunaan JConsole, lihat http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.

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

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi

dengan <ip address> adalah alamat IP Server Pengelolaan (atau server masing-masing). Secara default, portanya adalah 1099 untuk Server Pengelolaan.

Tabel berikut menampilkan statistik JMX generik:

JMX MBean

Atribut JMX

Memori

HeapMemoryUsage

NonHeapMemoryUsage

Penggunaan

Catatan: Nilai atribut akan ditampilkan dalam empat nilai: commit, init, max, dan used.

Menggunakan pemeriksaan Edge Application API

Anda dapat melakukan pemeriksaan API di Server Pengelolaan (atau server mana pun) dengan memanggil perintah CURL berikut:

curl http://<host>:8080/v1/servers/self/up 

Dengan, <host> adalah alamat IP Server Pengelolaan.

Panggilan ini menampilkan nilai "true" dan "false". Jika true (benar), berarti node aktif dan layanan Java sedang berjalan.

Jika Anda tidak menerima respons HTTP 200 (OK), Edge tidak dapat merespons permintaan port 8080.

Pemecahan masalah

  1. Login ke server dan jalankan perintah berikut:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server status
  2. Jika layanan tidak berjalan, mulai layanan:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server start

Menggunakan Aplikasi Edge – Pemeriksaan pengguna, organisasi, dan deployment

Server Pengelolaan memainkan peran penting dalam menyatukan semua paket lain di setiap penginstalan lokal. Anda dapat memeriksa status pengguna, organisasi, dan deployment pada server pengelolaan dengan menjalankan perintah berikut:

curl -u userEmail:password http://localhost:8080/v1/users
curl -u userEmail:password http://localhost:8080/v1/organizations
curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments

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

  1. Periksa log Server Pengelolaan (di <inst_root>/apigee/var/log/edge-management-server) untuk menemukan error.
  2. Lakukan panggilan terhadap Server Pengelolaan untuk memeriksa apakah Server berfungsi dengan benar.
  3. Hapus server dari ELB, lalu mulai ulang Server Pengelolaan.
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart

Router

Anda dapat melakukan pemeriksaan API pada Router (atau server mana pun) dengan memanggil perintah CURL berikut:

curl http://<host>:8081/v1/servers/self/up

Di mana, {i>host<i} adalah alamat IP {i>Router<i}.

Panggilan ini menampilkan nilai "true" dan "false". Jika true (benar), berarti node aktif dan layanan Router sedang berjalan.

Jika Anda tidak menerima respons HTTP 200 (OK), Edge tidak dapat merespons permintaan port 8081.

Pemecahan masalah

  1. Login ke server dan jalankan perintah berikut:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status
  2. Jika layanan tidak berjalan, mulai layanan
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start
  3. Setelah mulai ulang, periksa apakah port berfungsi
    curl -v http://localhost:port/v1/servers/self/up

    Dengan port 8081 untuk Router dan 8082 untuk Message Processor.

Message Processor

Menggunakan JConsole untuk memantau health check sistem dan memproses informasi

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 1101.

Menggunakan pemeriksaan Edge Application API

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Router.

Catatan: Pastikan Anda menggunakan port – 8082.

Menggunakan pemeriksaan alur pesan JMX

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 1101.

Server Qpid

Menggunakan JConsole untuk memantau health check sistem dan memproses informasi

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 1102.

Menggunakan pemeriksaan Edge Application API

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 8083. Perintah CURL berikut juga didukung untuk Qpid Server:

curl http://<qpid_IP>:8083/v1/servers/self

Server Postgres

Menggunakan JConsole untuk memantau health check sistem dan memproses informasi

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 1103.

Menggunakan pemeriksaan Edge Application API

Ikuti langkah yang sama seperti yang dijelaskan di atas untuk Server Pengelolaan.

Catatan: Pastikan Anda menggunakan port – 8084. Perintah CURL berikut juga didukung untuk Postgres Server:

curl http://<postgres_IP>:8084/v1/servers/self

Menggunakan pemeriksaan lingkungan dan pengaturan Aplikasi Edge

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

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

Catatan: Pastikan Anda menggunakan port – 8084.

Sistem harus menampilkan nama organisasi dan lingkungan.

Menggunakan pemeriksaan axstatus Aplikasi Edge

Anda dapat memverifikasi status server analisis dengan menjalankan perintah CURL berikut.

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

Sistem akan menampilkan status SUKSES untuk semua server analisis. Output dari perintah CURL di atas ditampilkan di bawah ini:

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

Menggunakan skrip check_postgres.pl

Untuk memantau database PostgreSQL, Anda dapat menggunakan skrip pemantauan standar, check_postgres.pl yang tersedia di http://bucardo.org/wiki/Check_postgres.

Catatan: Skrip, check_postgres.pl harus diinstal di setiap node Postgres.

Sebelum menjalankan skrip:

  1. Pastikan Anda telah menginstal perl-Time-HiRes.x86_64, modul Perl yang mengimplementasikan alarm resolusi tinggi, Sleep, gettimeofday, dan timer interval. Misalnya, Anda dapat menginstalnya menggunakan perintah berikut:
    yum install perl-Time-HiRes.x86_64

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

  1. Ukuran database – 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. Koneksi masuk ke database – memeriksa jumlah koneksi masuk ke database dan membandingkannya dengan koneksi maksimum yang diizinkan:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Ketersediaan dan performa database – memeriksa apakah database berjalan dan tersedia:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Kapasitas disk – memeriksa kapasitas disk:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. Organisasi/lingkungan yang diaktivasi – memeriksa 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_integer'score

Catatan: Buka http://bucardo.org/check_postgres/check_postgres.pl.html jika Anda memerlukan bantuan terkait penggunaan perintah di atas.

Pemeriksaan DB

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

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

lalu jalankan:

\d analytics."<org>.<env>.fact"

Memeriksa status respons proses postgres

Anda dapat melakukan pemeriksaan API pada mesin postgres dengan memanggil perintah CURL berikut:

http://<postgres_IP>:8084/v1/servers/self/health/

Catatan: Pastikan Anda menggunakan port 8084.

Metode ini mengembalikan status ‘ACTIVE’ saat proses postgres aktif. Jika proses postgres tidak aktif dan berjalan, status 'TIDAK AKTIF' akan ditampilkan.

Referensi Postgres

Apache Cassandra

Menggunakan JConsole – pantau 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.

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

Untuk mengaktifkan autentikasi JMX untuk menambahkan sandi:

  1. Edit /<inst_root>/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.authenticate=true
  3. Simpan file.
  4. Salin file berikut dari direktori $JAVA_HOME Anda ke /<inst_root>/apigee/data/apigee-cassandra/:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password

    cp/remote.remote.password

    cp/remote.remote.password

    cp/remote.remote.password

    cp/remote.remote.password

    cp/remote_access .
  5. Edit jmxremote.password dan tambahkan nama pengguna dan sandi ke file:
    cassandra password

    dengan password adalah sandi JMX.
  6. Edit jmxremote.access dan tambahkan peran berikut:
    cassandra readwrite
  7. Pastikan file tersebut dimiliki oleh "apigee" dan mode filenya adalah 400:
    > chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
    > chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
  8. Jalankan configure pada Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra Configure
  9. Mulai ulang Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Untuk menonaktifkan autentikasi nanti:

  1. Edit /<inst_root>/apigee/customer/application/cassandra.properties.
  2. Hapus baris berikut di file:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Jalankan konfigurasi di Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra Configure
  4. Mulai ulang Cassandra:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Statistik Cassandra JMX

JMX MBean

Atribut JMX

Columnfamilies/aplikasi/lingkungan

ColumnFamily/apprepo/organisasi

Columnfamilies/apprepo/apiproxy_revisions

Columnfamilies/apprepo/apiproxies

ColumnFamily/audit/audit

ColumnFamily/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

Menggunakan utilitas nodetool untuk mengelola node cluster

Utilitas nodetool, yang merupakan antarmuka command line untuk Cassandra, digunakan untuk mengelola node cluster. Utilitas ini dapat ditemukan di <inst_root>/apigee/apigee-cassandra/bin.

Untuk mengetahui informasi selengkapnya tentang utilitas nodetool, lihat http://www.datastax.com/docs/1.0/references/nodetool.

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.
    [host]# nodetool -h localhost ring

    Output perintah di atas akan terlihat seperti yang ditunjukkan di bawah ini:
    Address DC Rack Status State Load Owns Token
    192.168.124.201 dc1 ra1 Up Normal 1.67 MB 33,33% 0
    192.
  2. Info umum tentang node (panggilan per node)
    nodetool -h localhost info

    Output perintah di atas akan terlihat seperti yang ditunjukkan di bawah ini:
    Token : 0
    Gossip active : true
    Load : 1.67 MB
    Generation No : 1361968765
    Uptime (detik) : 781



  3. Status server barang bekas (menayangkan API klien)
    host]# nodetool -h localhost statusthrift

    Output perintah di atas menampilkan status "running".
  4. Status operasi streaming data: Amati traffic untuk node cassandra
    nodetool -h localhost netstats 192.168.124.203

    Output perintah di atas akan terlihat seperti di bawah ini:
    Mode: NORMAL
    Tidak ada streaming ke /192.168.124.203



Pemantauan Cassandra (UI)

Lihat URL opscenter datastax: http://www.datastax.com/products/opscenter.

Sumber Daya Cassandra

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

Apache Zookeeper

Memeriksa status ZooKeeper

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

Menggunakan Empat Huruf untuk 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, lihat: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

Contoh:

  • srvr: Mencantumkan detail lengkap untuk server.
  • stat: Mencantumkan 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

    Menampilkan:
    imok
  2. Jalankan perintah empat huruf, status untuk membuat daftar performa server, dan statistik klien yang terhubung.
    leader{i> echo stat<i} | nc <host> 2181

    Pengembalian:
    Zookeeper version: 3.4.5-1392090, dibangun pada 09/30/2012 17:52 GMT
    Klien:
    /0:0:0:0:0:0:1:











  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(sysprint.argv[2])
    c.send(sysprint.argv[2])




OpenLDAP

Tes Tingkat LDAP

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

  1. Gunakan ldapsearch (yum install openldap-clients) untuk mengkueri 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

    Setelah itu masukkan sandi admin LDAP, dan masukkan sandi admin LDAP:
    Masukkan sandi admin LDAP:
    Masukkan sandi admin LDAP:











  2. Periksa apakah Server Pengelolaan masih terhubung ke masalah LDAP:
    curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>

    Hasil:
    {
    "emailId" : <ADMIN>,
    "firstName" : "admin",
    "lastName" : "admin"
    }

Anda juga dapat memantau cache OpenLDAP, yang membantu mengurangi jumlah akses disk dan meningkatkan performa sistem. Memantau dan kemudian menyesuaikan ukuran cache di server OpenLDAP dapat sangat memengaruhi performa server direktori. Anda dapat melihat file log (<inst_root>/apigee/var/log) untuk mendapatkan informasi tentang cache.