Tài liệu này mô tả các kỹ thuật giám sát của các thành phần được hỗ trợ tại cơ sở hạ tầng riêng việc triển khai Apigee Edge cho Private Cloud.
Tổng quan
Edge hỗ trợ một số cách để xem thông tin chi tiết về các dịch vụ cũng như kiểm tra các trạng thái. Bảng sau đây liệt kê các loại kiểm tra mà bạn có thể thực hiện với mỗi dịch vụ:
API Mgmt | |||||||
Thành phần | Mức sử dụng bộ nhớ [JMX*] | Kiểm tra dịch vụ | Trạng thái triển khai/tổ chức/ người dùng | 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ý | |||||||
Trình xử lý tin nhắn | |||||||
Bộ định tuyến | |||||||
Qpid | |||||||
Postgres | |||||||
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 | |
* Trước khi có thể sử dụng JMX, bạn phải bật JMX, vì được mô tả trong phần Bật JMX. ** Dịch vụ |
Giám sát cổng và tệp cấu hình
Mỗi thành phần hỗ trợ các lệnh gọi giám sát API Quản lý và Tiện ích quản lý Java (JMX) trên cổng khác nhau. Chiến lược phát hành đĩa đơn bảng dưới đây liệt kê các cổng JMX và API Quản lý cho từng loại máy chủ, và vị trí của tệp cấu hình:
Thành phần | Cổng JMX | Cổng API Quản lý | Vị trí tệp cấu hình |
---|---|---|---|
Máy chủ quản lý | 1099 | 8080 | $APIGEE_ROOT/customer/application/management-server.properties |
Trình xử lý tin nhắn | 1101 | 8082 | $APIGEE_ROOT/customer/application/message-processor.properties |
Bộ định tuyến | 1100 | 8081 | $APIGEE_ROOT/customer/application/router.properties |
Qpid | 1102 | 8083 | $APIGEE_ROOT/customer/application/qpid-server.properties |
Postgres | 1103 | 8084 | $APIGEE_ROOT/customer/application/postgres-server.properties |
Sử dụng JMX để giám sát các thành phần
Các phần sau đây giải thích cách sử dụng JMX để giám sát các thành phần của Edge.
Bật JMX
Để bật JMX mà không cần xác thực hoặc giao tiếp dựa trên SSL, hãy thực hiện các bước bên dưới. Lưu ý: Trong các hệ thống sản xuất, bạn phải bật cả xác thực được mã hoá và SSL để bảo mật.
- Chỉnh sửa tệp cấu hình phù hợp (xem
Tài liệu tham khảo về tệp cấu hình). Tạo tệp cấu hình nếu chưa có.
conf_system_jmxremote_enable=true
- Lưu tệp cấu hình và đảm bảo tệp đó thuộc sở hữu của
apigee:apigee
. - Khởi động lại thành phần Edge thích hợp
apigee-service edge-management-server restart
Để tắt JMX, hãy xoá thuộc tính conf_system_jmxremote_enable
hoặc thay đổi
thành false
. Sau đó, khởi động lại thành phần Edge thích hợp.
Xác thực trong JMX
Edge dành cho đám mây riêng tư hỗ trợ xác thực dựa trên mật khẩu bằng cách sử dụng thông tin chi tiết được lưu trữ trong tệp. Bạn có thể lưu trữ mật khẩu dưới dạng hàm băm để tăng cường bảo mật.
- Để bật tính năng xác thực JMX trong thành phần Edge-*, hãy chỉnh sửa tệp cấu hình thích hợp
(xem
Tài liệu tham khảo về tệp cấu hình). Tạo tệp cấu hình nếu chưa có:
Lưu tệp cấu hình và đảm bảo tệp đó thuộc sở hữu củaconf_system_jmxremote_enable=true conf_system_jmxremote_authenticate=true conf_system_jmxremote_encrypted_auth=true conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
apigee:apigee
. - Tạo hàm băm SHA256 cho mật khẩu:
echo -n '
' | openssl dgst -sha256 - Tạo tệp
jmxremote.password
bằng thông tin đăng nhập của người dùng JMX:- Sao chép các tệp sau từ thư mục
$JAVA_HOME
vào thư mục/opt/apigee/customer/application/<component>/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- Chỉnh sửa tệp và thêm tên người dùng và mật khẩu JMX của bạn bằng cú pháp sau:
USERNAME <HASH-PASSWORD>
- Hãy đảm bảo tệp này thuộc sở hữu của
apigee
và có chế độ tệp là 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- Sao chép các tệp sau từ thư mục
- Tạo tệp
jmxremote.access
bằng các quyền của người dùng JMX:- Sao chép các tệp sau từ thư mục $JAVA_HOME vào
thư mục
/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- Chỉnh sửa tệp và thêm tên người dùng JMX, theo sau là một quyền (READONLY/READREAD)
USERNAME READONLY
- Hãy đảm bảo tệp này thuộc sở hữu của
apigee
và có chế độ tệp là 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- Sao chép các tệp sau từ thư mục $JAVA_HOME vào
thư mục
- Khởi động lại thành phần Edge thích hợp:
apigee-service edge-management-server restart
Để tắt tính năng xác thực JMX, hãy xoá thuộc tính này
conf_system_jmxremote_authenticate
hoặc thay đổi giá trị thành false
và
khởi động lại thành phần Edge thích hợp.
SSL trong JMX
Cách bật JMX dựa trên SSL trong thành phần Edge-*:
- Chỉnh sửa tệp cấu hình phù hợp
(xem
Tài liệu tham khảo về tệp cấu hình). Tạo tệp cấu hình nếu chưa có:
Lưu tệp cấu hình và đảm bảo tệp đó thuộc sở hữu củaconf_system_jmxremote_enable=true conf_system_jmxremote_ssl=true conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore conf_system_javax_net_ssl_keystorepassword=<keystore-password>
apigee:apigee
. - Chuẩn bị một kho khoá có chứa khoá máy chủ và đặt khoá đó tại đường dẫn được cung cấp trong
cấu hình
conf_system_javax_net_ssl_keystore
ở trên. Đảm bảo tệp kho khoáapigee:apigee
có thể đọc được. - Khởi động lại thành phần Edge thích hợp:
apigee-service edge-management-server restart
Để tắt JMX dựa trên SSL, hãy xoá thuộc tính conf_system_jmxremote_ssl
hoặc thay đổi giá trị thành false
. Khởi động lại thành phần Edge thích hợp.
Giám sát qua Jconsole
Hướng dẫn giám sát qua jconsole vẫn giữ nguyên như mô tả trong https://docs.apigee.com/private-cloud/v4.50.00/how-monitor#jconsole.
Bạn có thể thêm một dòng rằng “jconsole sẽ cần phải bắt đầu bằng mật khẩu kho tin cậy và mật khẩu kho tin cậy nếu SSL được bật cho JMX”. Tham khảo: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.htmlGiám sát bằng JConsole
Sử dụng JConsole (một công cụ tuân thủ JMX) để quản lý và giám sát quy trình kiểm tra tình trạng cũng như số liệu thống kê về quy trình. Với JConsole, bạn có thể sử dụng số liệu thống kê về JMX do máy chủ của bạn hiển thị và hiển thị chúng trong giao diện đồ hoạ. Để biết thêm thông tin, hãy xem Sử dụng JConsole.
Bạn cần khởi động JConsole bằng kho tin cậy và mật khẩu kho tin cậy nếu SSL được bật cho JMX. Xem 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 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_number là số cổng JMX của máy chủ bạn muốn giám sát.
Ví dụ: để giám sát Máy chủ quản lý, 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 Quản lý JMX của máy chủ quản lý. Đối với các sản phẩm khác các cổng, hãy xem cổng giám sát JMX và Management API.
Bảng sau đây trình bày số liệu thống kê chung về JMX:
Câu lạc bộ JMX MBean | Thuộc tính JMX |
---|---|
Bộ nhớ |
HeapMemoryUsage |
NonHeapMemoryUsage |
|
Cách sử dụng |
|
Tài liệu tham khảo về tệp cấu hình
Các phần sau đây mô tả những thay đổi bạn có thể cần thực hiện đối với cấu hình thành phần Edge cho các cấu hình liên quan đến JMX. Xem Giám sát cổng và tệp cấu hình để tìm hiểu thêm của bạn.
Cấu hình JMX sẽ được thêm vào tệp cấu hình của thành phần thích hợp
- Bật tác nhân JMX trên thành phần cạnh. False theo mặc định.
conf_system_jmxremote_enable=true
Cấu hình cho tính năng xác thực dựa trên mật khẩu
- Bật tính năng xác thực dựa trên mật khẩu. False theo mặc định.
conf_system_jmxremote_authenticate=true
- Đường dẫn để truy cập tệp. Chỉ người dùng Apigee mới được sở hữu và có thể đọc được.
conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
- Đường dẫn đến tệp mật khẩu. Chỉ người dùng Apigee mới được sở hữu và có thể đọc được.
conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
- Cho phép lưu trữ mật khẩu ở định dạng mã hoá. False theo mặc định.
conf_system_jmxremote_encrypted_auth=true
Cấu hình cho JMX dựa trên SSL
- Bật SSL để giao tiếp JMX. False theo mặc định.
conf_system_jmxremote_ssl=true
- Đường dẫn đến kho khoá. Chỉ người dùng Apigee mới được sở hữu và có thể đọc được.
conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
- Mật khẩu kho khoá:
conf_system_javax_net_ssl_keystorepassword=changeme
Cấu hình JMX không bắt buộc
Các giá trị được liệt kê là các giá trị mặc định và có thể thay đổi.
- Cổng JMX. Giá trị mặc định được liệt kê trong bảng bên dưới.
conf_system_jmxremote_port=
- Cổng RMI JMX. Theo mặc định, quy trình Java sẽ chọn một cổng ngẫu nhiên.
conf_system_jmxremote_rmi_port=
- Tên máy chủ lưu trữ của các mã giả lập từ xa. Địa chỉ IP mặc định của localhost.
conf_system_java_rmi_server_hostname=
- Bảo vệ sổ đăng ký JMX bằng SSL. Mặc định là sai. Chỉ thích hợp nếu SSL được bật.
conf_system_jmxremote_registry_ssl=false
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ủa mình cũng như kiểm tra người dùng, tổ chức và hoạt động triển khai của bạn. Phần này mô tả các API này.
Thực hiện 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 đề với luôn miễn phí. Các điểm cuối này bao gồm:
Điểm cuối | 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:
Lệnh gọi API này yêu cầu bạn xác thực bằng thông tin đăng nhập 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 bạn đã đăng nhập vào máy chủ, bạn có thể sử dụng "localhost"; nếu không, hãy chỉ định cả địa chỉ IP của máy chủ làm 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 khác nhau cho mỗi loại thành phần. Ví dụ: máy chủ quản lý Cổng API Quản lý là 8080. Để xem danh sách số cổng API Quản lý có thể dùng, hãy xem Các cổng giám sát JMX và Management API
Để 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 xác định trạng thái của Bộ định tuyến trên máy chủ cục bộ (cổng 8081):
curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"
Ví dụ sau lấy thông tin về Bộ xử lý tin nhắn tại 216.3.128.12 (cổng 8082):
curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password -H "Accept: application/xml"
Giám sát người dùng, tổ chức và trạng thái triển khai
Bạn có thể sử dụng API Quản lý để giám sát người dùng, tổ chức và trạng thái triển khai của proxy trên Máy chủ quản lý và Bộ xử lý thư bằng cách phát hành các lệnh sau:
curl http://host:port_number/v1/users -u sysAdminEmail:passwordcurl 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 Thông báo Bộ xử lý.
Cuộc gọi này yêu cầu bạn xác thực bằng tên người dùng của quản trị viên hệ thống và mật khẩu.
Máy chủ sẽ trả về một trang web "đã triển khai" trạng thái của tất cả cuộc gọi. Nếu những bước trên không thành công, hãy làm như sau:
- 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ý nằm tại:
- Máy chủ quản lý:
opt/apigee/var/log/edge-management-server
- Trình xử lý tin nhắn:
opt/apigee/var/log/edge-message-processor
- Máy chủ quản lý:
- Thực hiện lệnh gọi với máy chủ để kiểm tra xem máy chủ có hoạt động đúng cách hay không.
- 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 đó service_name là:
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 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ụ có apigee-service
:
- Đă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 hợp sau:
- Máy chủ quản lý:
edge-management-server
- Trình xử lý tin nhắn:
edge-message-processor
- Postgres:
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
- Máy chủ quản lý:
- 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
- Sau khi khởi động lại dịch vụ, hãy kiểm tra xem dịch vụ có hoạt động không bằng cách sử dụng
Lệnh
apigee-service status
mà bạn đã dùng trước đây hoặc thông qua API Quản lý như mô tả trong bài viết Giám sát bằng API Quản lý.Ví dụ:
curl -v http://localhost:port_number/v1/servers/self/up
Trong đó port_number là cổ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" với tư cách là 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 IP địa chỉ 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 API của bạn .
Giám sát Postgres
Postgres hỗ trợ một số tiện ích mà bạn có thể sử dụng để kiểm tra trạng thái của tiện ích. Các phần mềm tiện ích này được mô tả trong 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à môi trường đã được đưa vào 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à môi trường.
Xác minh trạng thái của số liệu phân tích
Bạn có thể xác minh trạng thái của các máy chủ phân tích Postgres và Qpid bằng cách đưa ra
Lệnh curl
:
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 cho thấy:
{ "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ể sử dụng một cách cụ thể để giám sát Postgres cơ sở dữ liệu.
Sử dụng tập lệnh check_postgres.pl
Để giám sát cơ sở dữ liệu PostgreSQL, bạn có thể sử dụng một tập lệnh giám sát tiêu chuẩn,
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:
- Bạn phải cài đặt tập lệnh check_postgres.pl trên mỗi nút Postgres.
- Đảm bảo rằng bạn đã cài đặt
perl-Time-HiRes.x86_64
, một mô-đun Perl triển khai chuông báo có độ phân giải cao, chế độ ngủ, giờ trong ngày và đồng hồ hẹn giờ theo thời gian. Ví dụ: bạn có thể cài đặt bằng cách dùng lệnh sau:
yum install perl-Time-HiRes.x86_64
- CentOS 7: Trước khi sử dụng check_postgres.pl trên CentOS v7, hãy cài đặt
perl-Data-Dumper.x86_64
RPM (doanh thu mỗi nghìn lượt xem).
Đầu ra củacheck_postgres.pl
Đầu ra mặc định của các lệnh gọi API sử dụng check_postgres.pl
là Nagios
tương thích. Sau khi bạn cài đặt tập lệnh, hãy thực hiện các bước kiểm tra sau:
- 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'
- 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
kết nối:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- 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
- 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%'
- Kiểm tra số lượng tổ chức và môi trường được đưa vào 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 kiểm tra cơ sở dữ liệu
Bạn có thể xác minh rằng các bảng phù hợp đã được tạo trong cơ sở dữ liệu PostgreSQL. Đăng nhập vào PostgreSQL bằng cách sử dụ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 Postgres
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 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
Quá trình Postgres không hoạt động và sẽ trả về trạng thái INACTIVE
.
Tài nguyên Postgres
Để biết thêm thông tin về cách giám sát dịch vụ Postgres, hãy xem những nội dung sau:
- 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
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 tính năng xác thực JMX cho Cassandra
Bạn có thể bật tính năng xác thực JMX cho Cassandra. Sau đó, bạn sẽ được yêu cầu chuyển tên người dùng và mật khẩu cho tất cả lệnh gọi đến tiện íchnodetool.
Cách bật tính năng xác thực JMX cho Cassandra:
- Tạo và chỉnh sửa tệp
cassandra.properties
:- Chỉnh sửa tệp
/opt/apigee/customer/application/cassandra.properties
. Nếu tệp không tồn tại, hãy tạo tệp đó. - 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}/customer/application/apigee-cassandra/jmxremote.password conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
- Lưu tệp
cassandra.properties
. - 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 tệp thuộc tính để đặt mã thông báo, hãy xem Cách định cấu hình Edge.
- Chỉnh sửa tệp
- Tạo và chỉnh sửa
jmx_auth.sh
:- Tạo tệp tại vị trí sau nếu chưa có:
/opt/apigee/customer/application/jmx_auth.sh
- 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
- Lưu tệp
jmx_auth.sh
. - Tìm nguồn cho tệp:
source /opt/apigee/customer/application/jmx_auth.sh
- Tạo tệp tại vị trí sau nếu chưa có:
- Sao chép và chỉnh sửa tệp
jmxremote.password
:- Sao chép tệp sau đây từ thư mục
$JAVA_HOME
vào/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
- 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_USERNAME và JMX_PASSWORD là tên người dùng JMX và mật khẩu bạn đã đặt trước đó.
- Đảm bảo rằng tệp này thuộc sở hữu của "api" và chế độ tệp là 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- Sao chép tệp sau đây từ thư mục
- Sao chép và chỉnh sửa tệp
jmxremote.access
:- Sao chép tệp sau đây từ thư mục
$JAVA_HOME
vào/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
- Chỉnh sửa tệp
jmxremote.access
và thêm vai trò sau:JMX_USERNAME readwrite
- Đảm bảo rằng tệp này thuộc sở hữu của "api" và chế độ tệp là 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
- Sao chép tệp sau đây từ thư mục
- Chạy
configure
trên Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Khởi động lại Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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:
- Mở tệp
source/conf/casssandra-env.sh
. - Tạo và chỉnh sửa tệp
cassandra.properties
:- Chỉnh sửa tệp
/opt/apigee/customer/application/cassandra.properties
. Nếu tệp không tồn tại, hãy tạo tệp. - Thêm phần sau vào tệp:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- Lưu tệp cassandra.properties.
- Thay đổi chủ sở hữu tệp thành apigee:apigee, như trong ví dụ sau đây:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Chỉnh sửa tệp
- 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
- Đặt(các) mật khẩu trùng với tên người dùng trong
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(được tạo trong trong phần trước). - Chạy cấu hình trên Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Khởi động lại Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Lặp lại quá trình này trên tất cả các nút Cassandra khác.
Bật JMX với SSL cho Cassandra
Việc bật JMX với SSL sẽ tăng cường bảo mật và mã hoá cho hoạt động giao tiếp dựa trên JMX với Cassandra. Để bật JMX với SSL, bạn cần cung cấp khoá và chứng chỉ cho Cassandra để chấp nhận kết nối JMX dựa trên SSL. Bạn cũng cần phải định cấu hìnhnodetool (và bất kỳ công cụ nào khác giao tiếp với Cassandra qua JMX) để hỗ trợ SSL.
JMX hỗ trợ SSL hỗ trợ cả mật khẩu JMX văn bản thuần tuý và mật khẩu JMX đã mã hoá.
Để bật JMX có SSL cho Cassandra, hãy sử dụng quy trình sau:
- Bật JMX. Bật tính năng mã hoá mật khẩu nếu cần.
- Bật tính năng xác thực JMX cho Cassandra.
như mô tả ở trên. Đảm bảonodetool đang hoạt động với chế độ cài đặt đã định cấu hình
tên người dùng và mật khẩu.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
Chuẩn bị kho khoá và Truststore.
Kho khoá phải chứa khoá và chứng chỉ, và dùng để định cấu hình máy chủ Cassandra. Nếu là kho khoá chứa nhiều cặp khoá, Cassandra sử dụng cặp khoá đầu tiên để bật SSL.
Lưu ý rằng mật khẩu cho kho khoá và khoá phải giống nhau (mặc định khi bạn tạo khoá bằng keytool).
- Truststore chỉ được chứa chứng chỉ và được khách hàng sử dụng (dựa trên dịch vụ apigee hoặcnodetool) để kết nối qua JMX.
Sau khi xác minh các yêu cầu trên:
- Đặt tệp kho khoá vào
/opt/apigee/customer/application/apigee-cassandra/
. - Đảm bảo chỉ người dùng Apigee mới có thể đọc tệp kho khoá bằng cách nhập
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- Định cấu hình Cassandra cho JMX bằng SSL bằng cách thực hiện các bước sau:
- Dừng nút Cassandra bằng cách đi vào
apigee-service apigee-cassandra stop
- Bật SSL trong Cassandra bằng
đang mở tệp
/opt/apigee/customer/application/cassandra.properties
và thêm các dòng sau:conf_cassandra_env_com.sun.management.jmxremote.ssl=true conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1 conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
- Thay đổi chủ sở hữu tệp thành apigee:apigee, như trong ví dụ sau đây:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- Chạy cấu hình trên Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Khởi động lại Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Lặp lại quá trình này trên tất cả các nút Cassandra khác.
- Bắt đầu nút Cassandra bằng cách nhập
apigee-service apigee-cassandra start
- Dừng nút Cassandra bằng cách đi vào
- Định cấu hình lệnh Cassandra
apigee-service
. Bạn cần đặt một số biến môi trường nhất định trong khi chạyapigee-service
lệnh, bao gồm các lệnh bên dưới:apigee-service apigee-cassandra stop apigee-service apigee-cassandra wait_for_ready apigee-service apigee-cassandra ring apigee-service apigee-cassandra backup
Có một số lựa chọn để định cấu hình
apigee-service
cho phương thức xác thực JMX và SSL. Hãy chọn một phương thức dựa trên khả năng hữu dụng và các biện pháp bảo mật bạn dùng.- Cách 1 (các đối số SSL được lưu trữ trong tệp)
- Cách 2 (các đối số SSL được lưu trữ trong biến môi trường)
- Lựa chọn 3 (đối số SSL được truyền trực tiếp đến
apigee-service
)
Tùy chọn 1 (đối số SSL được lưu trữ trong tệp)
Thiết lập các biến môi trường sau:
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
Tạo một tệp trong thư mục gốc của người dùng Apigee (
/opt/apigee
).$HOME/.cassandra/nodetool-ssl.properties
Chỉnh sửa tệp và thêm các dòng sau:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Đảm bảo người dùng Apigee có thể đọc được tệp trustore.
Chạy lệnh
apigee-service
sau. Nếu mã này chạy mà không gặp lỗi, thì cấu hình của bạn đã chính xác.apigee-service apigee-cassandra ring
Tùy chọn 2 (đối số SSL được lưu trữ trong biến môi trường)
Thiết lập các biến môi trường sau:
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>
Chạy lệnh
apigee-service
sau. Nếu mã này chạy mà không gặp lỗi, thì cấu hình của bạn đã chính xác.apigee-service apigee-cassandra ring
Tùy chọn 3 (đối số SSL được truyền trực tiếp đến
apigee-service
)Chạy lệnh
apigee-service
bất kỳ như lệnh dưới đây. Bạn không cần phải định cấu hình bất kỳ biến môi trường nào.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
Thiết lậpnodetool. Nodetool yêu cầu phải truyền các tham số JMX vào đó. Có hai cách bạn có thể định cấu hìnhnodetool để chạy với JMX hỗ trợ SSL, như được mô tả trong phần các lựa chọn cấu hình bên dưới:
Các tuỳ chọn khác nhau theo cách các cấu hình liên quan đến SSL được truyền đếnnodetool. Trong cả hai trường hợp, người dùng chạynodetool phải có quyền READ trên tệp kho tin cậy. Hãy chọn một phương thức phù hợp dựa trên khả năng hữu dụng và biện pháp bảo mật của bạn.
Để tìm hiểu thêm về các tham sốnodetool, hãy xem Tài liệu về DataStax.
Tùy chọn cấu hình 1
Tạo một tệp trong thư mục gốc của người dùng đang chạynodetool.
$HOME/.cassandra/nodetool-ssl.properties
Thêm các dòng sau vào tệp:
-Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true
Mọi người dùng đang chạy đều phải truy cập được vào đường dẫn kho tin cậy được chỉ định ở trên nodetool.
Chạy
nodetool
bằng tuỳ chọn--ssl
./opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring
Tùy chọn cấu hình 2
Chạy
nodetool
dưới dạng một lệnh duy nhất với các tham số bổ sung được liệt kê bên dưới./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
Hoàn nguyên cấu hình SSL
Nếu bạn cần đảo ngược cấu hình SSL được mô tả trong quy trình ở trên, hãy làm theo các bước sau:
- Dừng
apigee-cassandra
bằng cách nhậpapigee-service apigee-cassandra stop
- Xoá dòng
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
khỏi tệp/opt/apigee/customer/application/cassandra.properties
. - Nhận xét các dòng sau trong
/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”
- Bắt đầu
apigee-cassandra
bằng cách nhập - Xoá biến môi trường
CASS_JMX_SSL
nếu biến này đã được đặt.unset CASS_JMX_SSL
- Kiểm tra để đảm bảo các lệnh dựa trên
apigee-service
nhưring
,stop
,backup
, v.v. hiện đang hoạt động. - Ngừng sử dụng nút chuyển
--ssl
bằngnodetool
apigee-service apigee-cassandra start
Tắt tính năng xác thực JMX cho Cassandra
Cách tắt tính năng xác thực JMX cho Cassandra:
- Chỉnh sửa
/opt/apigee/customer/application/cassandra.properties
. - Xoá dòng sau trong tệp:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- Chạy cấu hình trên Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- Khởi động lại Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 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: Giám sát số liệu thống kê về tác vụ
Sử dụng JConsole và URL dịch vụ sau để giám sát các thuộc tính JMX (MBeans) được cung cấp 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ê của Cassandra JMX
Câu lạc bộ JMX MBean | Thuộc tính 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 |
Sử dụngnodetool để quản lý các nút cụm
Tiện íchnodetool là một giao diện dòng lệnh cho Cassandra quản lý
nút cụm. Bạn có thể tìm thấy tiện ích này tại /opt/apigee/apigee-cassandra/bin
.
Bạn 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:
- Thông tin chung về chuông (cũng có thể đối với một nút Cassandra): Tìm
"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 chuyển tên người dùng và mật khẩu của mình nếu bạn bật tính năng xác thực JMX cho Cassandra.
Kết quả của lệnh trên 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
- 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
- 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 sẽ có dạng như sau:
running
- Trạng thái của hoạt động truyền dữ liệu: Quan sát lưu lượng truy cập của các nút cassandra:
nodetool [-u username -pw password] -h localhost netstats
Kết quả của lệnh trên sẽ 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 Giới thiệu về tiện íchnodetool.
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 trong ZooKeeper
- Đảm bảo quy trình ZooKeeper đang chạy. ZooKeeper ghi tệp PID vào
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - Kiểm tra cổng ZooKeeper để đảm bảo rằng bạn có thể thiết lập kết nối TCP với cổng 2181 và 3888 trên mọi máy chủ ZooKeeper.
- Hãy đả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 ZooKeeper
thư viện ứng dụng (hoặc
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) rồi đọc một giá trị khỏi cơ sở dữ liệu. - Kiểm tra trạng thái:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
Sử dụng các từ gồm 4 chữ cái trong ZooKeeper
ZooKeeper có thể được giám sát 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 trong ZooKeeper, hãy xem: Tài liệu tham khảo về lệnh Apache ZooKeeper.
Ví dụ:
srvr
: Liệt kê đầy đủ thông tin chi tiết về máy chủ.stat
: Liệt kê thông tin chi tiết ngắn gọn về máy chủ và các ứng dụng đã kết nối.
Các lệnh sau đây có thể được phát hành tới cổng ZooKeeper:
- 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. Đáp
phản hồi thành công sẽ trả về "imok".
echo ruok | nc host 2181
Trả về:
imok
- 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à được kết nối số liệu thống kê về khách hàng: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
- Nếu không có netcat (nc), bạn có thể dùng python để thay thế. Tạo tệp
có tên là
zookeeper.py
chứa những thành phần 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 OpenLDAP để xem các yêu cầu cụ thể có được phân phát đúng cách hay không. Trong nói cách khác, hãy kiểm tra một nội dung tìm kiếm cụ thể trả về kết quả phù hợp.
- 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 tất cả 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 câu trả lờ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
- Kiểm tra xem Máy chủ quản lý có còn được kết nối với LDAP bằng lệnh sau hay 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ể giám sát bộ nhớ đệm OpenLDAP, giúp giảm số lượt truy cập vào ổ đĩa
từ đó cải thiện hiệu suất của hệ thống. Giám sát và sau đó đ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 nhật ký
tệp (opt/apigee/var/log
) để lấy thông tin về bộ nhớ đệm.