Dokumen ini menjelaskan teknik pemantauan komponen yang didukung oleh deployment lokal Apigee Edge 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 Pengelolaan | |||||||
Komponen | Penggunaan Memori [JMX*] | Pemeriksaan Layanan | Status Deployment Pengguna/Organisasi/ | axstatus | Pemeriksaan database | Status apigee-service |
apigee-monit ** |
Server Pengelolaan | |||||||
Message Processor | |||||||
Router | |||||||
QPID | |||||||
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 yang dijelaskan dalam Mengaktifkan JMX. ** Layanan |
Memantau port dan file konfigurasi
Setiap komponen mendukung panggilan pemantauan Java Management Extensions (JMX) dan Management API pada 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 |
QPID | 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 alasan keamanan.
- Edit file konfigurasi yang sesuai (lihat
Referensi file konfigurasi). Buat file konfigurasi jika tidak ada.
conf_system_jmxremote_enable=true
- Simpan file konfigurasi dan pastikan file tersebut dimiliki oleh
apigee:apigee
. - 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 {i>password<i} sebagai {i>Hash<i} untuk keamanan tambahan.
- Untuk mengaktifkan autentikasi JMX di 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 olehapigee:apigee
. - Buat hash SHA256 sandi:
echo -n '
' | openssl dgst -sha256 - Buat file
jmxremote.password
dengan kredensial pengguna JMX:- 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
- Edit file tersebut, lalu tambahkan nama pengguna dan sandi JMX Anda menggunakan sintaksis berikut:
USERNAME <HASH-PASSWORD>
- 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
- Salin file berikut dari direktori
- Buat file
jmxremote.access
dengan izin pengguna JMX:- 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
- Edit file dan tambahkan nama pengguna JMX Anda diikuti dengan izin (READONLY/READWRITE)
USERNAME READONLY
- 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
- Salin file berikut dari direktori $JAVA_HOME ke
direktori
- 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
, lalu mulai ulang komponen Edge yang sesuai.
SSL di JMX
Untuk mengaktifkan JMX berbasis SSL di 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_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 olehapigee:apigee
. - Siapkan keystore yang berisi kunci server dan letakkan di jalur yang disediakan dalam
conf_system_javax_net_ssl_keystore
konfigurasi di atas. Pastikan file keystore dapat dibaca olehapigee:apigee
. - 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 nilainya menjadi false
. Mulai ulang komponen Edge yang sesuai.
Pemantauan melalui Jconsole
Petunjuk pemantauan melalui jconsole tetap sama seperti yang dijelaskan di https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.
Satu baris dapat ditambahkan 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.htmlMemantau dengan JConsole
Gunakan JConsole (alat yang mematuhi JMX) untuk mengelola dan memantau health check dan memproses statistik. Dengan JConsole, Anda dapat menggunakan statistik JMX yang diekspos oleh server dan menampilkannya di antarmuka grafis. Untuk mengetahui 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 menunjukkan statistik JMX generik:
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 mengetahui informasi selengkapnya.
Konfigurasi JMX untuk ditambahkan ke file konfigurasi komponen yang sesuai
- Aktifkan agen JMX di komponen edge. 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. Harus dimiliki dan dapat dibaca oleh pengguna Apigee saja.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- Jalur ke file sandi. Harus dimiliki dan dapat dibaca oleh pengguna Apigee saja.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- Aktifkan 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. Harus dimiliki dan dapat dibaca oleh pengguna Apigee saja.
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=
- Porta RMI JMX. Secara default, proses Java akan memilih port acak.
conf_system_jmxremote_rmi_port=
- Nama host untuk stub jarak jauh. Alamat IP default localhost.
conf_system_java_rmi_server_hostname=
- Lindungi registry JMX dengan SSL. Nilai defaultnya adalah salah (false). 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 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 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 layanannya dan cara Anda memeriksanya): curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
Menampilkan informasi tentang layanan, termasuk:
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. Ini adalah port yang berbeda untuk setiap jenis komponen. Misalnya, port Management API Server Pengelolaan adalah 8080. Untuk daftar nomor port Management API yang dapat 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:passwordcurl 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 untuk melakukan autentikasi dengan nama pengguna dan sandi administrasi sistem.
Server harus menampilkan status "di-deploy" untuk semua panggilan. Jika gagal, lakukan langkah berikut:
- Periksa log server untuk menemukan error. Log tersebut berada di:
- Server Pengelolaan:
opt/apigee/var/log/edge-management-server
- Pemroses Pesan:
opt/apigee/var/log/edge-message-processor
- Server Pengelolaan:
- Lakukan panggilan ke server untuk memeriksa apakah server berfungsi dengan baik.
- Hapus server dari ELB, lalu mulai ulang:
/opt/apigee/apigee-service/bin/apigee-service service_name restart
Dengan lokasi service_name:
edge-management-server
edge-message-processor
Memeriksa status dengan perintah apigee-service
Anda dapat memecahkan masalah layanan Edge menggunakan perintah apigee-service
saat Anda login ke server yang menjalankan layanan tersebut.
Untuk memeriksa status layanan dengan apigee-service
:
- 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
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- Router:
edge-router
Contoh:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- Server Pengelolaan:
- Jika layanan tidak berjalan, mulai layanan:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- Setelah memulai ulang layanan, periksa apakah layanan berfungsi, baik dengan 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 dan sandi administrator sistem pada panggilan API Anda.
Pemantauan postgres
Postgres mendukung beberapa utilitas yang dapat Anda gunakan untuk memeriksa statusnya. Utilitas ini dijelaskan di bagian berikut.
Periksa organisasi dan lingkungan di Postgres
Anda dapat memeriksa nama organisasi dan lingkungan yang sudah diaktivasi di Server Postgres
dengan memberikan 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 memberikan perintah
curl
berikut:
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
Sistem akan menampilkan status berhasil 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 mengetahui informasi selengkapnya, lihat
http://bucardo.org/wiki/Check_postgres.
Sebelum Anda menjalankan skrip:
- Anda harus menginstal skrip check_postgres.pl di setiap node Postgres.
- Pastikan Anda telah menginstal
perl-Time-HiRes.x86_64
, yaitu modul Perl yang mengimplementasikan alarm resolusi tinggi, tidur, gettimeofday, dan timer interval. Misalnya, Anda dapat menginstalnya menggunakan perintah berikut:
yum install perl-Time-HiRes.x86_64
- 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 menginstal skrip, lakukan pemeriksaan berikut:
- 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'
- 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
- Periksa apakah database sudah berjalan dan tersedia:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- Periksa kapasitas disk:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- Periksa jumlah organisasi dan lingkungan yang diaktivasi di 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 memastikan 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 postgres
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 menampilkan status ACTIVE
saat proses postgres aktif. Jika
proses Postgres tidak aktif dan berjalan, status INACTIVE
akan ditampilkan.
Resource postgres
Untuk informasi tambahan tentang pemantauan layanan Postgres, lihat referensi berikut:
- 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
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 melakukannya, Anda akan diminta untuk meneruskan nama pengguna dan sandi ke semua panggilan ke utilitas nodetool.
Guna mengaktifkan autentikasi JMX untuk Cassandra:
- Buat dan edit file
cassandra.properties
:- Edit file
/opt/apigee/customer/application/cassandra.properties
. Jika file tidak ada, Anda bisa membuatnya. - 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
- Simpan file
cassandra.properties
. - Ubah pemilik file menjadi
apigee:apigee
, seperti yang ditunjukkan dalam contoh berikut:chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
Untuk informasi selengkapnya tentang penggunaan file properti untuk menetapkan token, lihat Cara mengonfigurasi Edge.
- Edit file
- Membuat dan mengedit
jmx_auth.sh
:- Buat file di lokasi berikut jika tidak ada:
/opt/apigee/customer/application/jmx_auth.sh
- Tambahkan properti berikut ke file:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- Simpan file
jmx_auth.sh
. - Sumber file:
source /opt/apigee/customer/application/jmx_auth.sh
- Buat file di lokasi berikut jika tidak ada:
- Salin dan edit file
jmxremote.password
:- 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
- Edit file
jmxremote.password
dan tambahkan nama pengguna serta sandi JMX Anda menggunakan sintaksis berikut:JMX_USERNAME JMX_PASSWORD
Dengan JMX_USERNAME dan JMX_PASSWORD adalah nama pengguna dan sandi JMX yang Anda tetapkan sebelumnya.
- Pastikan file dimiliki oleh "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
- Salin file berikut dari direktori
- Salin dan edit file
jmxremote.access
:- 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
- Edit file
jmxremote.access
dan tambahkan peran berikut:JMX_USERNAME readwrite
- Pastikan file dimiliki oleh "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
- Salin file berikut dari direktori
- Jalankan
configure
di Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Mulai ulang Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Ulangi proses ini pada semua node Cassandra lainnya.
Aktifkan enkripsi sandi JMX
Untuk mengaktifkan enkripsi sandi JMX, lakukan langkah-langkah berikut:
- Buka file
source/conf/casssandra-env.sh
. - Buat dan edit file
cassandra.properties
:- Edit file
/opt/apigee/customer/application/cassandra.properties
. Jika file tidak ada, buatlah. - Tambahkan kode berikut ke file:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- Simpan file cassandra.properties.
- Ubah pemilik file menjadi apigee:apigee, seperti yang ditunjukkan dalam contoh berikut:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Edit file
- Di command line, buat hash SHA1 sandi yang diinginkan dengan memasukkan
echo -n 'Secret' | openssl dgst -sha1
- Tetapkan sandi terhadap nama pengguna di
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(dibuat di bagian sebelumnya). - Jalankan konfigurasi di Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Mulai ulang Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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 menyediakan kunci dan sertifikat ke Cassandra agar dapat menerima koneksi JMX berbasis SSL. Anda juga perlu mengonfigurasi nodetool (dan alat lain yang berkomunikasi dengan Cassandra melalui JMX) untuk SSL.
JMX yang mendukung SSL mendukung teks biasa dan kata sandi JMX terenkripsi.
Guna mengaktifkan JMX dengan SSL untuk Cassandra, gunakan prosedur berikut:
- Aktifkan JMX. Aktifkan enkripsi sandi jika diperlukan.
- 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
Siapkan 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.
Perhatikan bahwa sandi untuk keystore dan kunci harus sama (default saat Anda membuat kunci menggunakan keytool).
- Truststore hanya boleh berisi sertifikat dan digunakan oleh klien (perintah atau nodetool berbasis layanan apigee) untuk terhubung melalui JMX.
Setelah memverifikasi persyaratan di atas:
- Tempatkan file keystore di
/opt/apigee/customer/application/apigee-cassandra/
. - 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
- Konfigurasikan Cassandra untuk JMX dengan SSL dengan melakukan langkah-langkah berikut:
- Hentikan node Cassandra dengan memasukkan
apigee-service apigee-cassandra stop
- 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
- Ubah pemilik file menjadi apigee:apigee, seperti yang ditunjukkan dalam contoh berikut:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Jalankan konfigurasi di Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Mulai ulang Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Ulangi proses ini pada semua node Cassandra lainnya.
- Mulai node Cassandra dengan memasukkan
apigee-service apigee-cassandra start
- Hentikan node Cassandra dengan memasukkan
- Konfigurasi perintah Cassandra
apigee-service
. Anda perlu menetapkan variabel lingkungan tertentu saat menjalankan perintahapigee-service
, termasuk yang 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 untuk mengonfigurasi
apigee-service
untuk autentikasi JMX dan SSL. Pilih sebuah opsi berdasarkan kegunaan dan praktik keamanan Anda.- Opsi 1 (Argumen SSL yang disimpan dalam file)
- Opsi 2 (Argumen SSL yang disimpan dalam variabel lingkungan)
- Opsi 3 (Argumen SSL yang diteruskan langsung ke
apigee-service
)
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 wali dapat dibaca oleh pengguna Apigee.
Jalankan perintah
apigee-service
berikut. Jika berjalan tanpa error, konfigurasi Anda sudah benar.apigee-service apigee-cassandra ring
Opsi 2 (Argumen SSL yang 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, konfigurasi Anda sudah benar.apigee-service apigee-cassandra ring
Opsi 3 (Argumen SSL yang 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
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:
Opsi tersebut berbeda dalam cara konfigurasi terkait SSL diteruskan 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 mana pun 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 ekstra 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
Kembalikan konfigurasi SSL
Jika Anda perlu mengembalikan konfigurasi SSL yang dijelaskan dalam prosedur di atas, lakukan langkah-langkah berikut:
- Hentikan
apigee-cassandra
dengan memasukkanapigee-service apigee-cassandra stop
- Hapus baris
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
dari file/opt/apigee/customer/application/cassandra.properties
. - Jadikan baris berikut 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”
sebagai komentar - Mulai
apigee-cassandra
dengan memasukkan - Hapus variabel lingkungan
CASS_JMX_SSL
jika telah ditetapkan.unset CASS_JMX_SSL
- Pastikan perintah berbasis
apigee-service
sepertiring
,stop
,backup
, dan sebagainya berfungsi. - Berhenti menggunakan tombol
--ssl
dengan nodetool
apigee-service apigee-cassandra start
Nonaktifkan autentikasi JMX untuk Cassandra
Guna menonaktifkan autentikasi JMX untuk Cassandra:
- Edit
/opt/apigee/customer/application/cassandra.properties
. - Hapus baris berikut di file:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Jalankan konfigurasi di Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Mulai ulang Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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 ColumnFamily/apprepo/apiproxy_revisions ColumnFamily/apprepo/apiproxies Keluarga/audit/audit KolomKeluarga/audit/audit_referensi |
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. Utilitas ini dapat ditemukan di /opt/apigee/apigee-cassandra/bin
.
Panggilan berikut dapat dilakukan pada semua node cluster Cassandra:
- Info umum dering (juga dapat dilakukan 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 sudah mengaktifkan autentikasi JMX untuk Cassandra.
Output perintah di atas akan terlihat seperti yang ditunjukkan 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
- Info umum tentang node (panggilan per node)
nodetool [-u username -pw password] -h localhost info
Output perintah di atas akan 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
- Status server barang bekas (API klien yang melayani)
nodetool [-u username -pw password] -h localhost statusthrift
Output dari perintah di atas akan terlihat seperti berikut:
running
- 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 info selengkapnya tentang nodetool, lihat Tentang utilitas nodetool.
Referensi Cassandra
Lihat URL berikut: http://www.datastax.com/docs/1.0/operations/monitoring.
Memantau Apache Qpid Broker-J
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 penggunaan 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 ditetapkan oleh Apigee atau yang ditetapkan di 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 terkirim, dalam antrean, tarif 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 Qpid Management API
Anda dapat menggunakan Apache Qpid Broker-J REST API untuk mengotomatiskan tugas pengelolaan dan memantau broker. Untuk mengetahui detailnya, lihat dokumentasi Apache Qpid Broker REST API.
Anda juga dapat menggunakan alat baris perintah untuk memantau broker. Contoh:
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
Mengaktifkan pemantauan dengan SSL untuk Qpid
Guna memberikan keamanan tambahan untuk pemantauan dan pengelolaan, aktifkan SSL di portal Management Qpid dan Management API Qpid. Ikuti panduan di bawah untuk memberikan kunci dan sertifikat.
Qpid menyediakan opsi untuk File Keystore, yang diaktifkan di Apigee. Jenis ini menerima format keystore JKS standar yang dipahami oleh alat Java dan Java seperti keytool.
Persiapan keystore
Anda perlu menyediakan file sertifikat secara langsung untuk digunakan oleh klien Qpidd, selain menggunakan keytool.
Untuk membuat keystore, lihat Dokumentasi Keytool Java.
Setelah memverifikasi persyaratan
- Tempatkan file keystore dan sertifikat di
/opt/apigee/customer/application/apigee-qpidd
. - Pastikan file keystore hanya dapat dibaca oleh pengguna Apigee:
chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
Mengaktifkan SSL di Qpid
Lakukan langkah-langkah di bawah ini pada satu node Qpid dalam satu waktu:
Buka file /opt/apigee/customer/application/qpidd.properties
dan tambahkan baris berikut:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore conf_qpidd_qpid.keystore.password=keystore-password conf_qpidd_qpid.keystore.certificateAlias=certificate-alias conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
- Ubah pemilik file menjadi apigee:apigee:
chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
- Konfigurasi Qpidd:
apigee-service apigee-qpidd configure
- Mulai ulang Qpidd:
apigee-service apigee-qpidd restart
- Periksa status dengan wait_for_ ready:
apigee-service apigee-qpidd wait_for_ready
Kembalikan konfigurasi SSL
Hapus properti dari file /opt/apigee/customer/application/qpidd.properties
sebagai komentar:
conf_qpidd_qpid_management.https.enabled=true conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
- Konfigurasi Qpidd:
apigee-service apigee-qpidd configure
- Mulai ulang Qpidd:
apigee-service apigee-qpidd restart
- Periksa status dengan wait_for_ ready:
apigee-service apigee-qpidd wait_for_ready
Apache ZooKeeper
Periksa status ZooKeeper
- Pastikan proses ZooKeeper sedang berjalan. ZooKeeper menulis file PID ke
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - Uji port ZooKeeper untuk memastikan bahwa 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
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) dan baca nilai dari database. - Periksa status:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Menggunakan kata empat huruf ZooKeeper
ZooKeeper dapat dipantau melalui sekumpulan kecil perintah (kata empat huruf) yang dikirim ke port 2181 menggunakan netcat (nc) atau telnet.
Untuk mengetahui informasi selengkapnya tentang perintah ZooKeeper, lihat: Referensi perintah Apache ZooKeeper.
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 bukan error. Respons yang berhasil akan menampilkan "imok".
echo ruok | nc host 2181
Retur:
imok
- 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
- Jika {i>netcat (nc)<i} tidak tersedia, Anda dapat menggunakan {i>python <i}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 disajikan dengan benar. Dengan kata lain, periksa penelusuran tertentu yang menampilkan hasil yang benar.
- Gunakan
ldapsearch
(yum install openldap-clients
) untuk membuat 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
Kemudian, Anda akan diminta memasukkan sandi admin LDAP:
Enter LDAP Password:
Setelah memasukkan sandi, Anda akan melihat respons dalam formulir:
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
- Periksa apakah Management Server 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
dan meningkatkan performa sistem. Memantau, lalu menyesuaikan ukuran cache di server OpenLDAP dapat sangat memengaruhi performa server direktori. Anda dapat melihat file log (opt/apigee/var/log
) untuk mendapatkan informasi tentang cache.