Edge for Private Cloud เวอร์ชัน 4.17.05
เอกสารนี้อธิบายเทคนิคการตรวจสอบคอมโพเนนต์ที่รองรับโดยการติดตั้งใช้งาน Apigee Edge ในองค์กร
การเปิดใช้ JMX
JMX จะเปิดใช้โดยค่าเริ่มต้นสำหรับ Cassandra และปิดใช้โดยค่าเริ่มต้นสำหรับคอมโพเนนต์ Edge อื่นๆ ทั้งหมด ดังนั้นคุณต้องเปิดใช้ JMX สำหรับแต่ละคอมโพเนนต์แยกกัน
แต่ละคอมโพเนนต์รองรับ JMX ในพอร์ตที่ต่างกัน ตารางต่อไปนี้แสดงพอร์ต JMX และไฟล์ที่คุณแก้ไขเพื่อเปิดใช้ JMX ในพอร์ตนั้น
| ส่วนประกอบ | พอร์ต JMX | ไฟล์ |
|---|---|---|
| เซิร์ฟเวอร์การจัดการ | 1099 | /opt/apigee/edge-management-server/bin/start |
| Message Processor | 1101 | /opt/apigee/edge-mesage-processor/bin/start |
| Qpid | 1102 | /opt/apigee/edge-qpid-server/bin/start |
| Postgres | 1103 | /opt/apigee/edge-postgres-server/bin/start |
เช่น หากต้องการเปิดใช้ JMX ในเซิร์ฟเวอร์การจัดการ ให้เปิด /opt/apigee/edge-management-server/bin/start ในเครื่องมือแก้ไข คุณควรเห็นบรรทัดต่อไปนี้ที่ใช้เพื่อเริ่ม Management Server
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 $* $debug_options com.apigee.kernel.MicroKernel
แก้ไขบรรทัดนี้เพื่อเพิ่มข้อมูลต่อไปนี้
-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
โปรดทราบว่าบรรทัดนี้ระบุหมายเลขพอร์ต JMX เป็น 1099 สำหรับเซิร์ฟเวอร์การจัดการ ตั้งค่าหมายเลขพอร์ตสำหรับแต่ละคอมโพเนนต์ตามที่กำหนดไว้ในตารางด้านบน เช่น
exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -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 -Djava.security.auth.login.config=$conf_path/jaas.config -Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel
บันทึกไฟล์แล้วรีสตาร์ทคอมโพเนนต์ ตัวอย่างเช่น หากต้องการรีสตาร์ทเซิร์ฟเวอร์การจัดการ ให้ทำดังนี้
> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart
การเปิดใช้การตรวจสอบสิทธิ์ JMX และการตั้งรหัสผ่าน JMX
กระบวนการตรวจสอบสำหรับ Management Server, Message Processor, Qpid และ Postgres ทั้งหมดจะใช้ JMX โดยค่าเริ่มต้น การเข้าถึง JMX ระยะไกลไม่จำเป็นต้องใช้รหัสผ่าน
หากต้องการเปิดใช้การตรวจสอบสิทธิ์ JMX คอมโพเนนต์แต่ละรายการจะมีการดำเนินการ change_jmx_auth ที่คุณใช้เพื่อเปิด/ปิดใช้การตรวจสอบสิทธิ์และตั้งค่าข้อมูลเข้าสู่ระบบ JMX
หากต้องการเปิดใช้การตรวจสอบสิทธิ์ JMX ให้ใช้คำสั่งต่อไปนี้
> /<inst_root>/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile
โดยที่
- comp คือ edge-management-server, edge-message-processor, edge-qpid-server หรือ edge-postgres-server
- มีตัวเลือกดังนี้
- -u: ชื่อผู้ใช้
- -p: รหัสผ่าน
- -e: y (เปิดใช้) หรือ n (ปิดใช้)
- ไฟล์การกำหนดค่าประกอบด้วยข้อมูลต่อไปนี้
- JMX_USERNAME=username
- JMX_ENABLED=y/n
- JMX_PASSWORD=password (หากไม่ได้ตั้งค่าหรือไม่ได้ส่งด้วย -p ระบบจะแจ้งให้คุณทราบ)
ตัวอย่างเช่น หากต้องการใช้ตัวเลือกในบรรทัดคำสั่ง ให้ทำดังนี้
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y
หากมีไฟล์การกำหนดค่า ให้ทำดังนี้
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile
หากคุณใช้ Edge ในหลายโหนด ให้เรียกใช้คำสั่งนี้ในทุกโหนด โดยระบุชื่อผู้ใช้และรหัสผ่านเดียวกัน
หากต้องการปิดใช้การตรวจสอบสิทธิ์ JMX ในภายหลัง ให้ใช้คำสั่งต่อไปนี้
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n
เซิร์ฟเวอร์การจัดการ
การใช้ JConsole เพื่อตรวจสอบการตรวจสุขภาพของระบบและข้อมูลกระบวนการ
ใช้ JConsole (เครื่องมือที่สอดคล้องกับ JMX) เพื่อจัดการและตรวจสอบสถิติการตรวจสอบประสิทธิภาพการทำงานและกระบวนการ เมื่อใช้ JConsole คุณจะใช้สถิติ JMX ที่แสดงโดย Management Server (หรือเซิร์ฟเวอร์ใดก็ได้) และแสดงสถิติดังกล่าวในอินเทอร์เฟซแบบกราฟิกได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน JConsole ได้ที่ http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html
ใช้ JConsole และ URL บริการต่อไปนี้เพื่อตรวจสอบแอตทริบิวต์ JMX (MBeans) ที่เสนอผ่าน JMX
service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi
โดยที่ <ip address> คือที่อยู่ IP ของ Management Server (หรือเซิร์ฟเวอร์ที่เกี่ยวข้อง) โดยค่าเริ่มต้น พอร์ตสำหรับ Management Server คือ 1099
ตารางต่อไปนี้แสดงสถิติ JMX ทั่วไป
|
JMX MBeans |
แอตทริบิวต์ JMX |
|---|---|
|
หน่วยความจำ |
HeapMemoryUsage |
|
NonHeapMemoryUsage |
|
|
การใช้งาน |
|
|
หมายเหตุ: ค่าแอตทริบิวต์จะแสดงเป็น 4 ค่า ได้แก่ committed, init, max และ used |
|
การใช้การตรวจสอบ API ของ Edge Application
คุณสามารถตรวจสอบ API ในเซิร์ฟเวอร์การจัดการ (หรือเซิร์ฟเวอร์ใดก็ได้) โดยเรียกใช้คำสั่ง CURL ต่อไปนี้
curl http://<host>:8080/v1/servers/self/up
โดยที่ <host> คือที่อยู่ IP ของเซิร์ฟเวอร์การจัดการ
การเรียกนี้จะแสดงผล "true" และ "false" หากเป็น "จริง" แสดงว่าโหนดทำงานอยู่และบริการ Java กำลังทำงาน
หากคุณไม่ได้รับการตอบกลับ HTTP 200 (OK) แสดงว่า Edge ไม่สามารถตอบสนองต่อคำขอพอร์ต 8080 ได้
การแก้ปัญหา
- เข้าสู่ระบบเซิร์ฟเวอร์และเรียกใช้คำสั่งต่อไปนี้
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server status - หากบริการไม่ทำงาน ให้เริ่มบริการโดยใช้คำสั่งต่อไปนี้
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server start
การใช้ Edge แอปพลิเคชัน - การตรวจสอบผู้ใช้ องค์กร และการติดตั้งใช้งาน
เซิร์ฟเวอร์การจัดการมีบทบาทสำคัญในการรวมพัสดุอื่นๆ ทั้งหมดไว้ด้วยกันในการติดตั้งภายในองค์กรแต่ละครั้ง คุณสามารถตรวจสอบสถานะผู้ใช้ องค์กร และการติดตั้งใช้งานในเซิร์ฟเวอร์การจัดการได้โดยใช้คำสั่งต่อไปนี้
curl -u userEmail:password http://localhost:8080/v1/users curl -u userEmail:password http://localhost:8080/v1/organizations curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments
ระบบควรแสดงสถานะ "ติดตั้งใช้งานแล้ว" สำหรับการโทรทั้งหมด หากไม่ได้ผล ให้ทำดังนี้
- ตรวจสอบบันทึกของเซิร์ฟเวอร์การจัดการ (ที่ <inst_root>/apigee/var/log/edge-management-server) เพื่อหาข้อผิดพลาด
- โทรหาเซิร์ฟเวอร์การจัดการเพื่อตรวจสอบว่าทำงานอย่างถูกต้องหรือไม่
- นำเซิร์ฟเวอร์ออกจาก ELB แล้วรีสตาร์ท Management Server
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-management-server restart
เราเตอร์
คุณสามารถตรวจสอบ API บนเราเตอร์ (หรือเซิร์ฟเวอร์ใดก็ได้) โดยเรียกใช้คำสั่ง CURL ต่อไปนี้
curl http://<host>:8081/v1/servers/self/up
โดยที่ host คือที่อยู่ IP ของเราเตอร์
การเรียกนี้จะแสดงผล "true" และ "false" หากเป็น "จริง" แสดงว่าโหนดทำงานอยู่และบริการเราเตอร์กำลังทำงาน
หากคุณไม่ได้รับการตอบกลับ HTTP 200 (OK) แสดงว่า Edge ไม่สามารถตอบสนองต่อคำขอพอร์ต 8081 ได้
การแก้ปัญหา
- เข้าสู่ระบบเซิร์ฟเวอร์และเรียกใช้คำสั่งต่อไปนี้
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status - หากบริการไม่ทำงาน ให้เริ่มบริการ
/<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start - หลังจากรีสตาร์ท ให้ตรวจสอบว่าทำงานได้ตามปกติ
curl -v http://localhost:port/v1/servers/self/up
โดยที่ port คือ 8081 สำหรับเราเตอร์ และ 8082 สำหรับ Message Processor
Message Processor
การใช้ JConsole เพื่อตรวจสอบการตรวจสุขภาพของระบบและข้อมูลกระบวนการ
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 1101
การใช้การตรวจสอบ API ของ Edge Application
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเราเตอร์
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 8082
การใช้การตรวจสอบขั้นตอนของข้อความ JMX
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 1101
เซิร์ฟเวอร์ Qpid
การใช้ JConsole เพื่อตรวจสอบการตรวจสุขภาพของระบบและข้อมูลกระบวนการ
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 1102
การใช้การตรวจสอบ Edge Application API
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 8083 นอกจากนี้ Qpid Server ยังรองรับคำสั่ง CURL ต่อไปนี้ด้วย
curl http://<qpid_IP>:8083/v1/servers/self
เซิร์ฟเวอร์ Postgres
การใช้ JConsole เพื่อตรวจสอบการตรวจสุขภาพของระบบและข้อมูลกระบวนการ
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 1103
การใช้การตรวจสอบ Edge Application API
ทำตามขั้นตอนเดียวกับที่อธิบายไว้ข้างต้นสำหรับเซิร์ฟเวอร์การจัดการ
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 8084 นอกจากนี้ Postgres Server ยังรองรับคำสั่ง CURL ต่อไปนี้ด้วย
curl http://<postgres_IP>:8084/v1/servers/self
การใช้ Edge การตรวจสอบองค์กรและสภาพแวดล้อมของแอปพลิเคชัน
คุณสามารถตรวจสอบชื่อองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานในเซิร์ฟเวอร์ Postgres ได้โดยใช้คำสั่ง CURL ต่อไปนี้
curl http:// <postgres_IP>:8084/v1/servers/self/organizations
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 8084
ระบบควรแสดงชื่อองค์กรและสภาพแวดล้อม
การใช้การตรวจสอบ axstatus ของแอปพลิเคชัน Edge
คุณสามารถยืนยันสถานะของเซิร์ฟเวอร์การวิเคราะห์ได้โดยใช้คำสั่ง CURL ต่อไปนี้
curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus
ระบบควรแสดงสถานะ SUCCESS สำหรับเซิร์ฟเวอร์ Analytics ทั้งหมด เอาต์พุตของคำสั่ง CURL ด้านบนจะแสดงอยู่ด้านล่าง
{
"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
การใช้สคริปต์ check_postgres.pl
หากต้องการตรวจสอบฐานข้อมูล PostgreSQL คุณสามารถใช้สคริปต์การตรวจสอบมาตรฐาน check_postgres.pl ซึ่งมีให้ที่ http://bucardo.org/wiki/Check_postgres
หมายเหตุ: ต้องติดตั้งสคริปต์ check_postgres.pl ในโหนด Postgres แต่ละโหนด
ก่อนเรียกใช้สคริปต์ ให้ทำดังนี้
- ตรวจสอบว่าคุณได้ติดตั้ง perl-Time-HiRes.x86_64 ซึ่งเป็นโมดูล Perl ที่ใช้การปลุก การพักเครื่อง การเรียกใช้ gettimeofday และตัวจับเวลาเป็นช่วงที่มีความละเอียดสูง เช่น คุณสามารถติดตั้งโดยใช้คำสั่งต่อไปนี้
yum install perl-Time-HiRes.x86_64
เอาต์พุตเริ่มต้นของการเรียก API โดยใช้สคริปต์ check_postgres.pl เข้ากันได้กับ Nagios หลังจากติดตั้งสคริปต์แล้ว ให้ตรวจสอบสิ่งต่อไปนี้
- ขนาดฐานข้อมูล – ตรวจสอบขนาดฐานข้อมูล:
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' - การเชื่อมต่อขาเข้าไปยังฐานข้อมูล - ตรวจสอบจำนวนการเชื่อมต่อขาเข้าไปยังฐานข้อมูลและเปรียบเทียบกับการเชื่อมต่อสูงสุดที่อนุญาต:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends - ความพร้อมใช้งานและประสิทธิภาพของฐานข้อมูล - ตรวจสอบว่าฐานข้อมูลทำงานอยู่และพร้อมใช้งานหรือไม่
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection - พื้นที่ในดิสก์ – ตรวจสอบพื้นที่ในดิสก์:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%' - องค์กร/สภาพแวดล้อมที่เริ่มต้นใช้งาน - ตรวจสอบจำนวนองค์กรและสภาพแวดล้อมที่เริ่มต้นใช้งานในโหนด 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
หมายเหตุ: โปรดดู http://bucardo.org/check_postgres/check_postgres.pl.html ในกรณีที่คุณต้องการความช่วยเหลือเกี่ยวกับการใช้คำสั่งข้างต้น
การตรวจสอบ DB
คุณสามารถตรวจสอบว่ามีการสร้างตารางที่เหมาะสมในฐานข้อมูล PostgreSQL หรือไม่ เข้าสู่ระบบฐานข้อมูล PostgreSQL โดยใช้ข้อมูลต่อไปนี้
psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee
แล้วเรียกใช้คำสั่งต่อไปนี้
\d analytics."<org>.<env>.fact"
ตรวจสอบสถานะประสิทธิภาพของกระบวนการ postgres
คุณสามารถตรวจสอบ API ในเครื่อง Postgres ได้โดยเรียกใช้คำสั่ง CURL ต่อไปนี้
http://<postgres_IP>:8084/v1/servers/self/health/
หมายเหตุ: ตรวจสอบว่าคุณใช้พอร์ต 8084
โดยจะแสดงสถานะ "ACTIVE" เมื่อกระบวนการ postgres ทำงานอยู่ หากกระบวนการ postgres ไม่ทำงาน ระบบจะแสดงสถานะ "INACTIVE"
แหล่งข้อมูล Postgres
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
Apache Cassandra
การใช้ JConsole - ตรวจสอบสถิติงาน
ใช้ JConsole และ URL บริการต่อไปนี้เพื่อตรวจสอบแอตทริบิวต์ JMX (MBeans) ที่เสนอผ่าน JMX
service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi
โดยที่ <ที่อยู่ IP> คือ ที่อยู่ IP ของเซิร์ฟเวอร์ Cassandra
ระบบจะเปิดใช้ JMX โดยค่าเริ่มต้นสำหรับ Cassandra และการเข้าถึง JMX ระยะไกลไปยัง Cassandra ไม่จำเป็นต้องใช้รหัสผ่าน
วิธีเปิดใช้การตรวจสอบสิทธิ์ JMX เพื่อเพิ่มรหัสผ่าน
- แก้ไข /<inst_root>/apigee/customer/application/cassandra.properties หากไม่มีไฟล์ ให้สร้างไฟล์
- เพิ่มโค้ดต่อไปนี้ลงในไฟล์
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - บันทึกไฟล์
- คัดลอกไฟล์ต่อไปนี้จากไดเรกทอรี $JAVA_HOME ไปยัง /<inst_root>/apigee/data/apigee-cassandra/:
cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access - แก้ไข jmxremote.password และเพิ่มชื่อผู้ใช้และรหัสผ่านลงในไฟล์:
cassandra password
โดยที่ password คือรหัสผ่าน JMX - แก้ไข jmxremote.access และเพิ่มบทบาทต่อไปนี้
cassandra readwrite - ตรวจสอบว่าไฟล์เป็นของ "apigee" และโหมดไฟล์เป็น 400:
> chown apigee:apigee /<inst_root>/apigee/data/apigee-cassandra/jmxremote.*
> chmod 400 /<inst_root>/apigee/data/apigee-cassandra/jmxremote.* - เรียกใช้ configure ใน Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - รีสตาร์ท Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
หากต้องการปิดใช้การตรวจสอบสิทธิ์ในภายหลัง ให้ทำดังนี้
- แก้ไข /<inst_root>/apigee/customer/application/cassandra.properties
- นำบรรทัดต่อไปนี้ออกจากไฟล์
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true - เรียกใช้การกำหนดค่าใน Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra configure - รีสตาร์ท Cassandra:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
สถิติ 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 ใช้เพื่อจัดการโหนดคลัสเตอร์ โดยจะดูยูทิลิตีได้ที่ <inst_root>/apigee/apigee-cassandra/bin
ดูข้อมูลเพิ่มเติมเกี่ยวกับยูทิลิตี nodetool ได้ที่ http://www.datastax.com/docs/1.0/references/nodetool
คุณสามารถโทรออกต่อไปนี้ได้ในโหนดคลัสเตอร์ Cassandra ทั้งหมด
- ข้อมูลวงแหวนทั่วไป (ใช้ได้กับโหนด Cassandra โหนดเดียวด้วย): มองหา "Up" และ "Normal" สำหรับโหนดทั้งหมด
[host]# nodetool -h localhost ring
เอาต์พุตของคำสั่งด้านบนจะมีลักษณะดังที่แสดงด้านล่าง
Address DC Rack Status State Load Owns Token
192.168.124.201 dc1 ra1 Up Normal 1.67 MB 33,33% 0
192.168.124.202 dc1 ra1 Up Normal 1.68 MB 33,33% 56713727820156410577229101238628035242
192.168.124.203 dc1 ra1 Up Normal 1.67 MB 33,33% 113427455640312821154458202477256070484 - ข้อมูลทั่วไปเกี่ยวกับโหนด (การเรียกต่อโหนด)
nodetool -h localhost info
เอาต์พุตของคำสั่งด้านบนจะมีลักษณะดังที่แสดงด้านล่าง
Token : 0
Gossip active : true
Load : 1.67 MB
Generation No : 1361968765
Uptime (seconds) : 78108
Heap Memory (MB) : 46,80 / 772,00
Data Center : ศูนย์ข้อมูล
Rack : ra1
Exceptions : 0 - สถานะของเซิร์ฟเวอร์ Thrift (API ของไคลเอ็นต์ที่แสดงผล)
host]# nodetool -h localhost statusthrift
เอาต์พุตของคำสั่งด้านบนจะแสดงสถานะเป็น "running" - สถานะของการดำเนินการสตรีมข้อมูล: สังเกตการเข้าชมสำหรับโหนด Cassandra
nodetool -h localhost netstats 192.168.124.203
เอาต์พุตของคำสั่งด้านบนจะมีลักษณะดังที่แสดงด้านล่าง
Mode: NORMAL
Nothing streaming to /192.168.124.203
Nothing streaming from /192.168.124.203
Pool Name Active Pending Completed
Commands n/a 0 1688
Responses n/a 0 292277
การตรวจสอบ Cassandra (UI)
ดู URL ของ datastax opscenter: http://www.datastax.com/products/opscenter
แหล่งข้อมูล Cassandra
โปรดดู URL ต่อไปนี้ http://www.datastax.com/docs/1.0/operations/monitoring
Apache ZooKeeper
กำลังตรวจสอบสถานะ ZooKeeper
- ตรวจสอบว่ากระบวนการ ZooKeeper ทำงานอยู่ ZooKeeper จะเขียนไฟล์ PID ไปยัง <inst_root>/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
- ทดสอบพอร์ต ZooKeeper เพื่อให้แน่ใจว่าคุณสามารถสร้างการเชื่อมต่อ TCP กับพอร์ต 2181 และ 3888 ในเซิร์ฟเวอร์ ZooKeeper ทุกเครื่องได้
- ตรวจสอบว่าคุณอ่านค่าจากฐานข้อมูล ZooKeeper ได้ เชื่อมต่อโดยใช้ไลบรารีของไคลเอ็นต์ ZooKeeper (หรือ /<inst_root>/apigee/apigee-zookeeper/bin/zkCli.sh) และอ่านค่าจากฐานข้อมูล
- ตรวจสอบสถานะ:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
การใช้คำ 4 ตัวอักษรของ ZooKeeper
คุณสามารถตรวจสอบ ZooKeeper ได้ผ่านชุดคำสั่งขนาดเล็ก (คำ 4 ตัวอักษร) ที่ส่งไปยังพอร์ต 2181 โดยใช้ netcat (nc) หรือ telnet
ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง ZooKeeper ได้ที่ http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands
เช่น
- srvr: แสดงรายละเอียดทั้งหมดของเซิร์ฟเวอร์
- stat: แสดงรายละเอียดโดยย่อสำหรับเซิร์ฟเวอร์และไคลเอ็นต์ที่เชื่อมต่อ
คุณสามารถออกคำสั่งต่อไปนี้ไปยังพอร์ต ZooKeeper ได้
- เรียกใช้คำสั่ง 4 ตัวอักษร ruok เพื่อทดสอบว่าเซิร์ฟเวอร์ทำงานในสถานะที่ไม่มีข้อผิดพลาดหรือไม่ การตอบกลับที่สำเร็จจะแสดงผลเป็น "imok"
echo ruok | nc <host> 2181
ผลลัพธ์:
imok - เรียกใช้คำสั่ง 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
หมายเหตุ: บางครั้งการดูว่า ZooKeeper อยู่ในโหมดใดก็เป็นสิ่งสำคัญ เช่น โหมด Leader, Follower หรือ Observer - หากไม่มี 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
OpenLDAP
การทดสอบระดับ LDAP
คุณสามารถตรวจสอบ OpenLDAP เพื่อดูว่าคำขอที่เฉพาะเจาะจงได้รับการตอบสนองอย่างถูกต้องหรือไม่ กล่าวคือ ให้ตรวจสอบการค้นหาที่เฉพาะเจาะจงซึ่งแสดงผลการค้นหาที่ถูกต้อง
- ใช้ 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 - ตรวจสอบว่าเซิร์ฟเวอร์การจัดการยังคงเชื่อมต่อกับปัญหา LDAP หรือไม่:
curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>
ผลลัพธ์:
{
"emailId" : <ADMIN>,
"firstName" : "admin",
"lastName" : "admin"
}
นอกจากนี้ คุณยังตรวจสอบแคช OpenLDAP ได้ด้วย ซึ่งจะช่วยลดจำนวนการเข้าถึงดิสก์และปรับปรุงประสิทธิภาพของระบบ การตรวจสอบแล้วปรับขนาดแคชในเซิร์ฟเวอร์ OpenLDAP อาจส่งผลต่อประสิทธิภาพของเซิร์ฟเวอร์ไดเรกทอรีอย่างมาก คุณสามารถดูไฟล์บันทึก (<inst_root>/apigee/var/log) เพื่อดูข้อมูลเกี่ยวกับแคชได้