Cách định cấu hình Edge

Để định cấu hình Edge sau khi cài đặt, bạn sử dụng tổ hợp các tệp .properties và các tiện ích Edge. Ví dụ: để định cấu hình TLS/SSL trên Giao diện người dùng Edge, bạn chỉnh sửa .properties tệp để đặt các thuộc tính cần thiết. Các thay đổi đối với Các tệp .properties yêu cầu bạn khởi động lại thành phần Edge bị ảnh hưởng.

Apigee đề cập đến kỹ thuật chỉnh sửa tệp .properties dưới dạng mã có config (đôi khi được viết tắt là CwC). Về cơ bản, mã có cấu hình là quá trình tra cứu khoá/giá trị dựa trên các chế độ cài đặt trong tệp .properties. Trong mã có cấu hình, các khoá được gọi là mã thông báo. Do đó, để định cấu hình Edge, bạn đặt mã thông báo trong các tệp .properties.

Mã có cấu hình cho phép các thành phần Edge đặt các giá trị mặc định được vận chuyển cùng với sản phẩm, hãy cho phép nhóm cài đặt ghi đè các cài đặt đó dựa trên cấu trúc liên kết cài đặt, rồi cho phép khách hàng ghi đè mọi tài sản mà họ chọn.

Nếu bạn cho rằng nó là một hệ phân cấp, thì cài đặt được sắp xếp như sau, với khách hàng các chế độ cài đặt có mức độ ưu tiên cao nhất để ghi đè mọi chế độ cài đặt của nhóm cài đặt hoặc Apigee:

  1. Khách hàng
  2. Trình cài đặt
  3. Thành phần

Xác định giá trị hiện tại của mã thông báo

Trước khi đặt giá trị mới cho mã thông báo trong tệp .properties, trước tiên, bạn phải xác định giá trị hiện tại của giá trị đó bằng lệnh sau:

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

Trong đó component_name là tên của thành phần và token là mã thông báo để kiểm tra.

Lệnh này tìm kiếm hệ phân cấp các tệp .properties của thành phần để xác định giá trị hiện tại của mã thông báo.

Ví dụ sau đây sẽ kiểm tra giá trị hiện tại của conf_http_HTTPRequest.line.limit mã thông báo cho Bộ định tuyến:

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

Bạn sẽ thấy kết quả như sau:

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

Nếu giá trị của mã thông báo bắt đầu bằng #, thì mã thông báo đó đã bị ghi chú và bạn phải sử dụng cú pháp đặc biệt để thay đổi mã thông báo đó. Để biết thêm thông tin, hãy xem Đặt mã thông báo đang được nhận xét.

Nếu bạn không biết toàn bộ tên của mã thông báo, hãy sử dụng một công cụ như grep để tìm kiếm theo tên thuộc tính hoặc từ khoá. Để biết thêm thông tin, hãy xem bài viết Tìm một mã thông báo.

Tệp thuộc tính

Có các tệp cấu hình thành phần có thể chỉnh sửa và không thể chỉnh sửa. Phần này mô tả tệp.

Tệp cấu hình thành phần có thể chỉnh sửa

Bảng sau đây liệt kê các thành phần Apigee và tệp thuộc tính mà bạn có thể chỉnh sửa để định cấu hình các thành phần đó:

Thành phần Tên thành phần Tệp cấu hình có thể chỉnh sửa
Cassandra apigee-cassandra /opt/apigee/customer/application/cassandra.properties
Đăng nhập một lần (SSO) của Apigee apigee-sso /opt/apigee/customer/application/sso.properties
Máy chủ quản lý edge-management-server /opt/apigee/customer/application/management-server.properties
Trình xử lý tin nhắn edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
Giao diện người dùng cổ điển (không ảnh hưởng đến giao diện người dùng Edge mới) edge-ui /opt/apigee/customer/application/ui.properties
Giao diện người dùng Edge (chỉ giao diện người dùng mới của Edge; không ảnh hưởng đến giao diện người dùng cổ điển) apigee-management-ui không áp dụng (sử dụng tệp cấu hình cài đặt)
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
Máy chủ Postgres edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
Cơ sở dữ liệu PostgreSQL apigee-postgresql /opt/apigee/customer/application/postgressql.properties
Máy chủ Qpid edge-qpid-server /opt/apigee/customer/application/qpid-server.properties
Qpidd apigee-qpidd /opt/apigee/customer/application/qpidd.properties
Bộ định tuyến edge-router /opt/apigee/customer/application/router.properties
Người giữ vườn thú apigee-zookeeper /opt/apigee/customer/application/zookeeper.properties

Nếu muốn đặt một thuộc tính trong một trong các tệp cấu hình thành phần này nhưng thuộc tính đó không tồn tại, bạn có thể tạo thuộc tính đó ở vị trí nêu trên.

Ngoài ra, bạn phải đảm bảo rằng tệp thuộc tính được sở hữu bởi API "api" người dùng:

chown apigee:apigee /opt/apigee/customer/application/configuration_file.properties

Tệp cấu hình thành phần không thể chỉnh sửa

Ngoài các tệp cấu hình thành phần có thể chỉnh sửa, còn có các tệp cấu hình mà bạn không thể chỉnh sửa.

Các tệp thông tin (không thể chỉnh sửa) bao gồm:

Chủ sở hữu Tên tệp hoặc Thư mục
Cài đặt
/opt/apigee/token
Thành phần
/opt/apigee/component_name/conf

Trong đó, component_name xác định thành phần. Có thể là các giá trị sau:

  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (Cơ sở dữ liệu PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (Edge SSO)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Máy chủ quản lý)
  • edge-management-ui (Giao diện người dùng Edge mới)
  • edge-message-processor (Bộ xử lý thông báo)
  • edge-postgres-server (Máy chủ Postgres)
  • edge-qpid-server (Máy chủ Qid)
  • edge-router (Bộ định tuyến Edge)
  • edge-ui (Giao diện người dùng cổ điển)

Đặt giá trị mã thông báo

Bạn chỉ có thể sửa đổi các tệp .properties trong Thư mục /opt/apigee/customer/application. Mỗi thành phần đều có .properties trong thư mục đó. Ví dụ: router.propertiesmanagement-server.properties. Để xem danh sách đầy đủ các tệp thuộc tính, hãy xem phần Vị trí của tệp .properties.

Cách tạo tệp .properties:

  1. Tạo một tệp văn bản mới trong trình chỉnh sửa. Tên tệp phải khớp với danh sách hiển thị trong bảng bên trên cho các tệp của khách hàng.
  2. 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/router.properties

    Nếu bạn đã thay đổi người dùng chạy dịch vụ Edge từ "API" người dùng, sử dụng chown để thay đổi quyền sở hữu cho người dùng đang chạy ứng dụng Edge .

Khi bạn nâng cấp Edge, các tệp .properties trong Đã đọc thư mục /opt/apigee/customer/application. Điều đó có nghĩa là quá trình nâng cấp sẽ giữ lại mọi thuộc tính mà bạn đặt trên thành phần này.

Cách đặt giá trị của mã thông báo:

  1. Chỉnh sửa tệp .properties của thành phần.
  2. Thêm hoặc thay đổi giá trị của mã thông báo. Ví dụ sau đây đặt giá trị của thuộc tính conf_http_HTTPRequest.line.limit thành "10k":
    conf_http_HTTPRequest.line.limit=10k

    Nếu mã thông báo nhận nhiều giá trị, hãy phân tách từng giá trị bằng dấu phẩy, như sau ví dụ cho thấy:

    conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

    Để thêm giá trị mới vào danh sách như vậy, bạn thường thêm giá trị mới vào cuối của danh sách.

  3. Khởi động lại thành phần:
    /opt/apigee/apigee-service/bin/apigee-service component_name restart

    Trong đó component_name là một trong những trường hợp sau:

    • apigee-cassandra (Cassandra)
    • apigee-openldap (OpenLDAP)
    • apigee-postgresql (Cơ sở dữ liệu PostgreSQL)
    • apigee-qpidd (Qpidd)
    • apigee-sso (Edge SSO)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (Máy chủ quản lý)
    • edge-management-ui (Giao diện người dùng Edge mới)
    • edge-message-processor (Bộ xử lý thông báo)
    • edge-postgres-server (Máy chủ Postgres)
    • edge-qpid-server (Máy chủ Qid)
    • edge-router (Bộ định tuyến Edge)
    • edge-ui (Giao diện người dùng cổ điển)

    Ví dụ: sau khi chỉnh sửa router.properties, hãy khởi động lại Bộ định tuyến:

    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. (Không bắt buộc) Kiểm tra để đảm bảo rằng giá trị mã thông báo được đặt thành giá trị mới bằng cách sử dụng Tuỳ chọn configure -search. Ví dụ:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

    Để biết thêm thông tin về configure -search, hãy xem phần Xác định giá trị hiện tại của mã thông báo.

Tìm mã thông báo

Trong hầu hết các trường hợp, mã thông báo bạn cần đặt đều được xác định trong hướng dẫn này. Tuy nhiên, nếu bạn cần để ghi đè giá trị của một mã thông báo hiện có có tên đầy đủ hoặc vị trí mà bạn không chắc chắn, hãy sử dụng grep để tìm kiếm trong thư mục source của thành phần.

Ví dụ: nếu bạn biết rằng trong bản phát hành trước của Edge, bạn đặt giá trị thuộc tính session.maxAge và muốn biết giá trị mã thông báo được dùng để đặt thuộc tính đó, sau đó là grep cho tài sản trong /opt/apigee/edge-ui/source thư mục:

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

Bạn sẽ thấy kết quả trong biểu mẫu sau:

/opt/apigee/component_name/source/conf/application.conf:property_name={T}token_name{/T}

Ví dụ sau đây cho thấy giá trị của mã thông báo session.maxAge của giao diện người dùng:

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

Chuỗi giữa các thẻ {T}{/T} là tên của mã thông báo mà bạn có thể đặt trong tệp .properties của giao diện người dùng.

Đặt một mã thông báo đang được nhận xét

Một số mã thông báo được nhận xét trong tệp cấu hình Edge. Nếu bạn cố gắng đặt một mã thông báo được chú thích trong tệp cài đặt hoặc cấu hình thành phần, thì chế độ cài đặt của bạn sẽ bị bỏ qua.

Để đặt giá trị của mã thông báo được nhận xét trong tệp cấu hình Edge, hãy sử dụng hàm đặc biệt ở dạng sau:

conf/filename+propertyName=propertyValue

Ví dụ: để đặt thuộc tính có tên HTTPClient.proxy.host trên Thông báo Bộ xử lý, grep đầu tiên để tài sản xác định mã thông báo của tài sản đó:

grep -ri /opt/apigee/edge-message-processor/ -e "HTTPClient.proxy.host"

Lệnh grep trả về kết quả có chứa tên mã thông báo. Lưu ý cách nhận xét tên cơ sở lưu trú, biểu thị bằng tiền tố #:

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
token/default.properties:conf_http_HTTPClient.proxy.host=
conf/http.properties:#HTTPClient.proxy.host=

Để đặt giá trị của thuộc tính này, hãy chỉnh sửa /opt/apigee/customer/application/message-processor.properties, nhưng hãy sử dụng một giá trị đặc biệt , như trong ví dụ sau đây:

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

Trong trường hợp này, bạn phải thêm tiền tố conf/http.properties+ vào tên thuộc tính. Chiến dịch này là vị trí và tên của tệp cấu hình chứa thuộc tính theo sau là dấu "+".

Sau khi bạn khởi động lại Trình xử lý thư, hãy kiểm tra tệp /opt/apigee/edge-message-processor/conf/http.properties:

cat /opt/apigee/edge-message-processor/conf/http.properties

Ở cuối tệp, bạn sẽ thấy tập hợp thuộc tính ở dạng:

conf/http.properties:HTTPClient.proxy.host=myhost.name.com

Định cấu hình proxy chuyển tiếp cho các yêu cầu trong mục Gửi yêu cầu của giao diện người dùng Theo dõi

Phần này giải thích cách định cấu hình proxy chuyển tiếp cho các yêu cầu từ phần Send Requests (Gửi yêu cầu) của giao diện người dùng Trace (Theo dõi) bằng thông tin xác thực proxy không bắt buộc. Để định cấu hình proxy chuyển tiếp:

  1. Chỉnh sửa /opt/apigee/customer/application/ui.properties và đảm bảo tệp này thuộc sở hữu của apigee:apigee.
  2. Thêm các chế độ ghi đè sau (thay đổi giá trị thành cấu hình proxy cụ thể của bạn):
    conf_application_http.proxyhost=proxy.example.com
    conf_application_http.proxyport=8080
    conf_application_http.proxyuser=apigee
    conf_application_http.proxypassword=Apigee123!
  3. Lưu và khởi động lại giao diện người dùng cổ điển.

Thêm định dạng nhật ký tuỳ chỉnh trong Bộ định tuyến Apigee/Nginx

Trong một số trường hợp, bạn cần thay đổi định dạng nhật ký mặc định của Bộ định tuyến Apigee/Nginx hoặc thêm biến. Cách cập nhật cấu hình định dạng nhật ký Apigee Router/Nginx mặc định:

  1. Tạo một tệp router.properties, nếu chưa có, với đường dẫn như sau:
    /opt/apigee/customer/application/router.properties
  2. Thêm nội dung sau vào tệp router.properties để tạo cấu hình log_format mới có tên router_new:
    conf_load_balancing_load.balancing.driver.nginx.global.http.parameters.template.extra=log_format router_new 'time_iso8601\\\\thostname\\\\tremote_addr:remote_port\\\\t'\\\\n\\n 'upstream_addr\\\\trequest_time\\\\t-\\\\t-\\\\t'\\\\n\\n 'status\\\\tupstream_status\\\\trequest_length\\\\t'\\\\n\\n 'body_bytes_sent\\\\t'\\\\n\\n 'request\\\\tupstream_http_x_apigee_message_id\\\\t'\\\\n\\n 'http_user_agent\\\\thost\\thostname-pid-connection-connection_requests\\\\tmy_nginx_var_xff\\t'\\\\n\\n 'upstream_http_x_apigee_fault_flag\\\\tupstream_http_x_apigee_fault_source\\\\tupstream_http_x_apigee_fault_code\\\\t'\\\\n\\n 'upstream_http_x_apigee_fault_policy\\tupstream_http_x_apigee_fault_flow\\tupstream_http_x_apigee_fault_revision\\t'\\\\n\\n 'upstream_http_x_apigee_dp_color\\\\tmy_x_apigee_target_latency\\\\t'\\\\n\\n 'upstream_http_x_apigee_proxy\\\\tupstream_http_x_apigee_proxy_basepath\\\\t'\\\\n\\n 'self_region\\\\tself_pod\\\\tself_color\\\\tssl_protocol\\\\tssl_client_verify\\\\tssl_session_id\\\\tssl_session_reused\\\\tupstream_pod\\\\tupstream_region';\\\\n\\n\n
    conf_load_balancing_load.balancing.driver.nginx.access.log={conf_load_balancing_load.balancing.driver.nginx.log.dir}/{org}~{env}.{port}_access_log router_new

    Cập nhật các biến trong các lệnh trên cho phù hợp. Bạn có thể tìm thấy tuỳ chọn mặc định các giá trị cấu hình cho log_format trong tệp bên dưới:

    /opt/apigee/edge-router/conf/load_balancing.properties

    Danh sách biến Nginx được trình bày tại http://nginx.org/en/docs/varindex.html.

  3. Khởi động lại Bộ định tuyến để áp dụng cấu hình mới:
    apigee-service edge-router restart
  4. Kiểm tra xem cấu hình log_format mới hay chưa (router_new) đã được thêm vào tệp /opt/nginx/conf.d/0-default.conf:
        
    cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
  5. Gửi một số yêu cầu API đến một proxy API và xác minh định dạng nhật ký mới trong tệp đó
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file