Cách theo dõi

Edge cho đám mây riêng tư phiên bản 4.19.01

Tài liệu này mô tả kỹ thuật giám sát các thành phần được hỗ trợ bởi quá trình triển khai tại chỗ của Apigee Edge.

Tổng quan

Edge hỗ trợ một số cách để lấy thông tin chi tiết về các dịch vụ cũng như kiểm tra trạng thái của các dịch vụ đó. Bảng sau đây liệt kê các loại quy trình kiểm tra mà bạn có thể thực hiện đối với từng dịch vụ đủ điều kiện:

API Mgmt
Dịch vụ Mức sử dụng bộ nhớ [JMX*] Kiểm tra dịch vụ Trạng thái triển khai/người dùng/ tổ chức axstatus Kiểm tra cơ sở dữ liệu Trạng thái của apigee-service apigee-monit**
Máy chủ quản lý
Bộ xử lý thư
Postgres
Qpid
Bộ định tuyến
Thông tin khác Thông tin khác Thông tin khác Thông tin khác Thông tin khác Thông tin khác Thông tin khác

* Để có thể sử dụng JMX, bạn phải bật JMX, như mô tả trong phần Bật JMX.

** Dịch vụ apigee-monit kiểm tra xem một thành phần nào đó có hoạt động hay không và sẽ cố gắng khởi động lại nếu thành phần đó chưa hoạt động. Để biết thêm thông tin, hãy xem bài viết Tự khắc phục bằng apigee-monit.

Cổng giám sát JMX và API Quản lý

Mỗi thành phần đều hỗ trợ các lệnh gọi giám sát JMX và API Quản lý trên các cổng khác nhau. Bảng sau liệt kê các cổng JMX và API Quản lý cho từng loại máy chủ:

Thành phần Cổng JMX Cổng API quản lý
Máy chủ quản lý 1099 8080
Bộ định tuyến 1100 8081
Bộ xử lý thư 1101 8082
Qpid 1102 8083
Postgres 1103 8084

Sử dụng JMX để giám sát

Các quy trình giám sát của Máy chủ quản lý, Trình xử lý thông báo, Qpid và Postgres đều sử dụng JMX. Tuy nhiên, theo mặc định, JMX chỉ được bật cho Cassandra và tắt theo mặc định đối với tất cả các thành phần khác của Edge. Do đó, bạn phải bật riêng JMX cho từng thành phần trước khi có thể theo dõi các thành phần đó.

Tính năng xác thực JMX không được bật theo mặc định. Bạn có thể bật tính năng xác thực JMX cho tất cả các thành phần. Đối với Cassandra, hãy sử dụng hướng dẫn trong bài viết Bật chế độ xác thực JMX cho Cassandra.

Bật JMX

JMX chỉ được bật theo mặc định cho Cassandra và tắt theo mặc định đối với tất cả các thành phần khác của Edge. Phần này mô tả cách bật JMX cho các thành phần khác của Edge.

Cách bật JMX:

  1. Chỉnh sửa tệp cấu hình của thành phần. Tệp này nằm ở opt/apigee/edge-component_name/bin/start. Trong môi trường thực tế, các tệp cấu hình này sẽ nằm trên các máy khác nhau.

    Chọn trong số các vị trí tệp sau trên mỗi máy chủ:

    • Máy chủ quản lý: /opt/apigee/edge-management-server/bin/start
    • Bộ xử lý thư: /opt/apigee/edge-message-processor/bin/start
    • Áp phích: /opt/apigee/edge-postgres-server/bin/start
    • Qpid: /opt/apigee/edge-qpid-server/bin/start
    • Bộ định tuyến: /opt/apigee/edge-router/bin/start

    Ví dụ: tệp cấu hình của Máy chủ quản lý trên máy chủ này nằm tại /opt/apigee/edge-management-server/bin/start.

  2. Thêm các tuỳ chọn com.sun.management.jmxremote sau vào dòng exec để bắt đầu thành phần:
    -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

    Trong đó port_number là cổng JMX dành cho dịch vụ. Để biết số cổng JMX của dịch vụ, hãy xem phần Cổng theo dõi JMX và API Quản lý.

    Ví dụ: để bật JMX trên Máy chủ quản lý, hãy thêm phần sau vào tệp cấu hình của Máy chủ quản lý:

    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

    Ví dụ này chỉ định cổng 1099 cho Máy chủ quản lý. Như đã nêu trước đó, mỗi dịch vụ có số cổng riêng.

    Dòng được chỉnh sửa trong tệp cấu hình sẽ có dạng như sau:

    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. Lưu tệp cấu hình.
  4. Khởi động lại thành phần bằng lệnh restart.

    Ví dụ: để khởi động lại Máy chủ quản lý, hãy thực thi lệnh sau:

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

Theo mặc định, tính năng xác thực cho JMX không được bật. Bạn có thể bật tính năng xác thực JMX cho tất cả các thành phần, như mô tả trong phần Bật tính năng xác thực JMX. Để bật tính năng xác thực JMX cho Cassandra, hãy xem phần Bật tính năng xác thực JMX cho Cassandra.

Bật xác thực JMX

Tính năng xác thực JMX không được bật theo mặc định. Bạn có thể bật tính năng xác thực JMX cho tất cả các thành phần. Đối với Cassandra, hãy sử dụng hướng dẫn trong bài viết Bật phương thức xác thực JMX cho Cassandra

Để bật tính năng xác thực JMX, hãy thực thi thao tác change_jmx_auth sau đây trên tất cả các nút:

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

Trong trường hợp:

  • component là một trong những trạng thái sau đây:
    • edge-management-server
    • edge-message-processor
    • edge-postgres-server
    • edge-qpid-server
    • edge-router
  • options chỉ định những điều sau:
    • -u username
    • -p password
    • -e [y|n] (bật hoặc tắt)
  • config_file chỉ định vị trí của tệp cấu hình mà bạn xác định những nội dung sau:
    • JMX_USERNAME=username
    • JMX_ENABLED=y|n
    • JMX_PASSWORD=password (nếu không được đặt hoặc không được truyền bằng -p, bạn sẽ được nhắc)

Bạn có thể sử dụng các tuỳ chọn dòng lệnh hoặc tệp cấu hình để xác định tên người dùng, mật khẩu và trạng thái bật/tắt. Bạn không chỉ định cả một tập hợp các tuỳ chọn và một tệp cấu hình.

Ví dụ sau đây bật tính năng xác thực JMX cho Máy chủ quản lý bằng cách sử dụng các tuỳ chọn dòng lệnh:

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

Ví dụ sau đây sử dụng tệp cấu hình thay vì các tuỳ chọn dòng lệnh:

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

Nếu bạn đang chạy Edge trên nhiều nút, hãy chạy lệnh này trên tất cả các nút, chỉ định cùng một tên người dùng và mật khẩu.

Để tắt tính năng xác thực JMX trên dòng lệnh, hãy sử dụng tuỳ chọn "-e n" như trong ví dụ sau:

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

Giám sát bằng JConsole

Sử dụng JConsole (một công cụ tương thích với JMX) để quản lý và giám sát quá trình kiểm tra tình trạng và xử lý số liệu thống kê. Với JConsole, bạn có thể sử dụng số liệu thống kê JMX do máy chủ của mình hiển thị và hiển thị các số liệu đó trong giao diện đồ hoạ. Để biết thêm thông tin, hãy xem phần Sử dụng JConsole.

JConsole sử dụng URL dịch vụ sau đây để giám sát các thuộc tính JMX (MBeans) được cung cấp thông qua JMX:

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

Trong trường hợp:

  • IP_address là địa chỉ IP của máy chủ bạn muốn giám sát.
  • port_numbersố cổng JMX của máy chủ bạn muốn theo dõi.

Ví dụ: để giám sát Máy chủ quản lý, hãy phát một lệnh như sau (giả sử địa chỉ IP của máy chủ là 216.3.128.12):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

Lưu ý rằng ví dụ này chỉ định cổng 1099, là cổng JMX của máy chủ quản lý. Đối với các cổng khác, hãy xem các cổng theo dõi JMX và Management API.

Bảng sau đây trình bày số liệu thống kê JMX chung:

Tiếng JMX MB Thuộc tính JMX

Bộ nhớ

HeapMemoryUsage

NonHeapMemoryUsage

Cách sử dụng

Giám sát bằng API Quản lý

Edge bao gồm một số API mà bạn có thể sử dụng để kiểm tra dịch vụ trên máy chủ cũng như kiểm tra người dùng, tổ chức và hoạt động triển khai của mình. Phần này mô tả các API này.

Kiểm tra dịch vụ

API Quản lý cung cấp một số điểm cuối để theo dõi và chẩn đoán các vấn đề xảy ra với các dịch vụ của bạn. Các điểm cuối này bao gồm:

Điểm cuối Nội dung mô tả
/servers/self/up

Kiểm tra xem dịch vụ có đang chạy hay không. Lệnh gọi API này không yêu cầu bạn xác thực.

Nếu dịch vụ đang chạy, điểm cuối này sẽ trả về phản hồi sau:

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

Nếu dịch vụ không chạy, bạn sẽ nhận được phản hồi tương tự như sau (tuỳ thuộc vào dịch vụ và cách bạn kiểm tra):

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

Trả về thông tin về dịch vụ, bao gồm:

  • Thuộc tính cấu hình
  • Thời gian bắt đầu và thời gian hoạt động
  • Thông tin về bản dựng, RPM và UUID
  • Tên máy chủ và địa chỉ IP nội bộ cũng như bên ngoài
  • Khu vực và nhóm
  • Thuộc tính <isUp> cho biết dịch vụ có đang chạy hay không

Lệnh gọi API này yêu cầu bạn xác thực bằng thông tin xác thực của quản trị viên Apigee.

Để sử dụng các điểm cuối này, hãy gọi một tiện ích như curl bằng các lệnh sử dụng cú pháp sau:

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]"

Trong trường hợp:

  • host là địa chỉ IP của máy chủ bạn muốn kiểm tra. Nếu đăng nhập vào máy chủ, bạn có thể sử dụng "localhost"; nếu không, hãy chỉ định địa chỉ IP của máy chủ cũng như tên người dùng và mật khẩu.
  • port_number là cổng API quản lý cho máy chủ bạn muốn kiểm tra. Đây là một cổng riêng cho từng loại thành phần. Ví dụ: cổng API Quản lý của Máy chủ quản lý là 8080. Để biết danh sách số cổng API Quản lý cần sử dụng, hãy xem phần Các cổng theo dõi JMX và API Quản lý

Để thay đổi định dạng của phản hồi, bạn có thể chỉ định tiêu đề Accept là "application/json" hoặc "application/xml".

Ví dụ sau đây minh hoạ trạng thái của Bộ định tuyến trên localhost (cổng 8081):

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

Ví dụ sau đây lấy thông tin về Bộ xử lý thư tại địa chỉ 216.3.128.12 (cổng 8082):

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

Theo dõi trạng thái người dùng, tổ chức và hoạt động triển khai

Bạn có thể sử dụng Management API để theo dõi trạng thái người dùng, tổ chức và triển khai của các proxy trên Máy chủ quản lý và Bộ xử lý thư bằng cách phát các lệnh sau:

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

Trong đó port_number là 8080 đối với Máy chủ quản lý hoặc 8082 đối với Bộ xử lý thông báo.

Cuộc gọi này yêu cầu bạn xác thực bằng tên người dùng và mật khẩu quản trị viên hệ thống của mình.

Máy chủ sẽ trả về trạng thái "đã triển khai" cho tất cả lệnh gọi. Nếu những trường hợp này không thành công, hãy làm như sau:

  1. Hãy kiểm tra nhật ký máy chủ để xem có bất kỳ lỗi nào không. Nhật ký được đặt tại:
    • Máy chủ quản lý: opt/apigee/var/log/edge-management-server
    • Bộ xử lý thư: opt/apigee/var/log/edge-message-processor
  2. Hãy gọi đến máy chủ để kiểm tra xem máy chủ có đang hoạt động đúng cách không.
  3. Xoá máy chủ khỏi ELB rồi khởi động lại:
    /opt/apigee/apigee-service/bin/apigee-service service_name restart

    Trong trường hợp service_name hiện diện:

    • edge-management-server
    • edge-message-processor

Kiểm tra trạng thái bằng lệnh apigee-service

Bạn có thể khắc phục sự cố cho các dịch vụ Edge bằng cách sử dụng lệnh apigee-service khi đăng nhập vào máy chủ đang chạy dịch vụ.

Cách kiểm tra trạng thái của một dịch vụ bằng apigee-service:

  1. Đăng nhập vào máy chủ và chạy lệnh sau:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    Trong đó service_name là một trong những trạng thái sau:

    • Máy chủ quản lý: edge-management-server
    • Bộ xử lý thư: edge-message-processor
    • Áp phích: edge-postgres-server
    • Qpid: edge-qpid-server
    • Bộ định tuyến: edge-router

    Ví dụ:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. Nếu dịch vụ không chạy, hãy khởi động dịch vụ:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. Sau khi khởi động lại dịch vụ, hãy kiểm tra xem dịch vụ có đang hoạt động hay không bằng cách dùng lệnh apigee-service status mà bạn đã dùng trước đó hoặc dùng API Quản lý được mô tả trong phần Giám sát bằng API Quản lý.

    Ví dụ:

    curl -v http://localhost:port_number/v1/servers/self/up

    Trong đó port_numbercổng API Quản lý cho dịch vụ.

    Ví dụ này giả định bạn đã đăng nhập vào máy chủ và có thể sử dụng "localhost" làm tên máy chủ. Để kiểm tra trạng thái từ xa bằng API Quản lý, bạn phải chỉ định địa chỉ IP của máy chủ và bao gồm tên người dùng và mật khẩu của quản trị viên hệ thống trong lệnh gọi API.

Theo dõi bưu chính

Postgres hỗ trợ một số tiện ích mà bạn có thể dùng để kiểm tra trạng thái của ứng dụng đó. Các tiện ích này được mô tả trong các phần tiếp theo.

Kiểm tra tổ chức và môi trường trên Postgres

Bạn có thể kiểm tra tên tổ chức và tên môi trường đã được giới thiệu trên Máy chủ Postgres bằng cách phát lệnh curl sau:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

Hệ thống phải hiển thị tên tổ chức và tên môi trường.

Xác minh trạng thái phân tích

Bạn có thể xác minh trạng thái của máy chủ phân tích Postgres và Qpid bằng cách phát lệnh curl sau:

curl -u userEmail:password http://host:port_number/v1/organizations/orgname/environments/envname/provisioning/axstatus

Hệ thống sẽ hiển thị trạng thái thành công cho tất cả máy chủ phân tích, như trong ví dụ sau:

{
  "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"
}

Cơ sở dữ liệu PostgreSQL

Phần này mô tả các kỹ thuật mà bạn có thể dùng riêng để theo dõi cơ sở dữ liệu Postgres.

Sử dụng tập lệnh check_postgres.pl

Để theo dõi cơ sở dữ liệu PostgreSQL, bạn có thể sử dụng tập lệnh giám sát tiêu chuẩn là check_postgres.pl. Để biết thêm thông tin, hãy xem http://bucardo.org/wiki/Check_postgres.

Trước khi bạn chạy tập lệnh:

  1. Bạn phải cài đặt tập lệnh check_postgres.pl trên mỗi nút Postgres.
  2. Hãy đảm bảo rằng bạn đã cài đặt perl-Time-HiRes.x86_64, một mô-đun Perl giúp triển khai đồng hồ hẹn giờ, giờ ngủ, giờ nghỉ trong ngày và khoảng thời gian có độ phân giải cao. Ví dụ: bạn có thể cài đặt ứng dụng này bằng cách dùng lệnh sau:
    yum install perl-Time-HiRes.x86_64
  3. CentOS 7: Trước khi sử dụng check_postgres.pl trên CentOS v7, hãy cài đặt RPM perl-Data-Dumper.x86_64.

kết quả check_postgres.pl

Đầu ra mặc định của các lệnh gọi API sử dụng check_postgres.pl sẽ tương thích với Nagios. Sau khi cài đặt tập lệnh, hãy thực hiện các bước kiểm tra sau:

  1. Kiểm tra kích thước cơ sở dữ liệu:
    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. Kiểm tra số lượng kết nối đến với cơ sở dữ liệu và so sánh với số lượng kết nối tối đa được phép:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. Kiểm tra xem cơ sở dữ liệu có đang chạy và có sẵn hay không:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. Kiểm tra dung lượng ổ đĩa:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. Kiểm tra số lượng tổ chức và môi trường đã giới thiệu trong nút 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

Chạy quá trình kiểm tra cơ sở dữ liệu

Bạn có thể xác minh rằng các bảng thích hợp được tạo trong cơ sở dữ liệu PostgreSQL. Đăng nhập vào cơ sở dữ liệu PostgreSQL bằng lệnh sau:

psql -h /opt/apigee/var/run/apigee-postgresql/ -U apigee -d apigee

Sau đó, chạy:

\d analytics."org.env.fact"

Kiểm tra tình trạng của quy trình đăng

Bạn có thể thực hiện các bước kiểm tra API trên máy Postgres bằng cách gọi lệnh curl sau:

curl -v http://postgres_IP:8084/v1/servers/self/health

Lệnh này trả về trạng thái ACTIVE khi quy trình postgres đang hoạt động. Nếu không hoạt động và chạy, quy trình Postgres sẽ trả về trạng thái INACTIVE.

Tài nguyên Postgres

Để biết thêm thông tin về cách theo dõi dịch vụ Postgres, hãy xem các phần sau:

Apache Cassandra

JMX được bật theo mặc định cho Cassandra và quyền truy cập JMX từ xa vào Cassandra không yêu cầu mật khẩu.

Bật xác thực JMX cho Cassandra

Bạn có thể bật xác thực JMX cho Cassandra. Sau đó, bạn sẽ được yêu cầu truyền tên người dùng và mật khẩu cho tất cả các lệnh gọi đến tiện ích nodetool.

Cách bật phương thức xác thực JMX cho Cassandra:

  1. Tạo và chỉnh sửa tệp cassandra.properties:
    1. Chỉnh sửa tệp /opt/apigee/customer/application/cassandra.properties. Nếu tệp này chưa có, hãy tạo tệp đó.
    2. Thêm phần sau vào tệp:
      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. Lưu tệp cassandra.properties.
    4. Thay đổi chủ sở hữu của tệp thành "apigee:apigee", như trong ví dụ sau:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

    Để biết thêm thông tin về cách sử dụng các tệp thuộc tính để đặt mã thông báo, hãy xem phần Cách định cấu hình Edge.

  2. Tạo và chỉnh sửa jmx_auth.sh:
    1. Tạo một tệp tại vị trí sau đây nếu chưa có tệp:
      /opt/apigee/customer/application/jmx_auth.sh
    2. Thêm các thuộc tính sau vào tệp:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. Lưu tệp jmx_auth.sh.
    4. Tìm nguồn của tệp:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. Sao chép và chỉnh sửa tệp jmxremote.password:
    1. Sao chép tệp sau từ thư mục $JAVA_HOME vào /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password
    2. Chỉnh sửa tệp jmxremote.password, rồi thêm tên người dùng và mật khẩu JMX của bạn bằng cú pháp sau:
      JMX_USERNAME JMX_PASSWORD

      Trong đó JMX_USERNAMEJMX_PASSWORD là tên người dùng và mật khẩu JMX mà bạn đã đặt trước đó.

    3. Đảm bảo tệp thuộc sở hữu của "apigee" và chế độ tệp là 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.password
  4. Sao chép và chỉnh sửa tệp jmxremote.access:
    1. Sao chép tệp sau từ thư mục $JAVA_HOME vào /opt/apigee/data/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
    2. Chỉnh sửa tệp jmxremote.access và thêm vai trò sau:
      JMX_USERNAME readwrite
    3. Đảm bảo tệp thuộc sở hữu của "apigee" và chế độ tệp là 400:
      chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.access
  5. Chạy configure trên Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. Khởi động lại Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. Lặp lại quá trình này trên tất cả các nút Cassandra khác.

Bật tính năng mã hoá mật khẩu JMX

Để bật tính năng mã hoá mật khẩu JMX, hãy làm theo các bước sau:

  1. Mở tệp source/conf/casssandra-env.sh.
  2. Huỷ nhận xét các dòng sau trong tệp:
    • 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. Trên dòng lệnh, hãy tạo(các) hàm băm SHA1 của(các) mật khẩu mong muốn bằng cách nhập echo -n 'Secret' | openssl dgst -sha1
  4. Đặt(các) mật khẩu theo tên người dùng trong jmxremote.password.
  5. Chuyển tệp cassandra-env.sh trở lại chế độ chỉ đọc sau khi cập nhật.

Tắt phương thức xác thực JMX cho Cassandra

Cách tắt tính năng xác thực JMX cho Cassandra:

  1. Chỉnh sửa /opt/apigee/customer/application/cassandra.properties.
  2. Xoá dòng sau trong tệp:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. Chạy cấu hình trên Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. Khởi động lại Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. Lặp lại quá trình này trên tất cả các nút Cassandra khác.

Sử dụng JConsole: Theo dõi số liệu thống kê về tác vụ

Sử dụng JConsole và URL dịch vụ sau đây để giám sát các thuộc tính JMX (MBeans) được cung cấp thông qua JMX:

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

Trong đó IP_address là IP của máy chủ Cassandra.

Số liệu thống kê về Cassandra JMX

Tiếng JMX MB Thuộc tính JMX

Cột gia đình/apprepo/môi trường

Cột gia đình/ứng dụng/tổ chức

Cột gia đình/apprepo/apiproxy_revisions

Cột gia đình/apprepo/apiproxies

Cột gia đình/kiểm tra/kiểm tra

Cột gia đình/kiểm toán/kiểm toán_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

Sử dụng công cụ nút để quản lý các nút cụm

Tiện ích nodetool là một giao diện dòng lệnh dành cho Cassandra quản lý các nút cụm. Bạn có thể tìm thấy tiện ích này tại /opt/apigee/apigee-cassandra/bin.

Có thể thực hiện các lệnh gọi sau trên tất cả các nút cụm Cassandra:

  1. Thông tin chung về vòng tròn (cũng có thể áp dụng cho một nút Cassandra): Tìm kiếm thẻ "Up" ("Lên") và "Bình thường" cho tất cả các nút.
    nodetool [-u username -pw password] -h localhost ring

    Bạn chỉ cần truyền tên người dùng và mật khẩu nếu đã bật phương thức xác thực JMX cho Cassandra.

    Kết quả của lệnh trên sẽ có dạng như sau:

    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. Thông tin chung về các nút (lệnh gọi trên mỗi nút)
    nodetool [-u username -pw password]  -h localhost info

    Kết quả của lệnh trên sẽ có dạng như sau:

    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. Trạng thái của máy chủ tiết kiệm (API ứng dụng phân phát)
    nodetool [-u username -pw password] -h localhost statusthrift

    Kết quả của lệnh trên có dạng như sau:

    running

  4. Trạng thái của hoạt động truyền phát dữ liệu: Quan sát lưu lượng truy cập của nút cassandra:
    nodetool [-u username -pw password] -h localhost netstats

    Kết quả của lệnh trên có dạng như sau:

    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

Để biết thêm thông tin về nodetool, hãy xem phần Giới thiệu về tiện ích nút công cụ.

Tài nguyên Cassandra

Hãy tham khảo URL sau: http://www.datastax.com/docs/1.0/operations/monitoring.

Người giữ vườn thú Apache

Kiểm tra trạng thái ZooKeeper

  1. Đảm bảo quá trình ZooKeeper đang chạy. ZooKeeper ghi một tệp PID vào opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. Kiểm tra các cổng ZooKeeper để đảm bảo rằng bạn có thể thiết lập kết nối TCP với các cổng 2181 và 3888 trên mọi máy chủ ZooKeeper.
  3. Đảm bảo rằng bạn có thể đọc các giá trị từ cơ sở dữ liệu ZooKeeper. Kết nối bằng thư viện ứng dụng ZooKeeper (hoặc /opt/apigee/apigee-zookeeper/bin/zkCli.sh) và đọc một giá trị từ cơ sở dữ liệu.
  4. Kiểm tra trạng thái:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

Sử dụng từ gồm bốn chữ cái của ZooKeeper

Bạn có thể giám sát ZooKeeper thông qua một tập hợp nhỏ các lệnh (từ bốn chữ cái) được gửi đến cổng 2181 bằng netcat (nc) hoặc telnet.

Để biết thêm thông tin về các lệnh ZooKeeper, hãy xem: Tài liệu tham khảo về lệnh trong Apache ZooKeeper.

Ví dụ:

  • srvr: Liệt kê toàn bộ thông tin chi tiết của máy chủ.
  • stat: Liệt kê các chi tiết ngắn gọn về máy chủ và ứng dụng được kết nối.

Các lệnh sau có thể được phát hành cho cổng ZooKeeper:

  1. Chạy lệnh ruok gồm bốn chữ cái để kiểm tra xem máy chủ có đang chạy ở trạng thái không lỗi hay không. Phản hồi thành công sẽ trả về "imok".
    echo ruok | nc host 2181

    Trả về:

    imok
  2. Chạy lệnh gồm bốn chữ cái, stat, để liệt kê hiệu suất của máy chủ và số liệu thống kê về ứng dụng được kết nối:
    echo stat | nc host 2181

    Trả về:

    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. Nếu không có netcat (nc), bạn có thể sử dụng python để thay thế. Tạo một tệp có tên zookeeper.py chứa nội dung sau:
    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)

    Bây giờ, hãy chạy các dòng python sau:

    python zookeeper.py 192.168.124.201 ruok
    python zookeeper.py 192.168.124.201 stat

Kiểm tra cấp độ LDAP

Bạn có thể theo dõi Open LDAP để xem các yêu cầu cụ thể có được phân phối đúng cách hay không. Nói cách khác, hãy kiểm tra một cụm từ tìm kiếm cụ thể trả về kết quả phù hợp.

  1. Sử dụng ldapsearch (yum install openldap-clients) để truy vấn mục nhập của quản trị viên hệ thống. Mục nhập này được dùng để xác thực mọi lệnh gọi 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

    Sau đó, bạn được nhắc nhập mật khẩu quản trị viên LDAP:

    Enter LDAP Password:

    Sau khi nhập mật khẩu, bạn sẽ thấy phản hồi trong biểu mẫu:

    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. Kiểm tra xem Máy chủ quản lý có còn kết nối với LDAP bằng lệnh sau không:
    curl -u userEMail:password http://localhost:8080/v1/users/ADMIN

    Trả về:

    {
      "emailId" : ADMIN,
      "firstName" : "admin",
      "lastName" : "admin"
    }

Bạn cũng có thể theo dõi bộ nhớ đệm OpenLDAP, giúp giảm số lần truy cập vào ổ đĩa và do đó cải thiện hiệu suất của hệ thống. Việc giám sát rồi điều chỉnh kích thước bộ nhớ đệm trong máy chủ OpenLDAP có thể ảnh hưởng nghiêm trọng đến hiệu suất của máy chủ thư mục. Bạn có thể xem các tệp nhật ký (opt/apigee/var/log) để lấy thông tin về bộ nhớ đệm.