เอกสารนี้อธิบายเทคนิคการตรวจสอบคอมโพเนนต์ที่รองรับโดยการติดตั้งใช้งาน Apigee Edge สำหรับ Private Cloud ในสถานที่
ภาพรวม
Edge รองรับวิธีต่างๆ ในการดูรายละเอียดเกี่ยวกับบริการ รวมถึงตรวจสอบสถานะบริการ ตารางต่อไปนี้แสดงประเภทการตรวจสอบที่คุณทำได้ในบริการที่มีสิทธิ์แต่ละรายการ
Mgmt API | |||||||
ส่วนประกอบ | การใช้งานหน่วยความจํา [JMX*] | การตรวจสอบบริการ | สถานะผู้ใช้/องค์กร/ การติดตั้งใช้งาน | axstatus | การตรวจสอบฐานข้อมูล | สถานะ apigee-service |
apigee-monit ** |
เซิร์ฟเวอร์การจัดการ | |||||||
Message Processor | |||||||
เราเตอร์ | |||||||
Qpid | |||||||
Postgres | |||||||
ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | ข้อมูลเพิ่มเติม | |
* คุณต้องเปิดใช้ JMX ก่อนจึงจะใช้ได้ ตามที่อธิบายไว้ในเปิดใช้ JMX ** บริการ |
การตรวจสอบพอร์ตและไฟล์การกําหนดค่า
คอมโพเนนต์แต่ละรายการรองรับการเรียกการตรวจสอบ Java Management Extensions (JMX) และ Management API ในพอร์ตต่างๆ ตารางต่อไปนี้แสดงพอร์ต JMX และ Management API สำหรับเซิร์ฟเวอร์แต่ละประเภท และตำแหน่งไฟล์การกําหนดค่า
ส่วนประกอบ | พอร์ต JMX | พอร์ต Management API | ตำแหน่งไฟล์การกําหนดค่า |
---|---|---|---|
เซิร์ฟเวอร์การจัดการ | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
Message Processor | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
เราเตอร์ | 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 |
ใช้ JMX เพื่อตรวจสอบคอมโพเนนต์
ส่วนต่อไปนี้อธิบายวิธีใช้ JMX เพื่อตรวจสอบคอมโพเนนต์ Edge
เปิดใช้ JMX
หากต้องการเปิดใช้ JMX โดยไม่ใช้การตรวจสอบสิทธิ์หรือการรับส่งข้อมูลแบบ SSL ให้ทําตามขั้นตอนด้านล่าง หมายเหตุ: ในระบบเวอร์ชันที่ใช้งานจริง คุณควรเปิดใช้ทั้งการตรวจสอบสิทธิ์ที่เข้ารหัสและ SSL เพื่อรักษาความปลอดภัย
- แก้ไขไฟล์การกําหนดค่าที่เหมาะสม (ดู
ข้อมูลอ้างอิงเกี่ยวกับไฟล์การกําหนดค่า) สร้างไฟล์การกําหนดค่าหากยังไม่มี
conf_system_jmxremote_enable=true
- บันทึกไฟล์การกําหนดค่าและตรวจสอบว่าไฟล์เป็นของ
apigee:apigee
- รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม
apigee-service edge-management-server restart
หากต้องการปิดใช้ JMX ให้นำพร็อพเพอร์ตี้ conf_system_jmxremote_enable
ออกหรือเปลี่ยนค่าเป็น false
จากนั้นรีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม
การตรวจสอบสิทธิ์ใน JMX
Edge for Private Cloud รองรับการตรวจสอบสิทธิ์ด้วยรหัสผ่านโดยใช้รายละเอียดที่เก็บไว้ในไฟล์ คุณสามารถจัดเก็บรหัสผ่านเป็นแฮชเพื่อเพิ่มความปลอดภัยได้
- หากต้องการเปิดใช้การตรวจสอบสิทธิ์ JMX ในคอมโพเนนต์ edge-* ให้แก้ไขไฟล์การกําหนดค่าที่เหมาะสม (ดู
ข้อมูลอ้างอิงไฟล์การกําหนดค่า) สร้างไฟล์การกําหนดค่าหากยังไม่มี
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
บันทึกไฟล์การกําหนดค่าและตรวจสอบว่าไฟล์เป็นของapigee:apigee
- สร้างแฮช SHA256 ของรหัสผ่าน
echo -n '
' | openssl dgst -sha256 - สร้างไฟล์
jmxremote.password
ด้วยข้อมูลเข้าสู่ระบบผู้ใช้ JMX โดยทำดังนี้- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
$JAVA_HOME
ไปยังไดเรกทอรี/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- แก้ไขไฟล์และเพิ่มชื่อผู้ใช้และรหัสผ่าน JMX โดยใช้ไวยากรณ์ต่อไปนี้
USERNAME <HASH-PASSWORD>
- ตรวจสอบว่าไฟล์เป็นของ
apigee
และโหมดไฟล์คือ 400 โดยทำดังนี้chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
- สร้างไฟล์
jmxremote.access
ที่มีสิทธิ์ของผู้ใช้ JMX โดยทำดังนี้- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยังไดเรกทอรี
/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- แก้ไขไฟล์และเพิ่มชื่อผู้ใช้ JMX ตามด้วยสิทธิ์ (READONLY/READWRITE)
USERNAME READONLY
- ตรวจสอบว่าไฟล์เป็นของ
apigee
และโหมดไฟล์คือ 400 โดยทำดังนี้chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยังไดเรกทอรี
- รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม ดังนี้
apigee-service edge-management-server restart
หากต้องการปิดใช้การตรวจสอบสิทธิ์ JMX ให้นําพร็อพเพอร์ตี้ conf_system_jmxremote_authenticate
ออก หรือเปลี่ยนค่าเป็น false
แล้วรีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม
SSL ใน JMX
วิธีเปิดใช้ JMX ที่ใช้ SSL ในคอมโพเนนต์ edge-*
- แก้ไขไฟล์การกําหนดค่าที่เหมาะสม (ดู
ข้อมูลอ้างอิงเกี่ยวกับไฟล์การกําหนดค่า) สร้างไฟล์การกําหนดค่าหากยังไม่มี โดยทำดังนี้
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>
บันทึกไฟล์การกําหนดค่าและตรวจสอบว่าไฟล์เป็นของapigee:apigee
- เตรียมคีย์สโตร์ที่มีคีย์เซิร์ฟเวอร์และวางไว้ในเส้นทางที่ระบุในการกําหนดค่า
conf_system_javax_net_ssl_keystore
ด้านบน ตรวจสอบว่าapigee:apigee
อ่านไฟล์คีย์สโตร์ได้ - รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม ดังนี้
apigee-service edge-management-server restart
หากต้องการปิดใช้ JMX ที่ใช้ SSL ให้นําพร็อพเพอร์ตี้ conf_system_jmxremote_ssl
ออก หรือเปลี่ยนค่าเป็น false
รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม
การตรวจสอบผ่าน Jconsole
วิธีการตรวจสอบผ่าน jconsole จะยังคงเหมือนเดิมตามที่อธิบายไว้ใน https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole
เพิ่ม 1 บรรทัดว่า "จะต้องเริ่ม jconsole ด้วย truststore และรหัสผ่านของ truststore หากเปิดใช้ SSL สําหรับ JMX" แหล่งข้อมูล: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlตรวจสอบด้วย JConsole
ใช้ JConsole (เครื่องมือที่เป็นไปตามข้อกำหนด JMX) เพื่อจัดการและตรวจสอบสถานะการทำงานและสถิติการประมวลผล JConsole ช่วยให้คุณใช้สถิติ JMX ที่เซิร์ฟเวอร์แสดงและแสดงสถิติเหล่านั้นในอินเทอร์เฟซแบบกราฟิกได้ ดูข้อมูลเพิ่มเติมได้ที่การใช้ JConsole
คุณต้องเริ่ม JConsole ด้วย Truststore และรหัสผ่าน Truststore หากเปิดใช้ SSL สําหรับ JMX ดู การใช้ JConsole
JConsole ใช้ URL บริการต่อไปนี้เพื่อตรวจสอบแอตทริบิวต์ JMX (MBean) ที่เสนอผ่าน JMX
service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi
สถานที่:
- IP_address คือที่อยู่ IP ของเซิร์ฟเวอร์ที่คุณต้องการตรวจสอบ
- port_number คือหมายเลขพอร์ต JMX ของเซิร์ฟเวอร์ที่ต้องการตรวจสอบ
ตัวอย่างเช่น หากต้องการตรวจสอบเซิร์ฟเวอร์การจัดการ ให้ออกคำสั่งดังต่อไปนี้ (สมมติว่าที่อยู่ IP ของเซิร์ฟเวอร์คือ 216.3.128.12)
service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi
โปรดทราบว่าตัวอย่างนี้ระบุพอร์ต 1099 ซึ่งเป็นพอร์ต JMX ของเซิร์ฟเวอร์การจัดการ สําหรับพอร์ตอื่นๆ โปรดดูพอร์ตการตรวจสอบ JMX และ Management API
ตารางต่อไปนี้แสดงสถิติ JMX ทั่วไป
JMX MBean | แอตทริบิวต์ JMX |
---|---|
หน่วยความจำ |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
การใช้งาน |
|
ข้อมูลอ้างอิงไฟล์การกําหนดค่า
ส่วนต่อไปนี้อธิบายการเปลี่ยนแปลงที่คุณอาจต้องทำกับไฟล์การกำหนดค่าคอมโพเนนต์ Edge สำหรับการกำหนดค่าที่เกี่ยวข้องกับ JMX ดูข้อมูลเพิ่มเติมได้ที่การตรวจสอบพอร์ตและไฟล์การกําหนดค่า
การกำหนดค่า JMX ที่จะเพิ่มลงในไฟล์การกำหนดค่าของคอมโพเนนต์ที่เหมาะสม
- เปิดใช้ตัวแทน JMX ในคอมโพเนนต์ Edge เท็จโดยค่าเริ่มต้น
conf_system_jmxremote_enable=true
การกําหนดค่าสําหรับการตรวจสอบสิทธิ์ด้วยรหัสผ่าน
- เปิดใช้การตรวจสอบสิทธิ์ด้วยรหัสผ่าน เท็จโดยค่าเริ่มต้น
conf_system_jmxremote_authenticate=true
- เส้นทางเข้าถึงไฟล์ ควรเป็นของผู้ใช้ Apigee เท่านั้นและผู้ใช้ดังกล่าวควรอ่านได้
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- เส้นทางไปยังไฟล์รหัสผ่าน ควรมีผู้ใช้ Apigee เป็นเจ้าของและอ่านได้เท่านั้น
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- เปิดใช้การจัดเก็บรหัสผ่านในรูปแบบที่เข้ารหัส เท็จโดยค่าเริ่มต้น
conf_system_jmxremote_encrypted_auth=true
การกําหนดค่าสําหรับ JMX ที่ใช้ SSL
- เปิดใช้ SSL สําหรับการสื่อสาร JMX เท็จโดยค่าเริ่มต้น
conf_system_jmxremote_ssl=true
- เส้นทางไปยังคีย์สโตร์ ควรเป็นของผู้ใช้ Apigee เท่านั้นที่เป็นเจ้าของและอ่านได้
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- รหัสผ่านคีย์สโตร์:
conf_system_javax_net_ssl_keystorepassword=changeme
การกำหนดค่า JMX ที่ไม่บังคับ
ค่าที่แสดงเป็นค่าเริ่มต้นและสามารถเปลี่ยนแปลงได้
- พอร์ต JMX ค่าเริ่มต้นแสดงอยู่ในตารางด้านล่าง
conf_system_jmxremote_port=
- พอร์ต JMX RMI โดยค่าเริ่มต้น กระบวนการ Java จะเลือกพอร์ตแบบสุ่ม
conf_system_jmxremote_rmi_port=
- ชื่อโฮสต์สำหรับสแต็บระยะไกล ที่อยู่ IP เริ่มต้นของ localhost
conf_system_java_rmi_server_hostname=
- ปกป้องรีจิสทรี JMX ด้วย SSL ค่าเริ่มต้นคือ False ใช้ได้เฉพาะเมื่อเปิดใช้ SSL เท่านั้น
conf_system_jmxremote_registry_ssl=false
ตรวจสอบด้วย Management API
Edge มี API หลายรายการที่คุณสามารถใช้เพื่อตรวจสอบบริการในเซิร์ฟเวอร์ รวมถึงตรวจสอบผู้ใช้ องค์กร และการติดตั้งใช้งาน ส่วนนี้จะอธิบาย API เหล่านี้
ดำเนินการตรวจสอบบริการ
Management API มีปลายทางหลายรายการสําหรับการตรวจสอบและวินิจฉัยปัญหาเกี่ยวกับบริการ ซึ่งประกอบด้วย
ปลายทาง | คำอธิบาย |
---|---|
/servers/self/up |
ตรวจสอบว่าบริการทำงานอยู่หรือไม่ คุณไม่จำเป็นต้องตรวจสอบสิทธิ์เมื่อเรียกใช้ API นี้ หากบริการทํางานอยู่ ปลายทางนี้จะแสดงผลลัพธ์ต่อไปนี้ <ServerField> <Up>true</Up> </ServerField> หากบริการไม่ทํางาน คุณจะได้รับคําตอบที่คล้ายกับข้อความต่อไปนี้ (ขึ้นอยู่กับบริการและวิธีตรวจสอบ) curl: Failed connect to localhost:port_number; Connection refused |
/servers/self |
แสดงข้อมูลเกี่ยวกับบริการ ซึ่งรวมถึงข้อมูลต่อไปนี้
การเรียก API นี้กำหนดให้คุณตรวจสอบสิทธิ์ด้วยข้อมูลเข้าสู่ระบบของผู้ดูแลระบบ Apigee |
หากต้องการใช้ปลายทางเหล่านี้ ให้เรียกใช้ยูทิลิตี เช่น curl
ด้วยคําสั่งที่ใช้ไวยากรณ์ต่อไปนี้
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]"
สถานที่:
- host คือที่อยู่ IP ของเซิร์ฟเวอร์ที่คุณต้องการตรวจสอบ หากคุณเข้าสู่ระบบเซิร์ฟเวอร์อยู่ ให้ใช้ "localhost" หากไม่ ให้ระบุที่อยู่ IP ของเซิร์ฟเวอร์ รวมถึงชื่อผู้ใช้และรหัสผ่าน
- port_number คือพอร์ต Management API ของเซิร์ฟเวอร์ที่คุณต้องการตรวจสอบ พอร์ตนี้ใช้สำหรับคอมโพเนนต์แต่ละประเภท เช่น พอร์ต Management API ของเซิร์ฟเวอร์การจัดการคือ 8080 ดูรายการหมายเลขพอร์ต Management API ที่จะใช้ได้ที่หัวข้อพอร์ตการตรวจสอบ JMX และ Management API
หากต้องการเปลี่ยนรูปแบบของคำตอบ คุณสามารถระบุส่วนหัว Accept
เป็น "application/json" หรือ "application/xml"
ตัวอย่างต่อไปนี้จะรับสถานะของเราเตอร์ใน localhost (พอร์ต 8081)
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
ตัวอย่างต่อไปนี้แสดงการเรียกข้อมูลเกี่ยวกับโปรแกรมประมวลผลข้อความที่ 216.3.128.12 (พอร์ต 8082)
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
ตรวจสอบสถานะของผู้ใช้ องค์กร และการติดตั้งใช้งาน
คุณสามารถใช้ Management API เพื่อตรวจสอบสถานะผู้ใช้ องค์กร และการติดตั้งใช้งานของพร็อกซีในเซิร์ฟเวอร์การจัดการและโปรแกรมประมวลผลข้อความได้โดยออกคำสั่งต่อไปนี้
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
โดยที่ port_number คือ 8080 สำหรับเซิร์ฟเวอร์การจัดการหรือ 8082 สำหรับโปรแกรมประมวลผลข้อความ
การโทรนี้กำหนดให้คุณต้องตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้และรหัสผ่านการดูแลระบบ
เซิร์ฟเวอร์ควรแสดงสถานะ "ทําให้ใช้งานได้แล้ว" สําหรับการเรียกทั้งหมด หากดำเนินการข้างต้นไม่สำเร็จ ให้ทำดังนี้
- ตรวจสอบบันทึกเซิร์ฟเวอร์เพื่อหาข้อผิดพลาด บันทึกจะอยู่ที่
- เซิร์ฟเวอร์การจัดการ:
opt/apigee/var/log/edge-management-server
- Message Processor:
opt/apigee/var/log/edge-message-processor
- เซิร์ฟเวอร์การจัดการ:
- โทรหาเซิร์ฟเวอร์เพื่อตรวจสอบว่าเซิร์ฟเวอร์ทํางานอย่างถูกต้องหรือไม่
- นําเซิร์ฟเวอร์ออกจาก ELB แล้วรีสตาร์ท
/opt/apigee/apigee-service/bin/apigee-service service_name restart
โดยที่ service_name คือ
edge-management-server
edge-message-processor
ตรวจสอบสถานะด้วยคําสั่ง apigee-service
คุณสามารถแก้ปัญหาบริการ Edge โดยใช้คำสั่ง apigee-service
เมื่อเข้าสู่ระบบเซิร์ฟเวอร์ที่ให้บริการ
วิธีตรวจสอบสถานะของบริการด้วย apigee-service
- เข้าสู่ระบบเซิร์ฟเวอร์แล้วเรียกใช้คำสั่งต่อไปนี้
/opt/apigee/apigee-service/bin/apigee-service service_name status
โดยที่ service_name เป็นหนึ่งในค่าต่อไปนี้
- เซิร์ฟเวอร์การจัดการ:
edge-management-server
- Message Processor:
edge-message-processor
- Postgres:
edge-postgres-server
- Qpid:
edge-qpid-server
- เราเตอร์:
edge-router
เช่น
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
- เซิร์ฟเวอร์การจัดการ:
- หากบริการไม่ทำงาน ให้เริ่มบริการโดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-service service_name start
- หลังจากรีสตาร์ทบริการแล้ว ให้ตรวจสอบว่าบริการทํางานอยู่หรือไม่ โดยใช้
apigee-service status
คําสั่งที่คุณใช้ก่อนหน้านี้ หรือใช้ Management API ตามที่อธิบายไว้ในตรวจสอบด้วย Management APIเช่น
curl -v http://localhost:port_number/v1/servers/self/up
โดยที่ port_number คือ พอร์ต Management API สำหรับบริการ
ตัวอย่างนี้ถือว่าคุณได้เข้าสู่ระบบเซิร์ฟเวอร์แล้วและใช้ "localhost" เป็นชื่อโฮสต์ได้ หากต้องการตรวจสอบสถานะจากระยะไกลด้วย Management API คุณต้องระบุที่อยู่ IP ของเซิร์ฟเวอร์ รวมถึงใส่ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบในคําเรียก API
การตรวจสอบ Postgres
Postgres รองรับยูทิลิตีหลายรายการที่คุณใช้ตรวจสอบสถานะได้ ยูทิลิตีเหล่านี้อธิบายไว้ในส่วนต่อไปนี้
ตรวจสอบองค์กรและสภาพแวดล้อมใน Postgres
คุณสามารถตรวจสอบชื่อองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานในเซิร์ฟเวอร์ Postgres ได้โดยใช้คำสั่ง curl
ต่อไปนี้
curl -v http://postgres_IP:8084/v1/servers/self/organizations
ระบบควรแสดงชื่อองค์กรและสภาพแวดล้อม
ยืนยันสถานะข้อมูลวิเคราะห์
คุณสามารถยืนยันสถานะของเซิร์ฟเวอร์ข้อมูลวิเคราะห์ Postgres และ Qpid ได้โดยออกคำสั่ง curl
ต่อไปนี้
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
ระบบควรแสดงสถานะ "สําเร็จ" สําหรับเซิร์ฟเวอร์ข้อมูลวิเคราะห์ทั้งหมด ดังที่แสดงในตัวอย่างต่อไปนี้
{ "environments" : [ { "components" : [ { "message" : "success at Thu Feb 28 10:27:38 CET 2013", "name" : "pg", "status" : "SUCCESS", "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]" }, { "message" : "success at Thu Feb 28 10:29:03 CET 2013", "name" : "qs", "status" : "SUCCESS", "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]" } ], "message" : "", "name" : "prod" } ], "organization" : "acme", "status" : "SUCCESS" }
ฐานข้อมูล PostgreSQL
ส่วนนี้จะอธิบายเทคนิคที่คุณสามารถใช้เพื่อตรวจสอบฐานข้อมูล Postgres โดยเฉพาะ
ใช้สคริปต์ check_postgres.pl
หากต้องการตรวจสอบฐานข้อมูล PostgreSQL คุณสามารถใช้สคริปต์การตรวจสอบมาตรฐาน check_postgres.pl
ดูข้อมูลเพิ่มเติมได้ที่
http://bucardo.org/wiki/Check_postgres
ก่อนเรียกใช้สคริปต์
- คุณต้องติดตั้งสคริปต์ check_postgres.pl ในโหนด Postgres แต่ละโหนด
- ตรวจสอบว่าคุณได้ติดตั้ง
perl-Time-HiRes.x86_64
ซึ่งเป็นโมดูล Perl ที่ใช้ตัวจับเวลาการปลุก การทำงานแบบพักชั่วคราว gettimeofday และช่วงเวลาที่มีความละเอียดสูง เช่น คุณสามารถติดตั้งโดยใช้คําสั่งต่อไปนี้
yum install perl-Time-HiRes.x86_64
- CentOS 7: ก่อนใช้ check_postgres.pl ใน CentOS v7 ให้ติดตั้ง
perl-Data-Dumper.x86_64
RPM
เอาต์พุตของ check_postgres.pl
เอาต์พุตเริ่มต้นของการเรียก API โดยใช้ check_postgres.pl
เข้ากันได้กับ Nagios หลังจากติดตั้งสคริปต์แล้ว ให้ทำการตรวจสอบต่อไปนี้
- ตรวจสอบขนาดฐานข้อมูล ดังนี้
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'
- ตรวจสอบจํานวนการเชื่อมต่อขาเข้ากับฐานข้อมูลและเปรียบเทียบกับการเชื่อมต่อสูงสุดที่อนุญาต
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- ตรวจสอบว่าฐานข้อมูลทํางานอยู่และพร้อมใช้งานหรือไม่ โดยทําดังนี้
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- ตรวจสอบพื้นที่ในดิสก์ โดยทำดังนี้
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- ตรวจสอบจํานวนองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานในโหนด 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
เรียกใช้การตรวจสอบฐานข้อมูล
คุณสามารถตรวจสอบว่าระบบได้สร้างตารางที่เหมาะสมในฐานข้อมูล PostgreSQL แล้ว เข้าสู่ระบบฐานข้อมูล PostgreSQL โดยใช้คําสั่งต่อไปนี้
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
จากนั้นเรียกใช้
\d analytics."org.env.fact"
ตรวจสอบสถานะประสิทธิภาพของกระบวนการ postgres
คุณสามารถตรวจสอบ API ในเครื่อง Postgres ได้โดยเรียกใช้curl
คำสั่งต่อไปนี้
curl -v http://postgres_IP:8084/v1/servers/self/health
คำสั่งนี้จะแสดงสถานะ ACTIVE
เมื่อกระบวนการ postgres ทำงานอยู่ หากกระบวนการ Postgres ไม่ทำงานอยู่ ระบบจะแสดงสถานะ INACTIVE
ทรัพยากร Postgres
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบบริการ 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
ระบบจะเปิดใช้ JMX โดยค่าเริ่มต้นสําหรับ Cassandra และการเข้าถึง JMX จากระยะไกลไปยัง Cassandra จะไม่ต้องใช้รหัสผ่าน
เปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra
คุณเปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra ได้ หลังจากดำเนินการดังกล่าวแล้ว คุณจะต้องส่งชื่อผู้ใช้และรหัสผ่านไปยังการเรียกใช้ยูทิลิตี nodetool ทั้งหมด
วิธีเปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra
- สร้างและแก้ไขไฟล์
cassandra.properties
โดยทำดังนี้- แก้ไขไฟล์
/opt/apigee/customer/application/cassandra.properties
หากยังไม่มีไฟล์ดังกล่าว ให้สร้างไฟล์ - เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
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
- บันทึกไฟล์
cassandra.properties
- เปลี่ยนเจ้าของไฟล์เป็น
apigee:apigee
ดังที่แสดงในตัวอย่างต่อไปนี้chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ไฟล์พร็อพเพอร์ตี้เพื่อตั้งค่าโทเค็นได้ที่วิธีกําหนดค่า Edge
- แก้ไขไฟล์
- สร้างและแก้ไข
jmx_auth.sh
- สร้างไฟล์ในตำแหน่งต่อไปนี้หากยังไม่มี
/opt/apigee/customer/application/jmx_auth.sh
- เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- บันทึกไฟล์
jmx_auth.sh
- แหล่งที่มาของไฟล์
source /opt/apigee/customer/application/jmx_auth.sh
- สร้างไฟล์ในตำแหน่งต่อไปนี้หากยังไม่มี
- คัดลอกและแก้ไขไฟล์
jmxremote.password
โดยทำดังนี้- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
$JAVA_HOME
ไปยัง/opt/apigee/customer/application/apigee-cassandra/
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
- แก้ไขไฟล์
jmxremote.password
และเพิ่มชื่อผู้ใช้และรหัสผ่าน JMX ใช้ไวยากรณ์ต่อไปนี้JMX_USERNAME JMX_PASSWORD
โดยที่ JMX_USERNAME และ JMX_PASSWORD คือชื่อผู้ใช้และรหัสผ่าน JMX ที่คุณตั้งไว้ก่อนหน้านี้
- ตรวจสอบว่าไฟล์เป็นของ "apigee" และโหมดไฟล์คือ 400
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
- คัดลอกและแก้ไขไฟล์
jmxremote.access
โดยทำดังนี้- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
$JAVA_HOME
ไปยัง/opt/apigee/customer/application/apigee-cassandra/
cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
- แก้ไขไฟล์
jmxremote.access
และเพิ่มบทบาทต่อไปนี้JMX_USERNAME readwrite
- ตรวจสอบว่าไฟล์เป็นของ "apigee" และโหมดไฟล์คือ 400
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี
- เรียกใช้
configure
ใน Cassandra/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- รีสตาร์ท Cassandra
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- ทำขั้นตอนนี้ซ้ำในโหนด Cassandra อื่นๆ ทั้งหมด
เปิดใช้การเข้ารหัสรหัสผ่าน JMX
หากต้องการเปิดใช้การเข้ารหัสรหัสผ่าน JMX ให้ทำตามขั้นตอนต่อไปนี้
- เปิดไฟล์
source/conf/casssandra-env.sh
- สร้างและแก้ไขไฟล์
cassandra.properties
โดยทำดังนี้- แก้ไขไฟล์
/opt/apigee/customer/application/cassandra.properties
หากยังไม่มีไฟล์ดังกล่าว ให้สร้างไฟล์ - เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- บันทึกไฟล์ cassandra.properties
- เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee ดังที่แสดงในตัวอย่างต่อไปนี้
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- แก้ไขไฟล์
- ในบรรทัดคำสั่ง ให้สร้างแฮช SHA1 ของรหัสผ่านที่ต้องการโดยป้อน
echo -n 'Secret' | openssl dgst -sha1
- ตั้งรหัสผ่านสำหรับชื่อผู้ใช้ใน
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(สร้างในส่วนก่อนหน้า) - เรียกใช้การกําหนดค่าใน Cassandra โดยทําดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- รีสตาร์ท Cassandra
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- ทำขั้นตอนนี้ซ้ำในโหนด Cassandra อื่นๆ ทั้งหมด
เปิดใช้ JMX ด้วย SSL สําหรับ Cassandra
การเปิดใช้ JMX ด้วย SSL จะเพิ่มความปลอดภัยและการเข้ารหัสสําหรับการสื่อสารที่ใช้ JMX กับ Cassandra หากต้องการเปิดใช้ JMX ด้วย SSL คุณต้องระบุคีย์และใบรับรองให้กับ Cassandra เพื่อรับการเชื่อมต่อ JMX ที่ใช้ SSL นอกจากนี้ คุณยังต้องกำหนดค่า nodetool (และเครื่องมืออื่นๆ ที่สื่อสารกับ Cassandra ผ่าน JMX) สำหรับ SSL ด้วย
JMX ที่เปิดใช้ SSL รองรับทั้งรหัสผ่าน JMX แบบข้อความธรรมดาและแบบเข้ารหัส
หากต้องการเปิดใช้ JMX ด้วย SSL สําหรับ Cassandra ให้ทําตามขั้นตอนต่อไปนี้
- เปิดใช้ JMX เปิดใช้การเข้ารหัสรหัสผ่านหากจำเป็น
- เปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra
ตามที่อธิบายไว้ข้างต้น ตรวจสอบว่า nodetool ทํางานด้วยชื่อผู้ใช้และรหัสผ่านที่กําหนดค่าไว้
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
เตรียมคีย์สโตร์และทรัสต์สโตร์
คีย์สโตร์ควรมีคีย์และใบรับรอง รวมถึงใช้เพื่อกำหนดค่าเซิร์ฟเวอร์ Cassandra หากคีย์สโตร์มีคู่คีย์หลายคู่ Cassandra จะใช้คู่คีย์แรกเพื่อเปิดใช้ SSL
โปรดทราบว่ารหัสผ่านสำหรับคีย์สโตร์และคีย์ควรเหมือนกัน (ค่าเริ่มต้นเมื่อคุณสร้างคีย์โดยใช้ Keytool)
- Truststore ควรมีใบรับรองเท่านั้น และไคลเอ็นต์ (คำสั่งหรือ nodetool ที่อิงตาม apigee-service) จะใช้เพื่อเชื่อมต่อผ่าน JMX
หลังจากยืนยันข้อกําหนดข้างต้นแล้ว ให้ทําดังนี้
- วางไฟล์คีย์สโตร์ใน
/opt/apigee/customer/application/apigee-cassandra/
- ตรวจสอบว่าผู้ใช้ Apigee เท่านั้นที่อ่านไฟล์คีย์สโตร์ได้ โดยป้อน
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- กำหนดค่า Cassandra สำหรับ JMX ด้วย SSL โดยทำตามขั้นตอนต่อไปนี้
- หยุดโหนด Cassandra โดยป้อน
apigee-service apigee-cassandra stop
- เปิดใช้ SSL ใน Cassandra โดยเปิดไฟล์
/opt/apigee/customer/application/cassandra.properties
แล้วเพิ่มบรรทัดต่อไปนี้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
- เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee ดังตัวอย่างต่อไปนี้
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- เรียกใช้การกําหนดค่าใน Cassandra โดยทําดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- รีสตาร์ท Cassandra
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- ทำขั้นตอนนี้ซ้ำในโหนด Cassandra อื่นๆ ทั้งหมด
- เริ่มโหนด Cassandra โดยป้อน
apigee-service apigee-cassandra start
- หยุดโหนด Cassandra โดยป้อน
- กำหนดค่าคำสั่ง
apigee-service
Cassandra คุณต้องตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างขณะเรียกใช้apigee-service
คําสั่ง ซึ่งรวมถึงคําสั่งต่อไปนี้apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
การกำหนดค่า
apigee-service
สำหรับการรับรอง JMX และ SSL ทำได้หลายวิธี เลือกตัวเลือกตามความสามารถในการใช้งานและแนวทางปฏิบัติด้านความปลอดภัย- ตัวเลือกที่ 1 (อาร์กิวเมนต์ SSL ที่เก็บไว้ในไฟล์)
- ตัวเลือกที่ 2 (อาร์กิวเมนต์ SSL ที่เก็บไว้ในตัวแปรสภาพแวดล้อม)
- ตัวเลือกที่ 3 (อาร์กิวเมนต์ SSL ที่ส่งไปยัง
apigee-service
โดยตรง)
ตัวเลือกที่ 1 (อาร์กิวเมนต์ SSL ที่เก็บไว้ในไฟล์)
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
export CASS_JMX_USERNAME=ADMIN # Provide encrypted password here if you have setup JMX password encryption export CASS_JMX_PASSWORD=PASSWORD export CASS_JMX_SSL=Y
สร้างไฟล์ในไดเรกทอรีหน้าแรกของผู้ใช้ Apigee (
/opt/apigee
)$HOME/.cassandra/nodetool-ssl.properties
แก้ไขไฟล์และเพิ่มบรรทัดต่อไปนี้
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
ตรวจสอบว่าผู้ใช้ Apigee อ่านไฟล์ที่เก็บข้อมูลได้
เรียกใช้คำสั่ง
apigee-service
ต่อไปนี้ หากทํางานโดยไม่มีข้อผิดพลาด แสดงว่าการกำหนดค่าถูกต้องapigee-service apigee-cassandra ring
ตัวเลือกที่ 2 (อาร์กิวเมนต์ SSL ที่เก็บไว้ในตัวแปรสภาพแวดล้อม)
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
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>
เรียกใช้คำสั่ง
apigee-service
ต่อไปนี้ หากทํางานโดยไม่มีข้อผิดพลาด แสดงว่าการกำหนดค่าถูกต้องapigee-service apigee-cassandra ring
ตัวเลือกที่ 3 (อาร์กิวเมนต์ SSL ที่ส่งไปยัง
apigee-service
โดยตรง)เรียกใช้คำสั่ง
apigee-service
ใดก็ได้ เช่นคำสั่งด้านล่าง คุณไม่จําเป็นต้องกําหนดค่าตัวแปรสภาพแวดล้อมใดๆ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
ตั้งค่า nodetool Nodetool กำหนดให้ต้องส่งพารามิเตอร์ JMX ไปให้ คุณกำหนดค่า nodetool ให้ทำงานกับ JMX ที่เปิดใช้ SSL ได้ 2 วิธีตามที่อธิบายไว้ในตัวเลือกการกำหนดค่าด้านล่าง
ตัวเลือกเหล่านี้แตกต่างกันไปตามวิธีที่ส่งการกำหนดค่าที่เกี่ยวข้องกับ SSL ไปยัง nodetool ไม่ว่าในกรณีใด ผู้ใช้ที่เรียกใช้ nodetool ควรมีสิทธิ์อ่านในไฟล์ truststore เลือกตัวเลือกที่เหมาะสมตามความสามารถในการใช้งานและแนวทางปฏิบัติด้านความปลอดภัย
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ nodetool ได้ที่ เอกสารประกอบของ DataStax
ตัวเลือกการกําหนดค่า 1
สร้างไฟล์ในไดเรกทอรีหน้าแรกของผู้ใช้ที่เรียกใช้ nodetool
$HOME/.cassandra/nodetool-ssl.properties
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
ผู้ใช้ทุกคนที่เรียกใช้ nodetool ควรเข้าถึงเส้นทางของ Truststore ที่ระบุไว้ข้างต้นได้
เรียกใช้
nodetool
ด้วยตัวเลือก--ssl
/opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
ตัวเลือกการกําหนดค่า 2
เรียกใช้
nodetool
เป็นคำสั่งเดียวพร้อมพารามิเตอร์เพิ่มเติมที่ระบุไว้ด้านล่าง/opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
เปลี่ยนกลับการกำหนดค่า SSL
หากต้องการเปลี่ยนการกำหนดค่า SSL กลับเป็นค่าที่อธิบายไว้ในกระบวนการข้างต้น ให้ทำตามขั้นตอนต่อไปนี้
- หยุด
apigee-cassandra
โดยป้อนapigee-service apigee-cassandra stop
- นำบรรทัด
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
ออกจากไฟล์/opt/apigee/customer/application/cassandra.properties
- ใส่เครื่องหมายกำกับบรรทัดต่อไปนี้ใน
/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”
- เริ่ม
apigee-cassandra
โดยป้อน - นําตัวแปรสภาพแวดล้อม
CASS_JMX_SSL
ออกหากมีการตั้งค่าไว้unset CASS_JMX_SSL
- ตรวจสอบว่าคำสั่งที่ใช้
apigee-service
เช่นring
,stop
,backup
และอื่นๆ ทำงานได้ - หยุดใช้สวิตช์
--ssl
กับ nodetool
apigee-service apigee-cassandra start
ปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra
หากต้องการปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra
- แก้ไข
/opt/apigee/customer/application/cassandra.properties
- นำบรรทัดต่อไปนี้ในไฟล์ออก
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- เรียกใช้การกําหนดค่าใน Cassandra โดยทําดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- รีสตาร์ท Cassandra
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- ทำขั้นตอนนี้ซ้ำในโหนด Cassandra อื่นๆ ทั้งหมด
ใช้ JConsole: ตรวจสอบสถิติงาน
ใช้ JConsole และ URL บริการต่อไปนี้เพื่อตรวจสอบแอตทริบิวต์ JMX (MBean) ที่ให้บริการผ่าน JMX
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
โดยที่ IP_address คือ IP ของเซิร์ฟเวอร์ Cassandra
สถิติ JMX ของ Cassandra
JMX MBean | แอตทริบิวต์ JMX |
---|---|
ColumnFamilies/apprepo/environments ColumnFamilies/apprepo/organizations ColumnFamilies/apprepo/apiproxy_revisions ColumnFamilies/apprepo/apiproxies ColumnFamilies/audit/audits ColumnFamilies/audit/audits_ref |
PendingTasks |
MemtableColumnsCount |
|
MemtableDataSize |
|
ReadCount |
|
RecentReadLatencyMicros |
|
TotalReadLatencyMicros |
|
WriteCount |
|
RecentWriteLatencyMicros |
|
TotalWriteLatencyMicros |
|
TotalDiskSpaceUsed |
|
LiveDiskSpaceUsed |
|
LiveSSTableCount |
|
BloomFilterFalsePositives |
|
RecentBloomFilterFalseRatio |
|
BloomFilterFalseRatio |
ใช้ nodetool เพื่อจัดการโหนดคลัสเตอร์
ยูทิลิตี nodetool เป็นอินเทอร์เฟซบรรทัดคำสั่งสำหรับ Cassandra ที่จัดการโหนดคลัสเตอร์ ยูทิลิตีดังกล่าวมีอยู่ที่ /opt/apigee/apigee-cassandra/bin
การเรียกใช้ต่อไปนี้ทำได้บนโหนดคลัสเตอร์ Cassandra ทั้งหมด
- ข้อมูลวงแหวนทั่วไป (ใช้ได้กับโหนด Cassandra โหนดเดียวเช่นกัน): มองหาสถานะ "ทำงาน" และ "ปกติ" สำหรับโหนดทั้งหมด
nodetool [-u username -pw password] -h localhost ring
คุณจะต้องส่งชื่อผู้ใช้และรหัสผ่านก็ต่อเมื่อเปิดใช้การตรวจสอบสิทธิ์ JMX สําหรับ Cassandra เท่านั้น
เอาต์พุตของคําสั่งข้างต้นจะมีลักษณะดังที่แสดงด้านล่าง
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
- ข้อมูลทั่วไปเกี่ยวกับโหนด (การเรียกต่อโหนด)
nodetool [-u username -pw password] -h localhost info
เอาต์พุตของคําสั่งข้างต้นมีลักษณะดังต่อไปนี้
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
- สถานะของเซิร์ฟเวอร์ Thrift (ให้บริการ API ของไคลเอ็นต์)
nodetool [-u username -pw password] -h localhost statusthrift
เอาต์พุตของคําสั่งข้างต้นมีลักษณะดังต่อไปนี้
running
- สถานะการดําเนินการสตรีมข้อมูล: ดูการเข้าชมของโหนด Cassandra
nodetool [-u username -pw password] -h localhost netstats
เอาต์พุตของคําสั่งข้างต้นมีลักษณะดังต่อไปนี้
Mode: NORMAL Not sending any streams. Read Repair Statistics: Attempted: 151612 Mismatch (Blocking): 0 Mismatch (Background): 0 Pool Name Active Pending Completed Dropped Commands n/a 0 0 0 Responses n/a 0 0 n/a
ดูข้อมูลเพิ่มเติมเกี่ยวกับ nodetool ได้ที่เกี่ยวกับยูทิลิตี nodetool
ทรัพยากร Cassandra
โปรดดู URL ต่อไปนี้ http://www.datastax.com/docs/1.0/operations/monitoring
การตรวจสอบ Apache Qpid Broker-J
คุณสามารถตรวจสอบ Qpid Broker-J จากคอนโซลการจัดการ Qpid ส่วนนี้จะอธิบายวิธีเข้าถึงคอนโซลและใช้เพื่อดำเนินการฟังก์ชันการตรวจสอบพื้นฐาน ดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้คอนโซลการจัดการได้ที่ คอนโซลการจัดการบนเว็บในเอกสารประกอบของ Apache Qpid
เข้าถึงคอนโซลการจัดการ
พอร์ตคอนโซลการจัดการเริ่มต้นคือ 8090 หากต้องการเข้าถึงคอนโซลในพอร์ตเริ่มต้นนี้ ให้เปิดเว็บเบราว์เซอร์ไปที่
http://QPID_NODE_IP:8090
หากต้องการเข้าสู่ระบบคอนโซล ให้ใช้ข้อมูลเข้าสู่ระบบเริ่มต้นที่ Apigee ตั้งค่าไว้หรือข้อมูลเข้าสู่ระบบที่ตั้งค่าไว้ในไฟล์การกําหนดค่า Edge โปรดดูรายละเอียดที่หัวข้อข้อมูลอ้างอิงไฟล์การกําหนดค่า Edge
ตรวจสอบคิวและข้อความ
ในแผงการนำทางด้านซ้าย ให้ไปที่ Java-Broker > virtualhosts > queues เลือกคิวเพื่อดูรายละเอียดในส่วนหลักของ UI ในมุมมองรายละเอียด คุณจะเห็นแอตทริบิวต์และสถิติของคิว รวมถึงข้อมูลเกี่ยวกับข้อความที่ส่ง ข้อความที่อยู่ในคิว อัตราข้อความ และอื่นๆ
ดูและดาวน์โหลดไฟล์บันทึก
ในแผงการนำทางด้านซ้าย ให้ไปที่ Java-Broker > brokerloggers > logfile ในมุมมองรายละเอียด UI หลัก คุณสามารถดูรายละเอียดไฟล์บันทึกและดาวน์โหลดไฟล์บันทึกได้
การใช้ Qpid Management API
คุณสามารถใช้ Apache Qpid Broker-J REST API เพื่อทำให้งานการจัดการเป็นไปโดยอัตโนมัติและตรวจสอบโบรกเกอร์ โปรดดูรายละเอียดใน เอกสารประกอบ Apache Qpid Broker REST API
นอกจากนี้ คุณยังใช้เครื่องมือบรรทัดคำสั่งเพื่อตรวจสอบโบรกเกอร์ได้ด้วย เช่น
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
Apache ZooKeeper
ตรวจสอบสถานะ ZooKeeper
- ตรวจสอบว่ากระบวนการ ZooKeeper ทำงานอยู่ ZooKeeper จะเขียนไฟล์ PID ไปยัง
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
- ทดสอบพอร์ต ZooKeeper เพื่อให้แน่ใจว่าคุณสร้างการเชื่อมต่อ TCP กับพอร์ต 2181 และ 3888 ในเซิร์ฟเวอร์ ZooKeeper ทุกเครื่องได้
- ตรวจสอบว่าคุณอ่านค่าจากฐานข้อมูล ZooKeeper ได้ เชื่อมต่อโดยใช้ไลบรารีไคลเอ็นต์ ZooKeeper (หรือ
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) และอ่านค่าจากฐานข้อมูล - ตรวจสอบสถานะโดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
ใช้คํา 4 ตัวอักษรของ ZooKeeper
คุณตรวจสอบ ZooKeeper ได้ผ่านชุดคำสั่งขนาดเล็ก (คำ 4 ตัวอักษร) ที่ส่งไปยังพอร์ต 2181 โดยใช้ netcat (nc) หรือ telnet
ดูข้อมูลเพิ่มเติมเกี่ยวกับคําสั่ง ZooKeeper ได้ที่ข้อมูลอ้างอิงคําสั่ง Apache ZooKeeper
เช่น
srvr
: แสดงรายละเอียดทั้งหมดของเซิร์ฟเวอร์stat
: แสดงรายละเอียดสั้นๆ ของเซิร์ฟเวอร์และไคลเอ็นต์ที่เชื่อมต่อ
คุณสามารถส่งคำสั่งต่อไปนี้ไปยังพอร์ต ZooKeeper
- เรียกใช้คําสั่ง 4 อักขระ ruok เพื่อทดสอบว่าเซิร์ฟเวอร์ทํางานอยู่ในสถานะที่ไม่มีข้อผิดพลาดหรือไม่ การตอบกลับที่สำเร็จจะแสดงผลเป็น "imok"
echo ruok | nc host 2181
ค่าที่ส่งคืน:
imok
- เรียกใช้คําสั่ง 4 อักขระ
stat
เพื่อแสดงสถิติประสิทธิภาพเซิร์ฟเวอร์และสถิติไคลเอ็นต์ที่เชื่อมต่ออยู่ ดังนี้echo stat | nc host 2181
ค่าที่ส่งคืน:
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
- หากไม่มี netcat (nc) คุณสามารถใช้ python แทนได้ สร้างไฟล์ชื่อ
zookeeper.py
ที่มีข้อมูลต่อไปนี้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)
จากนั้นเรียกใช้บรรทัด Python ต่อไปนี้
python zookeeper.py 192.168.124.201 ruok
python zookeeper.py 192.168.124.201 stat
การทดสอบระดับ LDAP
คุณสามารถตรวจสอบ OpenLDAP เพื่อดูว่าคำขอที่เฉพาะเจาะจงแสดงอย่างถูกต้องหรือไม่ กล่าวคือ ให้ตรวจสอบการค้นหาที่เจาะจงซึ่งแสดงผลลัพธ์ที่ถูกต้อง
- ใช้
ldapsearch
(yum install openldap-clients
) เพื่อค้นหารายการของผู้ดูแลระบบ รายการนี้ใช้เพื่อตรวจสอบสิทธิ์การเรียก 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
จากนั้นระบบจะแจ้งให้ป้อนรหัสผ่านผู้ดูแลระบบ LDAP
Enter LDAP Password:
หลังจากป้อนรหัสผ่านแล้ว คุณจะเห็นการตอบกลับในรูปแบบต่อไปนี้
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
- ตรวจสอบว่าเซิร์ฟเวอร์การจัดการยังเชื่อมต่อกับ LDAP อยู่หรือไม่ด้วยคำสั่งต่อไปนี้
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
ค่าที่ส่งคืน:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
นอกจากนี้ คุณยังตรวจสอบแคช OpenLDAP ได้ด้วย ซึ่งจะช่วยลดความถี่ในการเข้าถึงดิสก์ และปรับปรุงประสิทธิภาพของระบบ การตรวจสอบและการปรับขนาดแคชในเซิร์ฟเวอร์ OpenLDAP อาจส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์ไดเรกทอรีอย่างมาก คุณสามารถดูไฟล์บันทึก (opt/apigee/var/log
) เพื่อดูข้อมูลเกี่ยวกับแคช