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
- Login ke server dan jalankan perintah berikut:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server status - 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:
- Periksa log Server Pengelolaan (di <inst_root>/apigee/var/log/edge-management-server) untuk menemukan error.
- Lakukan panggilan terhadap Server Pengelolaan untuk memeriksa apakah Server berfungsi dengan benar.
- 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
- Login ke server dan jalankan perintah berikut:
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status - Jika layanan tidak berjalan, mulai layanan
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start - 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:
- 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:
- 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' - 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 - 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 - 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%' - 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
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
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:
- Edit /<inst_root>/apigee/customer/application/cassandra.properties. Jika file tidak ada, buat file tersebut.
- Tambahkan kode berikut ke file:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Simpan file.
- 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 . - Edit jmxremote.password dan
tambahkan nama pengguna dan sandi ke file:
cassandra password
dengan password adalah sandi JMX. - Edit jmxremote.access dan
tambahkan peran berikut:
cassandra readwrite - 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.* - Jalankan configure pada Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra Configure - Mulai ulang Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Untuk menonaktifkan autentikasi nanti:
- Edit /<inst_root>/apigee/customer/application/cassandra.properties.
- Hapus baris berikut di file:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - Jalankan konfigurasi di Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra Configure - 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:
- 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. - 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 - Status server barang bekas (menayangkan API klien)
host]# nodetool -h localhost statusthrift
Output perintah di atas menampilkan status "running". - 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
- Pastikan proses ZooKeeper berjalan. ZooKeeper menulis file PID ke <inst_root>/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
- Uji port ZooKeeper untuk memastikan Anda dapat membuat koneksi TCP ke port 2181 dan 3888 di setiap server ZooKeeper.
- 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.
- 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:
- 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 - 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: - 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.
- 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: - 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.