วิธีตรวจสอบ

เอกสารนี้อธิบายเทคนิคการตรวจสอบคอมโพเนนต์ที่การติดตั้งใช้งาน 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 พอร์ต 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 สำหรับ 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

คุณเพิ่มบรรทัดที่ระบุว่า "ต้องเริ่มต้น 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 ในคอมโพเนนต์ 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=
  • ชื่อโฮสต์สำหรับ Stub ระยะไกล ที่อยู่ 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" ได้

ตัวอย่างต่อไปนี้จะรับสถานะของ Router ใน 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
    • 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
    • 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
  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 ให้ติดตั้ง 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 ได้ที่หัวข้อต่อไปนี้

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. เตรียมคีย์สโตร์และ Truststore

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

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

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

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

    1. วางไฟล์ Keystore ใน /opt/apigee/customer/application/apigee-cassandra/
    2. ตรวจสอบว่าผู้ใช้ Apigee อ่านไฟล์ Keystore ได้โดยป้อน
      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=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -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 อ่านไฟล์ 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>
    # 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=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. ตั้งค่าเครื่องมือโหนด Nodetool กำหนดให้ต้องส่งพารามิเตอร์ JMX ไปยังเครื่องมือ คุณกำหนดค่า nodetool ให้ทำงานกับ JMX ที่เปิดใช้ SSL ได้ 2 วิธี ดังที่อธิบายไว้ใน ตัวเลือกการกำหนดค่าด้านล่าง

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

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

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

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

    $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
    ## 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=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -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

สถิติ JMX ของ Cassandra

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 เป็นอินเทอร์เฟซบรรทัดคำสั่งสำหรับ Cassandra ที่จัดการ โหนดคลัสเตอร์ คุณสามารถดูยูทิลิตีได้ที่ /opt/apigee/apigee-cassandra/bin

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

  1. ข้อมูลทั่วไปเกี่ยวกับวงแหวน (ใช้ได้กับโหนด 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
  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 > virtualhosts > queues เลือก คิวเพื่อดูรายละเอียดในส่วนหลักของ UI ในมุมมองรายละเอียด คุณจะเห็น แอตทริบิวต์และสถิติของคิว รวมถึงข้อมูลเกี่ยวกับข้อความที่นำส่ง ข้อความที่เข้าคิว อัตราข้อความ และอื่นๆ

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

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

การใช้ Qpid Management API

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

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

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

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

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

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

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

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

ดูการสร้างที่เก็บคีย์ PKCS12 ได้ที่เอกสารประกอบของ OpenSSL

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

  1. วางไฟล์ Keystore ใน /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

เปิดใช้ SSL ใน Qpid

ทำตามขั้นตอนด้านล่างในโหนด Qpid ทีละโหนด

เปิดไฟล์ /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
## If you are using a PKCS12 keystore, specify the keystore type
conf_qpidd_qpid.keystore.keyStoreType=PKCS12
  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. ตรวจสอบสถานะด้วย wait_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. เรียกใช้คำสั่ง 4 ตัวอักษร ruok เพื่อทดสอบว่าเซิร์ฟเวอร์ทำงานในสถานะที่ไม่มีข้อผิดพลาดหรือไม่ การตอบกลับที่สำเร็จจะแสดง "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

คุณสามารถตรวจสอบ SymasLDAP เพื่อดูว่าคำขอที่เฉพาะเจาะจงได้รับการจัดการอย่างถูกต้องหรือไม่ กล่าวคือ ให้ตรวจสอบการค้นหาที่เฉพาะเจาะจงซึ่งแสดงผลลัพธ์ที่ถูกต้อง

  1. ใช้ ldapsearch (yum install symasldap-clients) เพื่อค้นหารายการ ของผู้ดูแลระบบ รายการนี้ใช้เพื่อตรวจสอบสิทธิ์การเรียก API ทั้งหมด
    /opt/symas/bin/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"
    }

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