เอกสารนี้อธิบายเทคนิคการตรวจสอบคอมโพเนนต์ที่รองรับโดยการติดตั้งใช้งาน 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.50.00/how-monitor#jconsole
คุณสามารถเพิ่มบรรทัด "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 (MBeans) ที่เสนอผ่าน 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 MBeans | แอตทริบิวต์ JMX |
|---|---|
|
หน่วยความจำ |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
การใช้งาน |
|
ข้อมูลอ้างอิงไฟล์การกำหนดค่า
ส่วนต่อไปนี้จะอธิบายการเปลี่ยนแปลงที่คุณอาจต้องทำกับไฟล์การกำหนดค่าคอมโพเนนต์ Edge สำหรับการกำหนดค่าที่เกี่ยวข้องกับ JMX ดูข้อมูลเพิ่มเติมได้ที่การตรวจสอบพอร์ตและไฟล์การกำหนดค่า
การกำหนดค่า JMX ที่จะเพิ่มลงในไฟล์การกำหนดค่าของคอมโพเนนต์ที่เหมาะสม
- เปิดใช้ JMX Agent ในคอมโพเนนต์ 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
- รหัสผ่าน 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 ของ Management Server คือ 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"
ตัวอย่างต่อไปนี้จะรับข้อมูลเกี่ยวกับ Message Processor ที่ 216.3.128.12 (พอร์ต 8082)
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
ตรวจสอบสถานะผู้ใช้ องค์กร และการติดตั้งใช้งาน
คุณสามารถใช้ Management API เพื่อตรวจสอบสถานะผู้ใช้ องค์กร และการติดตั้งใช้งานพร็อกซีในเซิร์ฟเวอร์การจัดการและ Message Processor ได้โดยใช้คำสั่งต่อไปนี้
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations -u sysAdminEmail:passwordcurl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password
โดย port_number คือ 8080 สำหรับเซิร์ฟเวอร์การจัดการ หรือ 8082 สำหรับ Message Processor
การเรียกนี้กำหนดให้คุณต้องตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ
เซิร์ฟเวอร์ควรแสดงสถานะ "ติดตั้งใช้งานแล้ว" สำหรับการเรียกทั้งหมด หากไม่ได้ผล ให้ทำดังนี้
- ตรวจสอบบันทึกของเซิร์ฟเวอร์เพื่อหาข้อผิดพลาด บันทึกจะอยู่ที่ตำแหน่งต่อไปนี้
- เซิร์ฟเวอร์การจัดการ:
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-serveredge-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
ระบบควรแสดงชื่อองค์กรและสภาพแวดล้อม
ยืนยันสถานะ Analytics
คุณสามารถยืนยันสถานะของเซิร์ฟเวอร์ Postgres และ Qpid Analytics ได้โดยใช้คำสั่ง curl ต่อไปนี้
curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus
ระบบควรแสดงสถานะสำเร็จสำหรับเซิร์ฟเวอร์ Analytics ทั้งหมด ดังตัวอย่างต่อไปนี้
{
"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 ที่ใช้การปลุก การพักเครื่อง การรับเวลาของวัน และตัวจับเวลาเป็นช่วงที่มีความละเอียดสูง เช่น คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้
yum install perl-Time-HiRes.x86_64
- CentOS 7: ก่อนใช้ check_postgres.pl ใน CentOS v7 ให้ติดตั้ง
perl-Data-Dumper.x86_64RPM
check_postgres.pl output
เอาต์พุตเริ่มต้นของการเรียก 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
เตรียมคีย์สโตร์และทรัสต์สโตร์
Keystore ควรมีคีย์และใบรับรอง และใช้เพื่อกำหนดค่าเซิร์ฟเวอร์ Cassandra หาก Keystore มีคู่คีย์หลายคู่ Cassandra จะใช้คู่คีย์แรกเพื่อเปิดใช้ SSL
โปรดทราบว่ารหัสผ่านสำหรับคีย์สโตร์และคีย์ควรเหมือนกัน (ค่าเริ่มต้นเมื่อคุณสร้างคีย์โดยใช้ keytool)
- Truststore ควรมีเฉพาะใบรับรองและไคลเอ็นต์ (คำสั่งที่ใช้ apigee-service หรือ nodetool) จะใช้เพื่อเชื่อมต่อผ่าน JMX
หลังจากยืนยันข้อกำหนดข้างต้นแล้ว ให้ทำดังนี้
- วางไฟล์คีย์สโตร์ใน
/opt/apigee/customer/application/apigee-cassandra/ - ตรวจสอบว่าผู้ใช้ Apigee เท่านั้นที่อ่านไฟล์ Keystore ได้โดยป้อนคำสั่งต่อไปนี้
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 โดยป้อนคำสั่งต่อไปนี้
- กำหนดค่าคำสั่ง Cassandra ของ
apigee-serviceคุณต้องตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างขณะเรียกใช้คำสั่ง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 อ่านไฟล์ Truststore ได้
เรียกใช้คำสั่ง
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 ในทั้ง 2 กรณี ผู้ใช้ที่เรียกใช้ 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
เส้นทาง Truststore ที่ระบุไว้ด้านบนควรเข้าถึงได้โดยผู้ใช้ที่เรียกใช้ nodetool
เรียกใช้
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 (MBeans) ที่เสนอผ่าน JMX
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
โดยที่ IP_address คือ IP ของเซิร์ฟเวอร์ Cassandra
สถิติ Cassandra JMX
| JMX MBeans | แอตทริบิวต์ 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 โหนดเดียวด้วย): มองหา "Up" และ "Normal" สำหรับโหนดทั้งหมด
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 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
- ตรวจสอบว่า Management Server ยังคงเชื่อมต่อกับ LDAP อยู่หรือไม่โดยใช้คำสั่งต่อไปนี้
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
ค่าที่ส่งคืน:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
นอกจากนี้ คุณยังตรวจสอบแคช OpenLDAP ได้ด้วย ซึ่งจะช่วยลดจำนวนการเข้าถึงดิสก์และปรับปรุงประสิทธิภาพของระบบ การตรวจสอบแล้วปรับขนาดแคชในเซิร์ฟเวอร์ OpenLDAP อาจส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์ไดเรกทอรีอย่างมาก คุณสามารถดูไฟล์บันทึก (opt/apigee/var/log) เพื่อดูข้อมูลเกี่ยวกับแคชได้