Thông tin cần theo dõi

Thông thường, trong chế độ thiết lập sản xuất, bạn nên bật các cơ chế giám sát trong quá trình triển khai Apigee Edge cho Đám mây riêng tư. Những kỹ thuật giám sát này cảnh báo cho quản trị viên (hoặc người vận hành) mạng về lỗi hoặc sự cố. Mọi lỗi phát sinh đều được báo cáo dưới dạng cảnh báo trong Apigee Edge. Để biết thêm thông tin về cảnh báo, hãy xem bài viết Các phương pháp hay nhất về hoạt động giám sát.

Các thành phần Apigee chủ yếu được phân loại thành hai danh mục:

  • Các dịch vụ máy chủ Java dành riêng cho Apigee: Các dịch vụ này bao gồm Máy chủ quản lý, Trình xử lý thông báo, Máy chủ Qpid và Máy chủ Postgres.
  • Dịch vụ của bên thứ ba: Các dịch vụ này bao gồm Nginx Router, Apache Cassandra, Apache ZooKeeper, SymasLDAP, cơ sở dữ liệu PostgreSQL và Qpid.

Trong quá trình triển khai Apigee Edge tại chỗ, bảng sau đây cung cấp thông tin tổng quan nhanh về các thông số mà bạn có thể theo dõi:

Thành phần Kiểm tra hệ thống Số liệu thống kê ở cấp quy trình Kiểm tra cấp độ API Kiểm tra luồng thông báo Cụ thể theo thành phần

Các dịch vụ Java dành riêng cho Apigee

Máy chủ quản lý

Trình xử lý thông báo

Máy chủ Qpid

Máy chủ Postgres

Dịch vụ bên thứ ba

Apache Cassandra

Apache ZooKeeper

SymasLDAP

Cơ sở dữ liệu PostgreSQL

Qpid

Bộ định tuyến Nginx

Nhìn chung, sau khi cài đặt Apigee Edge, bạn có thể thực hiện các tác vụ giám sát sau đây để theo dõi hiệu suất của một bản cài đặt Apigee Edge cho Đám mây riêng.

Kiểm tra tình trạng hệ thống

Điều rất quan trọng là phải đo lường các thông số về tình trạng hệ thống, chẳng hạn như mức sử dụng CPU, mức sử dụng bộ nhớ và khả năng kết nối cổng ở cấp độ cao hơn. Bạn có thể theo dõi các thông số sau để nắm được thông tin cơ bản về tình trạng hệ thống.

  • Mức sử dụng CPU: Chỉ định số liệu thống kê cơ bản (Người dùng/Hệ thống/Thời gian chờ IO/Không hoạt động) về mức sử dụng CPU. Ví dụ: tổng lượng CPU mà hệ thống sử dụng.
  • Bộ nhớ trống/đã sử dụng: Chỉ định mức sử dụng bộ nhớ hệ thống theo byte. Ví dụ: bộ nhớ thực mà hệ thống sử dụng.
  • Mức sử dụng dung lượng ổ đĩa: Chỉ định thông tin hệ thống tệp dựa trên mức sử dụng ổ đĩa hiện tại. Ví dụ: dung lượng ổ đĩa cứng mà hệ thống sử dụng.
  • Mức tải trung bình: Chỉ định số lượng quy trình đang chờ chạy.
  • Số liệu thống kê về mạng: Số lượng gói và/hoặc byte mạng đã truyền và nhận, cùng với các lỗi truyền về một thành phần cụ thể.

Quy trình/kiểm tra ứng dụng

Ở cấp quy trình, bạn có thể xem thông tin quan trọng về tất cả các quy trình đang chạy. Ví dụ: các số liệu thống kê này bao gồm mức sử dụng bộ nhớ và CPU mà một quy trình hoặc ứng dụng sử dụng. Đối với các quy trình như Qpid, Postgres Postmaster, Java, v.v., bạn có thể giám sát những quy trình sau:

  • Nhận dạng quy trình: Nhận dạng một quy trình cụ thể của Apigee. Ví dụ: bạn có thể theo dõi sự tồn tại của một quy trình Java trên máy chủ Apigee.
  • Số liệu thống kê về luồng: Xem các mẫu luồng cơ bản mà một quy trình sử dụng. Ví dụ: bạn có thể theo dõi số lượng luồng tối đa, số lượng luồng cho tất cả các quy trình.
  • Mức sử dụng bộ nhớ: Xem mức sử dụng bộ nhớ cho tất cả các quy trình của Apigee. Ví dụ: bạn có thể theo dõi các thông số như mức sử dụng bộ nhớ heap, mức sử dụng bộ nhớ không phải heap mà một quy trình sử dụng.

Các bước kiểm tra cấp độ API

Ở cấp độ API, bạn có thể theo dõi xem một máy chủ có đang hoạt động hay không đối với các lệnh gọi API thường dùng được uỷ quyền bởi Apigee. Ví dụ: bạn có thể thực hiện kiểm tra API trên Máy chủ quản lý, Bộ định tuyến và Trình xử lý thông báo bằng cách gọi lệnh curl sau đây:

curl http://host:port/v1/servers/self/up

Trong đó host là địa chỉ IP của thành phần Apigee Edge. Số port dành riêng cho từng thành phần Edge. Ví dụ:

Máy chủ quản lý: 8080

  • Bộ định tuyến: 8081
  • Trình xử lý thông báo: 8082
  • v.v.

Hãy xem từng phần bên dưới để biết thông tin về cách chạy lệnh này cho từng thành phần

Lệnh gọi này trả về giá trị "true" và "false". Để có kết quả tốt nhất, bạn cũng có thể đưa ra các lệnh gọi API trực tiếp trên phụ trợ (nơi phần mềm Apigee tương tác) để nhanh chóng xác định xem có lỗi trong môi trường phần mềm Apigee hay trên phụ trợ hay không.

Kiểm tra luồng tin nhắn

Bạn có thể thu thập dữ liệu từ Bộ định tuyến và Bộ xử lý thông báo về mẫu/số liệu thống kê luồng thông báo. Nhờ đó, bạn có thể giám sát những thông tin sau:

  • Số lượng ứng dụng đang hoạt động
  • Số lượng phản hồi (10X, 20X, 30X, 40X và 50X)
  • Không kết nối được

Điều này giúp bạn cung cấp trang tổng quan cho luồng thông báo API. Để biết thêm thông tin, hãy xem bài viết Cách giám sát.

Kiểm tra tình trạng bộ định tuyến của Trình xử lý tin nhắn

Bộ định tuyến triển khai một cơ chế kiểm tra tình trạng để xác định Bộ xử lý thông báo nào đang hoạt động như mong đợi. Nếu phát hiện thấy Bộ xử lý tin nhắn bị ngừng hoạt động hoặc hoạt động chậm, Bộ định tuyến có thể tự động loại Bộ xử lý tin nhắn ra khỏi vòng luân phiên. Nếu điều đó xảy ra, Bộ định tuyến sẽ ghi thông báo "Đánh dấu" vào tệp nhật ký Bộ định tuyến tại /opt/apigee/var/log/edge-router/logs/system.log.

Bạn có thể theo dõi tệp nhật ký của Bộ định tuyến để xem những thông báo này. Ví dụ: nếu Bộ định tuyến loại bỏ một Trình xử lý thông báo khỏi vòng quay, thì Bộ định tuyến sẽ ghi thông báo vào nhật ký ở dạng:

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = MP_IP at 1399409512159
2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /MP_IP:PORT Mark Down

Trong đó, MP_IP:PORT là địa chỉ IP và số cổng của Trình xử lý thông báo.

Nếu sau đó Bộ định tuyến thực hiện kiểm tra tình trạng và xác định rằng Trình xử lý thông báo đang hoạt động đúng cách, thì Bộ định tuyến sẽ tự động đưa Trình xử lý thông báo trở lại vòng luân phiên. Bộ định tuyến cũng ghi thông báo "Đánh dấu" vào nhật ký dưới dạng:

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = IP at 1399410449054
2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from IP:PORT Mark Up