วิธีตรวจสอบ

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

ภาพรวม

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

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

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

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

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

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

ส่วนประกอบ พอร์ต JMX พอร์ต Management 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
    • Message Processor: /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_name 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 (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

การใช้งาน

ตรวจสอบด้วย Management API

Edge มี API หลายรายการที่คุณสามารถใช้เพื่อตรวจสอบบริการในเซิร์ฟเวอร์ รวมถึงตรวจสอบผู้ใช้ องค์กร และการติดตั้งใช้งาน ส่วนนี้จะอธิบาย API เหล่านี้

ดำเนินการตรวจสอบบริการ

Management API มีปลายทางหลายรายการสําหรับการตรวจสอบและวินิจฉัยปัญหาเกี่ยวกับบริการ ซึ่งประกอบด้วย

ปลายทาง คำอธิบาย
/servers/self/up

ตรวจสอบว่าบริการทำงานอยู่หรือไม่ การเรียก API นี้ไม่จําเป็นต้องตรวจสอบสิทธิ์

ถ้าบริการกำลังทำงาน ปลายทางนี้จะแสดงการตอบกลับต่อไปนี้

<ServerField>
  <Up>true</Up>
</ServerField>

หากบริการไม่ทํางาน คุณจะได้รับคําตอบที่คล้ายกับข้อความต่อไปนี้ (ขึ้นอยู่กับบริการและวิธีตรวจสอบ)

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

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

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

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

หากต้องการใช้ปลายทางเหล่านี้ ให้เรียกใช้ยูทิลิตี เช่น curl ด้วยคําสั่งที่ใช้ไวยากรณ์ต่อไปนี้

curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"

สถานที่:

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

หากต้องการเปลี่ยนรูปแบบของคำตอบ คุณสามารถระบุส่วนหัว Accept เป็น "application/json" หรือ "application/xml"

ตัวอย่างต่อไปนี้จะรับสถานะของเราเตอร์ใน localhost (พอร์ต 8081)

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

ตัวอย่างต่อไปนี้รับข้อมูลเกี่ยวกับ Message Processor ที่ 216.3.128.12 (พอร์ต 8082)

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

ตรวจสอบสถานะผู้ใช้ องค์กร และการทำให้ใช้งานได้

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

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

โดยที่ port_number คือ 8080 สำหรับเซิร์ฟเวอร์การจัดการหรือ 8082 สำหรับโปรแกรมประมวลผลข้อความ

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

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

  1. ตรวจสอบบันทึกเซิร์ฟเวอร์เพื่อหาข้อผิดพลาด บันทึกจะอยู่ที่
    • เซิร์ฟเวอร์การจัดการ: opt/apigee/var/log/edge-management-server
    • 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 ที่ใช้การปลุกที่มีความละเอียดสูง การนอนหลับ เวลาพักการใช้งาน และตัวจับเวลาแบบเป็นช่วงๆ เช่น คุณสามารถติดตั้งโดยใช้คําสั่งต่อไปนี้
    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}/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 ด้วย 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. เตรียมคีย์สโตร์และทรัสต์สโตร์

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

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

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

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

    1. วางไฟล์คีย์สโตร์ใน /opt/apigee/data/apigee-cassandra
    2. ตรวจสอบว่าผู้ใช้ Apigee เท่านั้นที่อ่านไฟล์คีย์สโตร์ได้ โดยป้อน
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/data/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

      ไฟล์ควรเป็นของ apigee:apigee

    3. เปิดใช้การกำหนดค่าที่เกี่ยวข้องกับ SSL ใน Cassandra ดังนี้ เปิดไฟล์ /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh และยกเลิกการปรับแต่งบรรทัดต่อไปนี้ โดยเปลี่ยนเส้นทาง /opt/apigee/data/apigee-cassandra/keystore.node1 และรหัสผ่านคีย์สโตร์ตามที่จำเป็น
      JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node1"
      JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keystore-password"
      JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
      ตรวจสอบว่าไฟล์เป็นของ apigee:apigee
    4. เริ่มโหนด 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

    ตรวจสอบว่าผู้ใช้ Apigee สามารถอ่านไฟล์ Trustore ได้

    เรียกใช้คำสั่ง apigee-service ต่อไปนี้ หากทํางานโดยไม่มีข้อผิดพลาด แสดงว่าการกำหนดค่าถูกต้อง

    apigee-service apigee-cassandra ring

    ตัวเลือกที่ 2 (อาร์กิวเมนต์ SSL ที่เก็บไว้ในตัวแปรสภาพแวดล้อม)

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

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>

    เรียกใช้คำสั่ง apigee-service ต่อไปนี้ หากทํางานโดยไม่มีข้อผิดพลาด แสดงว่าการกำหนดค่าถูกต้อง

    apigee-service apigee-cassandra ring

    ตัวเลือกที่ 3 (อาร์กิวเมนต์ SSL ที่ส่งไปยัง apigee-service โดยตรง)

    เรียกใช้คำสั่ง apigee-service เหมือนกับคำสั่งด้านล่าง โดยไม่จำเป็นต้องกำหนดค่าตัวแปรสภาพแวดล้อม

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. ตั้งค่า Nodetool Nodetool กำหนดให้ต้องส่งพารามิเตอร์ JMX ไปให้ คุณกำหนดค่า nodetool ให้ทำงานกับ JMX ที่เปิดใช้ SSL ได้ 2 วิธีตามที่อธิบายไว้ในตัวเลือกการกำหนดค่าด้านล่าง

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

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

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

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

    $HOME/.cassandra/nodetool-ssl.properties

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

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true

    ผู้ใช้ทุกคนที่เรียกใช้ nodetool ควรเข้าถึงเส้นทางของ Truststore ที่ระบุไว้ข้างต้นได้

    เรียกใช้ nodetool ด้วยตัวเลือก --ssl

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

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

    เรียกใช้ nodetool เป็นคำสั่งเดียวพร้อมพารามิเตอร์เพิ่มเติมที่ระบุไว้ด้านล่าง

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

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

หากต้องการเปลี่ยนการกำหนดค่า SSL กลับเป็นค่าที่อธิบายไว้ในกระบวนการข้างต้น ให้ทำตามขั้นตอนต่อไปนี้

  1. หยุด apigee-cassandra โดยป้อน
    apigee-service apigee-cassandra stop
  2. นำบรรทัด conf_cassandra-env_com.sun.management.jmxremote.ssl=true ออกจากไฟล์ /opt/apigee/customer/application/cassandra.properties
  3. ใส่เครื่องหมายกำกับบรรทัดต่อไปนี้ใน /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. เริ่ม apigee-cassandra ด้วยการเข้า
  5. apigee-service apigee-cassandra start
  6. นําตัวแปรสภาพแวดล้อม CASS_JMX_SSL ออก หากตั้งค่าไว้

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

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

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

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

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

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

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

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

สถิติของ Cassandra JMX

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

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

คอลัมน์ครอบครัว/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. สถานะของเซิร์ฟเวอร์ 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 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. เรียกใช้คําสั่ง 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

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