วิธีตรวจสอบ

Edge for Private Cloud v4.19.01

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

ภาพรวม

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

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

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

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

พอร์ตการตรวจสอบ JMX และ Management API

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

ส่วนประกอบ พอร์ต JMX พอร์ต API การจัดการ
เซิร์ฟเวอร์การจัดการ 1099 8080
เราเตอร์ 1100 8081
Message Processor 1101 8082
Qpid 1102 8083
Postgres 1103 8084

ใช้ JMX เพื่อตรวจสอบ

กระบวนการตรวจสอบสำหรับเซิร์ฟเวอร์การจัดการ, Message Processor, Qpid และ Postgres ทั้งหมด ใช้ JMX อย่างไรก็ตาม JMX จะเปิดใช้โดยค่าเริ่มต้นสำหรับ Cassandra เท่านั้น และปิดใช้โดยค่าเริ่มต้นสำหรับ คอมโพเนนต์ Edge อื่นๆ ดังนั้นคุณต้องเปิดใช้งาน JMX ทีละรายการสำหรับแต่ละคอมโพเนนต์ก่อนดำเนินการ ดูแลการแจ้งเตือนเหล่านั้นได้

ไม่ได้เปิดใช้งานการตรวจสอบสิทธิ์ JMX ตามค่าเริ่มต้น คุณสามารถเปิดใช้งานการตรวจสอบสิทธิ์ JMX สำหรับ คอมโพเนนต์ สำหรับ Cassandra ให้ใช้คำแนะนำใน เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

เปิดใช้ JMX

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

วิธีเปิดใช้ JMX

  1. แก้ไขไฟล์การกำหนดค่าของคอมโพเนนต์ ไฟล์นี้อยู่ที่ opt/apigee/edge-component_name/bin/start ใช้เวอร์ชันที่ใช้งานจริง สภาพแวดล้อมการทำงาน ไฟล์การกำหนดค่าเหล่านี้จะอยู่ในคอมพิวเตอร์เครื่องอื่น

    เลือกตำแหน่งไฟล์ต่อไปนี้ในแต่ละเซิร์ฟเวอร์

    • เซิร์ฟเวอร์การจัดการ: /opt/apigee/edge-management-server/bin/start
    • ตัวประมวลผลข้อความ: /opt/apigee/edge-message-processor/bin/start
    • Postgres: /opt/apigee/edge-postgres-server/bin/start
    • QPID: /opt/apigee/edge-qpid-server/bin/start
    • เราเตอร์: /opt/apigee/edge-router/bin/start

    เช่น ไฟล์การกำหนดค่าของเซิร์ฟเวอร์การจัดการในเซิร์ฟเวอร์อยู่ที่ /opt/apigee/edge-management-server/bin/start

  2. เพิ่มตัวเลือก com.sun.management.jmxremote ต่อไปนี้ใน exec บรรทัดที่เริ่มต้นคอมโพเนนต์
    -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=port_number \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false

    โดย port_number คือพอร์ต JMX สำหรับบริการ วิธีรับ JMX ของบริการ หมายเลขพอร์ต โปรดดูที่พอร์ตการตรวจสอบ JMX และ Management API

    ตัวอย่างเช่น หากต้องการเปิดใช้ JMX ในเซิร์ฟเวอร์การจัดการ ให้เพิ่มค่าต่อไปนี้ในส่วนการจัดการ ไฟล์การกำหนดค่าของเซิร์ฟเวอร์:

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts \
      -Djava.security.auth.login.config=$conf_path/jaas.config \
      -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path \
      -Ddata.dir=$data_dir \
      -Dcom.sun.management.jmxremote \
      -Dcom.sun.management.jmxremote.port=1099 \
      -Dcom.sun.management.jmxremote.local.only=false \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
       $* $debug_options com.apigee.kernel.MicroKernel

    ตัวอย่างนี้ระบุพอร์ต 1099 สำหรับเซิร์ฟเวอร์การจัดการ ตามที่ระบุไว้ก่อนหน้านี้ แต่ละ บริการมีหมายเลขพอร์ตของตนเอง

    บรรทัดที่แก้ไขแล้วในไฟล์การกำหนดค่าจะมีลักษณะดังนี้

    exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false $* $debug_options com.apigee.kernel.MicroKernel
  3. บันทึกไฟล์การกำหนดค่า
  4. รีสตาร์ทคอมโพเนนต์ด้วยคำสั่ง restart

    เช่น หากต้องการเริ่มต้นเซิร์ฟเวอร์การจัดการใหม่ ให้เรียกใช้คำสั่งต่อไปนี้

    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

การตรวจสอบสิทธิ์สำหรับ JMX ไม่ได้เปิดใช้งานโดยค่าเริ่มต้น คุณสามารถเปิดใช้งานการตรวจสอบสิทธิ์ JMX สำหรับ คอมโพเนนต์ ตามที่อธิบายไว้ในเปิดใช้การตรวจสอบสิทธิ์ JMX วิธีเปิดใช้ JMX การตรวจสอบสิทธิ์สำหรับ Cassandra โปรดดู เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

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

ไม่ได้เปิดใช้งานการตรวจสอบสิทธิ์ JMX ตามค่าเริ่มต้น คุณสามารถเปิดใช้งานการตรวจสอบสิทธิ์ JMX สำหรับ คอมโพเนนต์ สำหรับ Cassandra ให้ใช้คำแนะนำใน เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra

หากต้องการเปิดใช้การตรวจสอบสิทธิ์ JMX ให้เรียกใช้คำสั่ง change_jmx_auth ต่อไปนี้กับ โหนด:

/opt/apigee/apigee-service/bin/apigee-service component change_jmx_auth [options|-f config_file]

สถานที่:

  • component เป็นอย่างใดอย่างหนึ่งต่อไปนี้
    • edge-management-server
    • edge-message-processor
    • edge-postgres-server
    • edge-qpid-server
    • edge-router
  • options จะระบุสิ่งต่อไปนี้
    • -u username
    • -p password
    • -e [y|n] (เปิดหรือปิดใช้)
  • config_file ระบุตำแหน่งของไฟล์การกำหนดค่าที่คุณกำหนด ดังต่อไปนี้
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (หากไม่ได้ตั้งค่าหรือไม่ส่งผ่านด้วย -p คุณจะได้รับข้อความแจ้ง)

คุณสามารถใช้ตัวเลือกบรรทัดคำสั่งหรือไฟล์การกำหนดค่าเพื่อกำหนดชื่อผู้ใช้ รหัสผ่าน และเปิด/ปิดใช้งาน คุณไม่ได้ระบุทั้งชุดตัวเลือกและการกำหนดค่า

ตัวอย่างต่อไปนี้เปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับเซิร์ฟเวอร์การจัดการโดยใช้คำสั่ง ตัวเลือกบรรทัด:

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -u foo -p bar -e y

ตัวอย่างต่อไปนี้ใช้ไฟล์การกำหนดค่าแทนตัวเลือกบรรทัดคำสั่ง

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -f /tmp/my-config-file

ถ้าคุณใช้ Edge บนหลายโหนด ให้เรียกใช้คำสั่งบนโหนดทั้งหมด โดยระบุ ชื่อผู้ใช้และรหัสผ่าน

หากต้องการปิดใช้การตรวจสอบสิทธิ์ JMX ในบรรทัดคำสั่ง ให้ใช้ "-e n" ตามขั้นตอนต่อไปนี้ ตัวอย่างได้แก่

/opt/apigee/apigee-service/bin/apigee-service edge-management-server
    change_jmx_auth -e n

ตรวจสอบด้วย JConsole

ใช้ JConsole (เครื่องมือที่เป็นไปตามมาตรฐาน JMX) เพื่อจัดการและตรวจสอบการตรวจสอบประสิทธิภาพการทำงานและประมวลผลสถิติ เมื่อใช้ JConsole คุณสามารถใช้สถิติ 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

การใช้งาน

ตรวจสอบด้วย 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 สำหรับเซิร์ฟเวอร์ที่คุณต้องการตรวจสอบ นี่คือ พอร์ตหนึ่งพอร์ตสำหรับคอมโพเนนต์แต่ละประเภท ตัวอย่างเช่น เซิร์ฟเวอร์การจัดการ พอร์ต API การจัดการคือ 8080 ดูรายการหมายเลขพอร์ต Management API ที่จะใช้ได้ที่ พอร์ตการตรวจสอบ JMX และ Management API

หากต้องการเปลี่ยนรูปแบบการตอบกลับ ให้ระบุส่วนหัว Accept เป็น &quot;application/json&quot; หรือ "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
    • 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 ที่ ใช้เครื่องตั้งเวลาสำหรับปลุก การนอนหลับ เวลาพักฟื้น และช่วงละครั้งที่มีความละเอียดสูง ตัวอย่างเช่น คุณสามารถ สามารถติดตั้งโดยใช้คำสั่งต่อไปนี้:
    วันที่
    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"

ตรวจสอบสถานะประสิทธิภาพของกระบวนการหลังจบ

คุณตรวจสอบ 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}/data/apigee-cassandra/jmxremote.password
      conf_cassandra-env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/data/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/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/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/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. คัดลอกและแก้ไขไฟล์ jmxremote.access โดยทำดังนี้
    1. คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. แก้ไขไฟล์ jmxremote.access และเพิ่มบทบาทต่อไปนี้
      JMX_USERNAME readwrite
    3. ตรวจสอบว่า "apigee" เป็นเจ้าของไฟล์ และโหมดไฟล์คือ 400
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/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. ยกเลิกการทำหมายเหตุบรรทัดต่อไปนี้ในไฟล์
    • JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config={T}conf_cassandra-env_java.security.auth.login.config{/T}"
    • JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.login.config=ApigeeSecureFileLoginModule"
  3. ในบรรทัดคำสั่ง ให้สร้างแฮช SHA1 ของรหัสผ่านที่ต้องการโดยป้อน echo -n 'Secret' | openssl dgst -sha1
  4. ตั้งรหัสผ่านกับชื่อผู้ใช้ใน jmxremote.password
  5. เปลี่ยนไฟล์ cassandra-env.sh กลับไปเป็นอ่านอย่างเดียวหลังจากการอัปเดต

ปิดใช้การตรวจสอบสิทธิ์ 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 MBeans แอตทริบิวต์ของ JMX

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

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

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

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

  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 ที่หัวข้อการอ้างอิงคำสั่ง 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) เพื่อรับข้อมูลเกี่ยวกับแคช