วิธีตรวจสอบ

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

ภาพรวม

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

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

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

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

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

คอมโพเนนต์แต่ละรายการรองรับการเรียกใช้การตรวจสอบ 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 เพื่อรักษาความปลอดภัย

  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.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 ในคอมโพเนนต์ขอบ เท็จโดยค่าเริ่มต้น
    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

แสดงข้อมูลเกี่ยวกับบริการ ซึ่งรวมถึงข้อมูลต่อไปนี้

  • พร็อพเพอร์ตี้การกําหนดค่า
  • เวลาเริ่มต้นและเวลาสิ้นสุด
  • ข้อมูลบิลด์, 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"

ตัวอย่างต่อไปนี้แสดงการเรียกข้อมูลเกี่ยวกับโปรแกรมประมวลผลข้อความที่ 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
    • Message Processor: 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
    • Postgres: 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 คือพอร์ต 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

ก่อนเรียกใช้สคริปต์ ให้ทำดังนี้

  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 ให้ติดตั้ง RPM perl-Data-Dumper.x86_64

เอาต์พุตของ 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 ได้ที่หัวข้อต่อไปนี้

Apache Cassandra

ระบบจะเปิดใช้ 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. เตรียมคีย์สโตร์และทรัสต์สโตร์

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

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

    • Truststore ควรมีใบรับรองเท่านั้น และไคลเอ็นต์ (คำสั่งหรือ nodetool ที่อิงตาม apigee-service) จะใช้เพื่อเชื่อมต่อผ่าน 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
      ## On FIPS enabled systems, when you are using non standard keystore, set the following:
      ## These can be skipped otherwise
      ## Possible values are JKS, PKCS12, BCFKS
      conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12
      conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
    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. กำหนดค่าคำสั่ง 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 ที่เก็บไว้ในไฟล์)

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

    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=
    -Djavax.net.ssl.trustStorePassword=
    -Dcom.sun.management.jmxremote.registry.ssl=true
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    ตรวจสอบว่าผู้ใช้ 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=
    export CASS_JMX_TRUSTSTORE_PASSWORD=
    # If you are using a non standard truststore type, export truststore type as well
    # Possible values are JKS, PKCS12, BCFKS
    export CASS_JMX_TRUSTSTORE_TYPE=PKCS12

    เรียกใช้คำสั่ง 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= CASS_JMX_TRUSTSTORE_PASSWORD= CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. ตั้งค่า nodetool Nodetool กำหนดให้ต้องส่งพารามิเตอร์ JMX ไปให้ คุณกำหนดค่า Nodetool ให้ทำงานด้วย JMX ที่เปิดใช้ SSL ได้ 2 วิธีตามที่อธิบายไว้ในตัวเลือกการกำหนดค่าด้านล่าง

    ตัวเลือกเหล่านี้แตกต่างกันไปตามวิธีที่ส่งการกำหนดค่าที่เกี่ยวข้องกับ SSL ไปยัง nodetool ไม่ว่าในกรณีใด ผู้ใช้ที่เรียกใช้ nodetool ควรมีสิทธิ์อ่านในไฟล์ truststore เลือกตัวเลือกที่เหมาะสมตามความสามารถในการใช้งานและแนวทางปฏิบัติด้านความปลอดภัยของคุณ

    ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ Nodetool ได้ที่ เอกสารประกอบ DataStax

    ตัวเลือกการกําหนดค่า 1

    สร้างไฟล์ในไดเรกทอรีหน้าแรกของผู้ใช้ที่เรียกใช้ nodetool

    $HOME/.cassandra/nodetool-ssl.properties

    เพิ่มบรรทัดต่อไปนี้ลงในไฟล์

    -Djavax.net.ssl.trustStore=
    -Djavax.net.ssl.trustStorePassword=
    -Dcom.sun.management.jmxremote.registry.ssl=true
    ## If you are using a non standard truststore, set below, otherwise skip
    ## Possible values are JKS, PKCS12, BCFKS
    -Djavax.net.ssl.trustStoreType=PKCS12

    ผู้ใช้ที่เรียกใช้ 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= -Djavax.net.ssl.trustStorePassword= -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u  -pw  -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 (MBean) ที่ให้บริการผ่าน JMX

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

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

สถิติ JMX ของ Cassandra

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

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

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

คอลัมน์ครอบครัว/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/ตรวจสอบ/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 ทั้งหมด

  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. สถานะของเซิร์ฟเวอร์ Thrift (ให้บริการ 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 Qpid Broker-J

คุณสามารถตรวจสอบ Qpid Broker-J ได้จากคอนโซลการจัดการ Qpid ส่วนนี้จะอธิบายวิธีเข้าถึงและใช้งานคอนโซลเพื่อดำเนินการฟังก์ชันการตรวจสอบพื้นฐาน ดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้คอนโซลการจัดการได้ที่ คอนโซลการจัดการบนเว็บในเอกสารประกอบของ Apache Qpid

เข้าถึงคอนโซลการจัดการ

พอร์ตคอนโซลการจัดการเริ่มต้นคือ 8090 หากต้องการเข้าถึงคอนโซลในพอร์ตเริ่มต้นนี้ ให้เปิดเว็บเบราว์เซอร์ไปที่

http://QPID_NODE_IP:8090

หากต้องการเข้าสู่ระบบคอนโซล ให้ใช้ข้อมูลเข้าสู่ระบบเริ่มต้นที่ Apigee ตั้งค่าไว้ หรือข้อมูลเข้าสู่ระบบที่ตั้งค่าไว้ในไฟล์การกําหนดค่า Edge โปรดดูรายละเอียดที่หัวข้อข้อมูลอ้างอิงไฟล์การกําหนดค่า Edge

ตรวจสอบคิวและข้อความ

ในแผงการนำทางด้านซ้าย ให้ไปที่ Java-Broker > โฮสต์เสมือน > คิว เลือกคิวเพื่อดูรายละเอียดในส่วนหลักของ UI ในมุมมองรายละเอียด คุณจะเห็นแอตทริบิวต์และสถิติของคิว รวมถึงข้อมูลเกี่ยวกับข้อความที่ส่ง ข้อความที่อยู่ในคิว อัตราข้อความ และอื่นๆ

ดูและดาวน์โหลดไฟล์บันทึก

ในแผงการนำทางด้านซ้าย ให้ไปที่ Java-Broker > brokerloggers > logfile ในมุมมองรายละเอียด UI หลัก คุณสามารถดูรายละเอียดไฟล์บันทึกและดาวน์โหลดไฟล์บันทึกได้

การใช้ Qpid Management API

คุณสามารถใช้ Apache Qpid Broker-J REST API เพื่อทำให้งานการจัดการเป็นไปโดยอัตโนมัติและตรวจสอบโบรกเกอร์ ดูรายละเอียดได้ที่ เอกสาร REST API ของ Apache Qpid Broker

นอกจากนี้คุณยังใช้เครื่องมือบรรทัดคำสั่งเพื่อตรวจสอบนายหน้าได้ด้วย เช่น

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

เปิดใช้การตรวจสอบด้วย SSL สําหรับ Qpid

หากต้องการเพิ่มความปลอดภัยในการตรวจสอบและการจัดการ ให้เปิดใช้ SSL ในพอร์ทัลการจัดการของ Qpid และ Management API ของ Qpid ทำตามหลักเกณฑ์ด้านล่างเพื่อระบุคีย์และใบรับรอง

Qpid มีตัวเลือกสำหรับคีย์สโตร์ของไฟล์ที่เปิดใช้ใน Apigee ประเภทนี้ยอมรับรูปแบบคีย์สโตร์ JKS มาตรฐานที่เครื่องมือ Java และ Java เช่น เครื่องมือคีย์

การเตรียมคีย์สโตร์

คุณต้องส่งไฟล์ใบรับรองให้ไคลเอ็นต์ของ Qpidd โดยตรง นอกเหนือจากการใช้ Keytool

โปรดดูการสร้างคีย์สโตร์ในเอกสารประกอบเกี่ยวกับ Keytool ของ Java

หลังจากปฏิบัติตามข้อกำหนดในการยืนยัน

  1. วางไฟล์คีย์สโตร์และใบรับรองใน /opt/apigee/customer/application/apigee-qpidd
  2. ตรวจสอบว่าไฟล์คีย์สโตร์มีเพียงผู้ใช้ Apigee เท่านั้นที่อ่านได้ โดยทำดังนี้
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
        
      chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem

เปิดใช้ SSL ใน Qpid

ทำตามขั้นตอนด้านล่างกับโหนด Qpid ครั้งละ 1 โหนด

เปิดไฟล์ /opt/apigee/customer/application/qpidd.properties แล้วเพิ่มบรรทัดต่อไปนี้

conf_qpidd_qpid_management.https.enabled=true
  conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
  conf_qpidd_qpid.keystore.password=keystore-password
  conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
  conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
  1. เปลี่ยนเจ้าของไฟล์เป็น apigee:apigee
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. กำหนดค่า Qpidd:
    apigee-service apigee-qpidd configure
  3. รีสตาร์ท Qpidd โดยทำดังนี้
    apigee-service apigee-qpidd restart
  4. ตรวจสอบสถานะด้วย wait_for_ready ดังนี้
    apigee-service apigee-qpidd wait_for_ready

เปลี่ยนกลับการกำหนดค่า SSL

นำหรือยกเลิกการคอมเมนต์พร็อพเพอร์ตี้ออกจากไฟล์ /opt/apigee/customer/application/qpidd.properties

conf_qpidd_qpid_management.https.enabled=true
  conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. กำหนดค่า Qpidd
    apigee-service apigee-qpidd configure
  2. รีสตาร์ท Qpidd:
    apigee-service apigee-qpidd restart
  3. ตรวจสอบสถานะด้วย request_for_ready:
    apigee-service apigee-qpidd wait_for_ready

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) เพื่อรับข้อมูลเกี่ยวกับแคชได้