วิธีตรวจสอบ

เอกสารนี้อธิบายเทคนิคการตรวจสอบของคอมโพเนนต์ที่รองรับโดยการติดตั้งใช้งาน Apigee Edge ภายในองค์กรสำหรับ Private Cloud

ภาพรวม

Edge รองรับวิธีต่างๆ ในการรับรายละเอียดเกี่ยวกับบริการ รวมถึงการตรวจสอบสถานะ ตารางต่อไปนี้แสดงประเภทการตรวจสอบที่คุณทำได้กับบริการที่มีสิทธิ์แต่ละรายการ

Mgmt API
ส่วนประกอบ การใช้งานหน่วยความจำ [JMX*] การตรวจสอบบริการ สถานะผู้ใช้/องค์กร/ การทำให้ใช้งานได้ สถานะaxstatus การตรวจสอบฐานข้อมูล สถานะ apigee-service apigee-monit**
เซิร์ฟเวอร์การจัดการ
Message Processor
เราเตอร์
Qpid
Postgres
ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม ข้อมูลเพิ่มเติม

* ก่อนจะใช้ JMX ได้ คุณต้องเปิดใช้ JMX ตามที่อธิบายไว้ในเปิดใช้ JMX

** บริการ apigee-monit จะตรวจสอบว่าคอมโพเนนต์ทำงานหรือไม่และจะพยายามรีสตาร์ทหากยังไม่กลับมาทำงาน ดูข้อมูลเพิ่มเติมได้ที่การเยียวยาตนเองด้วย apigee-monit

การตรวจสอบพอร์ตและไฟล์การกำหนดค่า

คอมโพเนนต์แต่ละรายการรองรับ Java Management Extensions (JMX) และ Management API ในการตรวจสอบการเรียกใช้ใน พอร์ตที่แตกต่างกัน ตารางต่อไปนี้แสดงพอร์ต JMX และ Management API สำหรับเซิร์ฟเวอร์แต่ละประเภท และตำแหน่งไฟล์การกำหนดค่า

ส่วนประกอบ พอร์ต JMX พอร์ตการจัดการ 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 เพื่อความปลอดภัย

  1. แก้ไขไฟล์การกำหนดค่าที่เหมาะสม (ดู ข้อมูลอ้างอิงไฟล์การกำหนดค่า) สร้างไฟล์การกำหนดค่าหากยังไม่มี
    conf_system_jmxremote_enable=true
  2. บันทึกไฟล์การกำหนดค่าและตรวจสอบว่า apigee:apigee เป็นเจ้าของไฟล์ดังกล่าว
  3. รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม
    apigee-service edge-management-server restart

หากต้องการปิดใช้ JMX ให้นำพร็อพเพอร์ตี้ conf_system_jmxremote_enable ออกหรือเปลี่ยนค่าเป็น false จากนั้นรีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม

การตรวจสอบสิทธิ์ใน JMX

Edge for Private Cloud รองรับการตรวจสอบสิทธิ์ด้วยรหัสผ่านโดยใช้รายละเอียดที่จัดเก็บไว้ในไฟล์ คุณสามารถจัดเก็บรหัสผ่านเป็นแฮชเพื่อเพิ่มความปลอดภัย

  1. หากต้องการเปิดใช้การตรวจสอบสิทธิ์ 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 เป็นเจ้าของไฟล์ดังกล่าว
  2. สร้างแฮช SHA256 ของรหัสผ่านดังนี้
    echo -n '' | openssl dgst -sha256
  3. สร้างไฟล์ jmxremote.password ด้วยข้อมูลเข้าสู่ระบบของผู้ใช้ JMX ดังนี้
    1. คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง ไดเรกทอรี /opt/apigee/customer/application/<component>/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. แก้ไขไฟล์แล้วเพิ่มชื่อผู้ใช้และรหัสผ่าน JMX โดยใช้ไวยากรณ์ต่อไปนี้
      USERNAME <HASH-PASSWORD>
    3. ตรวจสอบว่าไฟล์เป็นของ apigee และโหมดไฟล์เป็น 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. สร้างไฟล์ jmxremote.access ที่มีสิทธิ์ของผู้ใช้ JMX ดังนี้
    1. คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง ไดเรกทอรี /opt/apigee/customer/application/<component>/
      
      cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
    2. แก้ไขไฟล์และเพิ่มชื่อผู้ใช้ JMX แล้วตามด้วยสิทธิ์ (READONLY/READWRITE)
      USERNAME READONLY
    3. ตรวจสอบว่าไฟล์เป็นของ apigee และโหมดไฟล์เป็น 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. รีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสมดังนี้
    apigee-service edge-management-server restart

หากต้องการปิดใช้การตรวจสอบสิทธิ์ JMX ให้นำพร็อพเพอร์ตี้ conf_system_jmxremote_authenticate ออกหรือเปลี่ยนค่าเป็น false และรีสตาร์ทคอมโพเนนต์ Edge ที่เหมาะสม

SSL ใน JMX

วิธีเปิดใช้ JMX แบบ SSL ในคอมโพเนนต์ edge-*

  1. แก้ไขไฟล์การกำหนดค่าที่เหมาะสม (ดู ข้อมูลอ้างอิงไฟล์การกำหนดค่า) สร้างไฟล์การกำหนดค่าหากยังไม่มี:
    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 เป็นเจ้าของไฟล์ดังกล่าว
  2. เตรียมคีย์สโตร์ที่มีคีย์เซิร์ฟเวอร์แล้ววางไว้ที่เส้นทางที่ระบุไว้ในการกำหนดค่า conf_system_javax_net_ssl_keystore ด้านบน ตรวจสอบว่า apigee:apigee อ่านไฟล์คีย์สโตร์ได้
  3. รีสตาร์ทคอมโพเนนต์ 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 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 เท็จเริ่มต้น ใช้ได้ต่อเมื่อเปิดใช้งาน 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

แสดงข้อมูลเกี่ยวกับบริการ ได้แก่

  • พร็อพเพอร์ตี้ของการกำหนดค่า
  • เวลาเริ่มต้นและเวลาสิ้นสุด
  • ข้อมูลบิลด์, RPM และ UUID
  • ชื่อโฮสต์ภายในและภายนอก และที่อยู่ IP
  • ภูมิภาคและพ็อด
  • พร็อพเพอร์ตี้ <isUp> ซึ่งระบุว่าบริการทำงานอยู่หรือไม่

การเรียก 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"

ตัวอย่างต่อไปนี้ได้รับข้อมูลเกี่ยวกับ 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 เพื่อเฝ้าติดตามผู้ใช้ องค์กร และสถานะการทำให้ใช้งานได้ของพร็อกซีในเซิร์ฟเวอร์การจัดการและผู้ประมวลผลข้อมูลข้อความได้ด้วยการออกคำสั่งต่อไปนี้

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl 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 สำหรับตัวประมวลผลข้อความ

การโทรนี้กำหนดให้คุณต้องตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ

เซิร์ฟเวอร์ควรแสดงสถานะ "ทำให้ใช้งานได้" สำหรับการเรียกทั้งหมด หากล้มเหลว ให้ดำเนินการดังนี้

  1. ตรวจสอบบันทึกของเซิร์ฟเวอร์เพื่อดูข้อผิดพลาด โดยบันทึกจะอยู่ที่
    • เซิร์ฟเวอร์การจัดการ: opt/apigee/var/log/edge-management-server
    • ตัวประมวลผลข้อความ: opt/apigee/var/log/edge-message-processor
  2. เรียกเซิร์ฟเวอร์เพื่อตรวจสอบว่าเซิร์ฟเวอร์ทำงานอย่างถูกต้อง
  3. นำเซิร์ฟเวอร์ออกจาก 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

  1. ลงชื่อเข้าสู่ระบบเซิร์ฟเวอร์แล้วเรียกใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    โดย service_name เป็นหนึ่งในค่าต่อไปนี้

    • เซิร์ฟเวอร์การจัดการ: edge-management-server
    • ตัวประมวลผลข้อความ: edge-message-processor
    • โพสต์เกรส: edge-postgres-server
    • Qpid: edge-qpid-server
    • เราเตอร์: edge-router

    เช่น

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. หากบริการไม่ได้ทำงานอยู่ ให้เริ่มต้นบริการดังนี้
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. หลังจากรีสตาร์ทบริการแล้ว ให้ตรวจสอบว่ายังใช้งานได้โดยใช้คำสั่ง apigee-service status ที่คุณใช้ก่อนหน้านี้ หรือโดยการใช้ Management API ที่อธิบายไว้ในตรวจสอบด้วย Management API

    เช่น

    curl -v http://localhost:port_number/v1/servers/self/up

    โดย port_number คือพอร์ตการจัดการ API สำหรับบริการ

    ตัวอย่างนี้สมมติว่าคุณลงชื่อเข้าสู่ระบบเซิร์ฟเวอร์แล้วและจะใช้ "localhost" เป็นชื่อโฮสต์ได้ หากต้องการตรวจสอบสถานะจากระยะไกลด้วย Management API คุณต้องระบุที่อยู่ IP ของเซิร์ฟเวอร์และใส่ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบในการเรียก API ของคุณ

การตรวจสอบจาก Postgres

Postgres รองรับยูทิลิตีหลายรายการที่คุณใช้ตรวจสอบสถานะได้ ยูทิลิตีเหล่านี้มีอธิบายไว้ในส่วนถัดไป

ตรวจสอบองค์กรและสภาพแวดล้อมใน Postgres

คุณสามารถตรวจสอบชื่อองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานบนเซิร์ฟเวอร์ Postgres ได้ด้วยการออกคำสั่ง curl ต่อไปนี้

curl -v http://postgres_IP:8084/v1/servers/self/organizations

ระบบควรแสดงชื่อองค์กรและสภาพแวดล้อม

ยืนยันสถานะ Analytics

คุณยืนยันสถานะของเซิร์ฟเวอร์การวิเคราะห์ 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

ก่อนเรียกใช้สคริปต์

  1. คุณต้องติดตั้งสคริปต์ check_postgres.pl ในโหนด Postgres แต่ละรายการ
  2. ตรวจสอบว่าคุณได้ติดตั้ง perl-Time-HiRes.x86_64 ซึ่งเป็นโมดูล Perl ที่ใช้การปลุก, โหมดสลีป, gettimeofday และตัวจับเวลาแบบช่วงเวลาความละเอียดสูงแล้ว เช่น คุณจะติดตั้งได้โดยใช้คำสั่งต่อไปนี้
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: ก่อนใช้ check_postgres.pl ใน CentOS v7 ให้ติดตั้ง perl-Data-Dumper.x86_64 RPM

เอาต์พุตcheck_postgres.pl

เอาต์พุตเริ่มต้นของการเรียก API ที่ใช้ check_postgres.pl จะเข้ากันได้กับ Nagios หลังจากติดตั้งสคริปต์แล้ว ให้ตรวจสอบดังต่อไปนี้

  1. ตรวจสอบขนาดฐานข้อมูลดังนี้
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
  2. ตรวจสอบจำนวนการเชื่อมต่อขาเข้าไปยังฐานข้อมูลและเปรียบเทียบกับการเชื่อมต่อสูงสุดที่อนุญาต:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. ตรวจสอบว่าฐานข้อมูลทำงานอยู่และพร้อมใช้งานหรือไม่:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. ตรวจสอบพื้นที่ในดิสก์:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. ตรวจสอบจำนวนองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานในโหนด 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 ต่อไปนี้

อาปาเช่ คาสซานดรา

JMX เปิดใช้อยู่โดยค่าเริ่มต้นสำหรับ Cassandra และการเข้าถึง JMX ระยะไกลไปยัง Cassandra ไม่จำเป็นต้องใช้รหัสผ่าน

เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

คุณเปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra ได้ หลังจากดำเนินการแล้ว คุณจะต้องส่งชื่อผู้ใช้และรหัสผ่านไปยังการเรียกทั้งหมดไปยังยูทิลิตี Nodetool

วิธีเปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

  1. สร้างและแก้ไขไฟล์ cassandra.properties โดยทำดังนี้
    1. แก้ไขไฟล์ /opt/apigee/customer/application/cassandra.properties หากไม่มี ให้สร้างไฟล์ดังกล่าว
    2. เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
      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
    3. บันทึกไฟล์ cassandra.properties
    4. เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee ตามตัวอย่างต่อไปนี้
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ไฟล์พร็อพเพอร์ตี้เพื่อตั้งค่าโทเค็นได้ที่วิธีกำหนดค่า Edge

  2. สร้างและแก้ไข jmx_auth.sh โดยทำดังนี้
    1. สร้างไฟล์ในตำแหน่งต่อไปนี้หากยังไม่มีไฟล์:
      /opt/apigee/customer/application/jmx_auth.sh
    2. เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ในไฟล์
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. บันทึกไฟล์ jmx_auth.sh
    4. หาแหล่งที่มาของไฟล์:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. คัดลอกและแก้ไขไฟล์ jmxremote.password โดยทำดังนี้
    1. คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. แก้ไขไฟล์ jmxremote.password รวมถึงเพิ่มชื่อผู้ใช้และรหัสผ่าน JMX โดยใช้ไวยากรณ์ต่อไปนี้
      JMX_USERNAME JMX_PASSWORD

      โดย JMX_USERNAME และ JMX_PASSWORD คือชื่อผู้ใช้และรหัสผ่าน JMX ที่คุณตั้งค่าไว้ก่อนหน้านี้

    3. ตรวจสอบว่าไฟล์เป็นของ "apigee" และโหมดไฟล์คือ 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. คัดลอกและแก้ไขไฟล์ jmxremote.access โดยทำดังนี้
    1. คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. แก้ไขไฟล์ jmxremote.access และเพิ่มบทบาทต่อไปนี้
      JMX_USERNAME readwrite
    3. ตรวจสอบว่าไฟล์เป็นของ "apigee" และโหมดไฟล์คือ 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. เรียกใช้ configure ใน Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. รีสตาร์ท Cassandra โดยทําดังนี้
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. ทำขั้นตอนนี้ซ้ำกับโหนด Cassandra อื่นๆ ทั้งหมด

เปิดใช้การเข้ารหัสรหัสผ่าน JMX

หากต้องการเปิดใช้การเข้ารหัสรหัสผ่าน JMX ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดไฟล์ source/conf/casssandra-env.sh
  2. สร้างและแก้ไขไฟล์ cassandra.properties โดยทำดังนี้
    1. แก้ไขไฟล์ /opt/apigee/customer/application/cassandra.properties หากไม่มี ให้สร้างไฟล์ดังกล่าว
    2. เพิ่มข้อมูลต่อไปนี้ลงในไฟล์
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. บันทึกไฟล์ cassandra.properties
    4. เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee ตามตัวอย่างต่อไปนี้
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. ในบรรทัดคำสั่ง ให้สร้างแฮช SHA1 ของรหัสผ่านที่ต้องการโดยป้อน echo -n 'Secret' | openssl dgst -sha1
  4. ตั้งรหัสผ่านที่ตรงกับชื่อผู้ใช้ใน $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (สร้างในส่วนก่อนหน้า)
  5. เรียกใช้การกำหนดค่าใน Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. รีสตาร์ท Cassandra โดยทําดังนี้
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. ทำขั้นตอนนี้ซ้ำกับโหนด Cassandra อื่นๆ ทั้งหมด

เปิดใช้ JMX พร้อม SSL สำหรับ Cassandra

การเปิดใช้ JMX ด้วย SSL จะช่วยเพิ่มความปลอดภัยและการเข้ารหัสสำหรับการสื่อสารด้วย JMX กับ Cassandra หากต้องการเปิดใช้ JMX ด้วย SSL คุณต้องระบุคีย์และใบรับรองแก่ Cassandra เพื่อยอมรับการเชื่อมต่อ JMX แบบ SSL นอกจากนี้คุณต้องกำหนดค่า Nodetool (และเครื่องมืออื่นๆ ที่สื่อสารกับ Cassandra ผ่าน JMX) สำหรับ SSL

JMX ที่เปิดใช้ SSL รองรับทั้งรหัสผ่าน JMX แบบข้อความธรรมดาและรหัสผ่านที่เข้ารหัส

หากต้องการเปิดใช้ JMX พร้อม SSL สำหรับ Cassandra ให้ใช้ขั้นตอนต่อไปนี้

  1. เปิดใช้ JMX เปิดใช้การเข้ารหัสสำหรับรหัสผ่าน หากจำเป็น
  2. เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra ตามที่อธิบายไว้ข้างต้น ตรวจสอบว่า Nodetool ทำงานร่วมกับชื่อผู้ใช้และรหัสผ่านที่กำหนดค่าไว้
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. เตรียมคีย์สโตร์และ Truststore

    • คีย์สโตร์ควรมีคีย์และใบรับรอง และใช้เพื่อกำหนดค่าเซิร์ฟเวอร์ Cassandra หากคีย์สโตร์มีคู่คีย์หลายรายการ Cassandra จะใช้คู่คีย์แรกเพื่อเปิดใช้ SSL

      โปรดทราบว่ารหัสผ่านสำหรับคีย์สโตร์และคีย์ควรเหมือนกัน (ค่าเริ่มต้นเมื่อคุณสร้างคีย์โดยใช้เครื่องมือคีย์)

    • Truststore ควรมีใบรับรองเท่านั้นและใช้โดยไคลเอ็นต์ (คำสั่งที่ใช้ apigee-service หรือ Nodetool) เพื่อเชื่อมต่อผ่าน JMX

    หลังจากยืนยันข้อกำหนดข้างต้นแล้ว

    1. วางไฟล์คีย์สโตร์ใน /opt/apigee/customer/application/apigee-cassandra/
    2. ตรวจสอบว่าผู้ใช้ Apigee เท่านั้นที่สามารถอ่านไฟล์คีย์สโตร์ได้โดยป้อน
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. กําหนดค่า Cassandra สําหรับ JMX ด้วย SSL โดยทำตามขั้นตอนต่อไปนี้
    1. หยุดโหนด Cassandra โดยป้อน
      apigee-service apigee-cassandra stop
    2. เปิดใช้ 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
    3. เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee ตามตัวอย่างต่อไปนี้
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. เรียกใช้การกำหนดค่าใน Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. รีสตาร์ท Cassandra โดยทําดังนี้
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. ทำขั้นตอนนี้ซ้ำกับโหนด Cassandra อื่นๆ ทั้งหมด
    7. เริ่มต้นโหนด Cassandra โดยป้อน
      apigee-service apigee-cassandra start
  5. กำหนดค่าคำสั่ง 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 ที่จัดเก็บในไฟล์)

    ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้

    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 อ่านไฟล์ Trustore ได้

    เรียกใช้คำสั่ง 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
  6. ตั้งค่า Nodetool Nodetool จำเป็นต้องมีการส่งต่อพารามิเตอร์ JMX ไปให้ คุณสามารถกำหนดค่าเครื่องมือโหนดให้ทำงานกับ JMX ที่เปิดใช้ SSL ได้ 2 วิธี ดังที่อธิบายไว้ในตัวเลือกการกำหนดค่าด้านล่าง

    ตัวเลือกเหล่านี้จะมีวิธีการส่งการกำหนดค่าที่เกี่ยวข้องกับ SSL ไปยัง Nodetool แตกต่างกัน ในทั้ง 2 กรณี ผู้ใช้ที่เรียกใช้ Nodetool ควรมีสิทธิ์ READ ในไฟล์ 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 ที่อธิบายไว้ในกระบวนการด้านบน โปรดทำตามขั้นตอนต่อไปนี้

  1. หยุด apigee-cassandra โดยป้อน
    apigee-service apigee-cassandra stop
  2. นำบรรทัด conf_cassandra-env_com.sun.management.jmxremote.ssl=true ออกจากไฟล์ /opt/apigee/customer/application/cassandra.properties
  3. แสดงความคิดเห็นในบรรทัดต่อไปนี้ใน /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”
  4. เริ่มต้นapigee-cassandraด้วยการป้อน
  5. apigee-service apigee-cassandra start
  6. นำตัวแปรสภาพแวดล้อม CASS_JMX_SSL ออกหากมีการตั้งค่าไว้

    unset CASS_JMX_SSL
  7. ตรวจสอบว่าคำสั่งตาม apigee-service เช่น ring, stop, backup และอื่นๆ ใช้งานได้
  8. หยุดใช้สวิตช์ --ssl กับ Nodetool

ปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

วิธีปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

  1. แก้ไข /opt/apigee/customer/application/cassandra.properties
  2. นำบรรทัดต่อไปนี้ในไฟล์ออก:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. เรียกใช้การกำหนดค่าใน Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. รีสตาร์ท Cassandra โดยทําดังนี้
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. ทำขั้นตอนนี้ซ้ำกับโหนด Cassandra อื่นๆ ทั้งหมด

ใช้ JConsole: ตรวจสอบสถิติของงาน

ใช้ JConsole และ URL ของบริการต่อไปนี้เพื่อตรวจสอบแอตทริบิวต์ JMX (MBeans) ที่เสนอผ่าน JMX

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

โดย IP_address คือ IP ของเซิร์ฟเวอร์ Cassandra

สถิติของ Cassandra JMX

JMX MBean แอตทริบิวต์ JMX

ColumnFamilies/แอป/สภาพแวดล้อม

ColumnFamilies/แอป/องค์กร

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/การตรวจสอบ/การตรวจสอบ

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

ใช้ Nodetool เพื่อจัดการโหนดของคลัสเตอร์

ยูทิลิตีเครื่องมือ Node คืออินเทอร์เฟซบรรทัดคำสั่งสำหรับ Cassandra ที่จัดการโหนดของคลัสเตอร์ คุณสามารถพบยูทิลิตีได้ที่ /opt/apigee/apigee-cassandra/bin

การเรียกใช้ต่อไปนี้ทำได้ในโหนดคลัสเตอร์ Cassandra ทั้งหมด

  1. ข้อมูลวงแหวนทั่วไป (ใช้ได้ด้วยโหนด 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

  2. ข้อมูลทั่วไปเกี่ยวกับโหนด (จำนวนการเรียกใช้ต่อโหนด)
    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
  3. สถานะของเซิร์ฟเวอร์การส่งต่อ (กำลังให้บริการ API ของไคลเอ็นต์)
    nodetool [-u username -pw password] -h localhost statusthrift

    เอาต์พุตของคำสั่งข้างต้นจะมีลักษณะดังนี้

    running

  4. สถานะของการดำเนินการสตรีมมิงข้อมูล: สังเกตการรับส่งข้อมูลของโหนด 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

  1. ตรวจสอบว่ากระบวนการ ZooKeeper ทำงานอยู่ ZooKeeper เขียนไฟล์ PID ไปยัง opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
  2. ทดสอบพอร์ต ZooKeeper เพื่อให้แน่ใจว่าคุณจะเชื่อมต่อ TCP กับพอร์ต 2181 และ 3888 ในเซิร์ฟเวอร์ ZooKeeper ทั้งหมดได้
  3. ตรวจสอบว่าคุณอ่านค่าจากฐานข้อมูล ZooKeeper ได้ เชื่อมต่อโดยใช้ไลบรารีของไคลเอ็นต์ ZooKeeper (หรือ /opt/apigee/apigee-zookeeper/bin/zkCli.sh) และอ่านค่าจากฐานข้อมูล
  4. ตรวจสอบสถานะ
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

ใช้คำ 4 ตัวอักษรของ ZooKeeper

คุณสามารถตรวจสอบ ZooKeeper ได้ผ่านชุดคำสั่งสั้นๆ (คำ 4 ตัวอักษร) ที่ส่งไปยังพอร์ต 2181 โดยใช้ netcat (nc) หรือ Telnet

ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง ZooKeeper ได้ที่ข้อมูลอ้างอิงคำสั่งของ Apache ZooKeeper

เช่น

  • srvr: แสดงรายละเอียดทั้งหมดสำหรับเซิร์ฟเวอร์
  • stat: แสดงรายละเอียดสั้นๆ เกี่ยวกับเซิร์ฟเวอร์และไคลเอ็นต์ที่เชื่อมต่อ

คำสั่งต่อไปนี้สามารถออกไปยังพอร์ต ZooKeeper

  1. เรียกใช้ ruok คำสั่ง 4 ตัวอักษรเพื่อทดสอบว่าเซิร์ฟเวอร์ทำงานด้วยสถานะที่ไม่ใช่ข้อผิดพลาดหรือไม่ การตอบกลับที่สำเร็จจะแสดง "imok"
    echo ruok | nc host 2181

    ส่งคืน:

    imok
  2. เรียกใช้คำสั่ง 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
  3. หาก 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 เพื่อดูว่าคำขอที่ระบุแสดงผลอย่างถูกต้องหรือไม่ กล่าวคือ ตรวจสอบการค้นหาเฉพาะเจาะจงที่แสดงผลการค้นหาที่ถูกต้อง

  1. ใช้ 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
  2. ตรวจสอบว่าเซิร์ฟเวอร์การจัดการยังเชื่อมต่อกับ LDAP อยู่ไหมด้วยคำสั่งต่อไปนี้
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    ส่งคืน:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

นอกจากนี้ คุณยังตรวจสอบแคชของ OpenLDAP ได้ ซึ่งจะช่วยลดจำนวนการเข้าถึงดิสก์และปรับปรุงประสิทธิภาพของระบบ การตรวจสอบและการปรับแต่งขนาดแคชในเซิร์ฟเวอร์ OpenLDAP อาจส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์ไดเรกทอรีอย่างมาก คุณจะดูไฟล์บันทึก (opt/apigee/var/log) เพื่อรับข้อมูลเกี่ยวกับแคชได้