Tài liệu tham khảo về hoạt động và cấu hình cho Edge Microgateway

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Edge Microgateway phiên bản 2.4.x

Tổng quan

Chủ đề này thảo luận cách quản lý và định cấu hình Edge Microgateway, bao gồm cả việc giám sát, ghi nhật ký và gỡ lỗi.

Thay đổi cấu hình

Các tệp cấu hình bạn cần biết bao gồm:

  • Tệp cấu hình hệ thống mặc định
  • Tệp cấu hình mặc định cho thực thể Edge Microgateway mới khởi tạo
  • Tệp cấu hình động cho các phiên bản đang chạy

Phần này thảo luận về các tệp này và những điều bạn cần biết về việc thay đổi chúng. Để biết thông tin chi tiết về các chế độ cài đặt tệp cấu hình, hãy xem Tài liệu tham khảo về cấu hình Edge Microgateway.

Tệp cấu hình hệ thống mặc định

Khi bạn cài đặt Edge Microgateway, tệp cấu hình hệ thống mặc định sẽ được đặt tại đây:

[prefix]/lib/node_modules/edgemicro/config/default.yaml

trong đó [prefix] là thư mục tiền tố npm. Hãy xem phần Edge Microgateway được cài đặt ở đâu.

Nếu thay đổi tệp cấu hình hệ thống, bạn phải khởi động lại, định cấu hình lại và khởi động lại Edge Microgateway:

  1. Gọi cho edgemicro init
  2. Gọi cho edgemicro configure [params]
  3. Gọi cho edgemicro start [params]

Tệp cấu hình mặc định cho các thực thể Edge Microgateway mới được khởi tạo

Khi bạn chạy edgemicro init, tệp cấu hình hệ thống (như mô tả ở trên) default.yaml, sẽ được đặt trong thư mục này: ~/.edgemicro

Nếu thay đổi tệp cấu hình trong ~/.edgemicro, bạn phải định cấu hình lại và khởi động lại Edge Microgateway:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

Tệp cấu hình động cho các phiên bản đang chạy

Khi bạn chạy edgemicro configure [params], một tệp cấu hình động sẽ được tạo trong ~/.edgemicro. Tệp này sẽ được đặt tên theo mẫu sau: [org]-[env]-config.yaml, trong đó orgenv là tên môi trường và tổ chức Apigee Edge. Bạn có thể sử dụng tệp này để thay đổi cấu hình, sau đó tải lại các thay đổi đó với thời gian ngừng hoạt động bằng 0. Ví dụ: nếu thêm và định cấu hình một trình bổ trợ, bạn có thể tải lại cấu hình mà không làm phát sinh thời gian ngừng hoạt động, như giải thích bên dưới.

Nếu Edge Microgateway đang chạy (tuỳ chọn thời gian ngừng hoạt động bằng 0):

  1. Tải lại cấu hình Edge Microgateway:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    Trong trường hợp:

    • org là tên tổ chức của bạn trong Edge (bạn phải là quản trị viên tổ chức).
    • env là một môi trường trong tổ chức của bạn (chẳng hạn như thử nghiệm hoặc sản phẩm).
    • key là khoá được lệnh cấu hình trả về trước đó.
    • secret là khoá được lệnh cấu hình trả về trước đó.

    Ví dụ

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

Nếu Edge Microgateway bị dừng:

  1. Khởi động lại Edge Microgateway:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    Trong trường hợp:

    • org là tên tổ chức của bạn trong Edge (bạn phải là quản trị viên tổ chức).
    • env là một môi trường trong tổ chức của bạn (chẳng hạn như thử nghiệm hoặc sản phẩm).
    • key là khoá được lệnh cấu hình trả về trước đó.
    • secret là khoá được lệnh cấu hình trả về trước đó.

    Ví dụ

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

Dưới đây là một tệp cấu hình mẫu. Để biết thông tin chi tiết về các chế độ cài đặt tệp cấu hình, hãy xem Tài liệu tham khảo về cấu hình của Edge Microgateway.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

Đặt biến môi trường

Các lệnh trong giao diện dòng lệnh yêu cầu các giá trị cho tổ chức và môi trường Edge của bạn, cũng như khoá và khoá bí mật cần thiết để khởi động Edge Microgateway có thể được lưu trữ trong các biến môi trường sau:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Bạn không bắt buộc phải đặt các biến này. Nếu đặt các giá trị này, bạn không phải chỉ định giá trị khi sử dụng Giao diện dòng lệnh (CLI) để định cấu hình và khởi động Edge Microgateway.

Định cấu hình SSL trên máy chủ Edge Microgateway

Bạn có thể định cấu hình máy chủ Microgateway để sử dụng SSL. Ví dụ: khi đã định cấu hình SSL, bạn có thể gọi các API thông qua Edge Microgateway bằng giao thức "https", như sau:

https://localhost:8000/myapi

Để định cấu hình SSL trên máy chủ Microgateway, hãy làm theo các bước sau:

  1. Tạo hoặc lấy chứng chỉ SSL và khoá bằng cách sử dụng tiện ích openssl hoặc bất kỳ phương pháp nào bạn muốn.
  2. Thêm thuộc tính edgemicro:ssl vào tệp cấu hình Edge Microgateway. Để xem danh sách đầy đủ các lựa chọn, hãy xem bảng bên dưới. Để biết thông tin chi tiết về cách sửa đổi cấu hình Edge Microgateway, hãy xem phần Thực hiện thay đổi về cấu hình. Ví dụ:
     edgemicro:
         ssl:
             key: <absolute path to the SSL key file>
             cert: <absolute path to the SSL cert file>
             passphrase: admin123 #option added in v2.2.2
             rejectUnauthorized: true #option added in v2.2.2
             requestCert: true 
    
  3. Khởi động lại Edge Microgateway. Làm theo các bước nêu trong phần Thực hiện thay đổi cấu hình tuỳ thuộc vào tệp cấu hình bạn đã chỉnh sửa: tệp mặc định hay tệp cấu hình thời gian chạy.

Dưới đây là ví dụ về phần Edgemicro của tệp cấu hình có định cấu hình SSL:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

Dưới đây là danh sách tất cả các tuỳ chọn máy chủ được hỗ trợ:

Lựa chọn Nội dung mô tả
key Đường dẫn đến tệp ca.key (ở định dạng PEM).
cert Đường dẫn đến tệp ca.cert (ở định dạng PEM).
pfx Đường dẫn đến tệp pfx chứa khoá riêng tư, chứng chỉ và chứng chỉ CA của ứng dụng ở định dạng PFX.
passphrase Một chuỗi chứa cụm mật khẩu cho khoá riêng tư hoặc PFX.
ca Đường dẫn đến tệp chứa danh sách chứng chỉ đáng tin cậy ở định dạng PEM.
ciphers Một chuỗi mô tả thuật toán mật mã cần sử dụng và phân tách bằng dấu ":".
rejectUnauthorized Nếu đúng, chứng chỉ máy chủ được xác minh dựa trên danh sách CA được cung cấp. Nếu xác minh không thành công, hệ thống sẽ trả về lỗi.
secureProtocol Phương pháp SSL mà bạn nên sử dụng. Ví dụ: SSLv3_method để buộc SSL chuyển sang phiên bản 3.
servername Tên máy chủ cho tiện ích TLS (Chỉ báo tên máy chủ) DEX.
requestCert true cho SSL 2 chiều; false cho SSL 1 chiều

Sử dụng các tuỳ chọn SSL/TLS của ứng dụng

Bạn có thể định cấu hình Edge Microgateway thành một ứng dụng TLS hoặc SSL khi kết nối với các điểm cuối đích. Trong tệp cấu hình Microgateway, hãy sử dụng phần tử mục tiêu để đặt các tuỳ chọn SSL/TLS.

Ví dụ sau cung cấp các chế độ cài đặt sẽ được áp dụng cho tất cả máy chủ:

targets:
   ssl:
     client:
       key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
       cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Trong ví dụ này, các chế độ cài đặt chỉ được áp dụng cho máy chủ đã chỉ định:

targets:
   host: 'myserver.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Dưới đây là một ví dụ về TLS:

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

Dưới đây là danh sách tất cả các ứng dụng được hỗ trợ:

Lựa chọn Nội dung mô tả
pfx Đường dẫn đến tệp pfx chứa khoá riêng tư, chứng chỉ và chứng chỉ CA của ứng dụng ở định dạng PFX.
key Đường dẫn đến tệp ca.key (ở định dạng PEM).
passphrase Một chuỗi chứa cụm mật khẩu cho khoá riêng tư hoặc PFX.
cert Đường dẫn đến tệp ca.cert (ở định dạng PEM).
ca Đường dẫn đến tệp chứa danh sách chứng chỉ đáng tin cậy ở định dạng PEM.
ciphers Một chuỗi mô tả thuật toán mật mã cần sử dụng và phân tách bằng dấu ":".
rejectUnauthorized Nếu đúng, chứng chỉ máy chủ được xác minh dựa trên danh sách CA được cung cấp. Nếu xác minh không thành công, hệ thống sẽ trả về lỗi.
secureProtocol Phương pháp SSL mà bạn nên sử dụng. Ví dụ: SSLv3_method để buộc SSL chuyển sang phiên bản 3.
servername Tên máy chủ cho tiện ích TLS (Chỉ báo tên máy chủ) DEX.

Tuỳ chỉnh proxy xác thực Edgemicro

Theo mặc định, Edge Microgateway sử dụng một proxy được triển khai trên Apigee Edge để xác thực OAuth2. Proxy này được triển khai khi bạn chạy edgemicro configure lần đầu. Bạn có thể thay đổi cấu hình mặc định của proxy này để thêm tính năng hỗ trợ cho các thông báo xác nhận quyền sở hữu tuỳ chỉnh đối với Mã thông báo web JSON (JWT), định cấu hình thời hạn của mã thông báo và tạo mã làm mới. Để biết thông tin chi tiết, hãy xem trang edgemicro-auth trên GitHub.

Sử dụng dịch vụ xác thực tuỳ chỉnh

Theo mặc định, Edge Microgateway sử dụng một proxy được triển khai trên Apigee Edge để xác thực OAuth2. Proxy này được triển khai khi bạn chạy edgemicro configure lần đầu. Theo mặc định, URL của proxy này được chỉ định trong tệp cấu hình Edge Microgateway như sau:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Nếu bạn muốn sử dụng dịch vụ tuỳ chỉnh của riêng mình để xử lý việc xác thực, hãy thay đổi giá trị authUri trong tệp cấu hình để trỏ đến dịch vụ của bạn. Ví dụ: bạn có thể có một dịch vụ sử dụng LDAP để xác minh danh tính.

Quản lý tệp nhật ký

Edge Microgateway ghi lại thông tin về từng yêu cầu và phản hồi. Tệp nhật ký cung cấp thông tin hữu ích cho việc gỡ lỗi và khắc phục sự cố.

Vị trí lưu trữ tệp nhật ký

Theo mặc định, các tệp nhật ký được lưu trữ trong /var/tmp.

Cách thay đổi thư mục tệp nhật ký mặc định

Thư mục lưu trữ các tệp nhật ký được chỉ định trong tệp cấu hình Edge Microgateway. Để biết thông tin chi tiết về cách thay đổi cấu hình, hãy xem phần Thực hiện thay đổi cấu hình.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Thay đổi giá trị dir để chỉ định một thư mục tệp nhật ký khác.

Gửi nhật ký đến bảng điều khiển

Bạn có thể định cấu hình tính năng ghi nhật ký để thông tin nhật ký được gửi đến đầu ra chuẩn thay vì tới tệp nhật ký. Hãy đặt cờ to_console thành true như sau:

edgemicro:
  logging:
    to_console: true  

Với chế độ cài đặt này, nhật ký sẽ được gửi theo chế độ chuẩn. Hiện tại, bạn không thể gửi nhật ký đến cả stdout và tệp nhật ký.

Cách đặt cấp độ ghi nhật ký

Bạn có thể đặt các cấp độ nhật ký sau: thông tin, cảnh báolỗi. Bạn nên chọn cấp độ thông tin. API này ghi lại mọi yêu cầu và phản hồi API và là chế độ mặc định.

Cách thay đổi khoảng thời gian ghi nhật ký

Bạn có thể định cấu hình các khoảng thời gian này trong tệp cấu hình Edge Microgateway. Để biết thông tin chi tiết về cách thay đổi cấu hình, hãy xem phần Thực hiện thay đổi về cấu hình.

Các thuộc tính có thể định cấu hình là:

  • stats_log_interval: (mặc định: 60) Khoảng thời gian tính bằng giây, khi bản ghi số liệu thống kê được ghi vào tệp nhật ký API.
  • rotate_interval: (mặc định: 24) Khoảng thời gian, tính bằng giờ, khi xoay tệp nhật ký. Ví dụ:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Lưu ý: Tệp nhật ký được lưu trữ không nén được. Khi khoảng thời gian bắt đầu, một tệp nhật ký mới sẽ được tạo với dấu thời gian mới.

Các phương pháp bảo trì tệp nhật ký hiệu quả

Khi dữ liệu tệp nhật ký tích luỹ theo thời gian, Apigee khuyên bạn nên áp dụng các phương pháp sau:

  • Vì tệp nhật ký có thể trở nên khá lớn, hãy đảm bảo rằng thư mục tệp nhật ký có đủ dung lượng. Hãy xem các phần sau đây Vị trí lưu trữ tệp nhật kýCách thay đổi thư mục tệp nhật ký mặc định.
  • Xoá hoặc di chuyển tệp nhật ký sang một thư mục lưu trữ riêng biệt ít nhất mỗi tuần một lần.
  • Nếu chính sách của bạn là xoá nhật ký, thì bạn có thể sử dụng lệnh CLI edgemicro log -c để xoá (xoá) nhật ký cũ.

Quy ước đặt tên tệp nhật ký

Mỗi thực thể Edge Microgateway tạo ra 3 loại tệp nhật ký:

  • api – Ghi nhật ký tất cả các yêu cầu và phản hồi chuyển qua Microgateway của Edge. Bộ đếm API (số liệu thống kê) và lỗi cũng được ghi vào tệp này.
  • err – Ghi nhật ký mọi nội dung được gửi đến stderr.
  • out – Ghi nhật ký mọi nội dung được gửi đến stdout.

Đây là quy ước đặt tên:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

Ví dụ:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

Giới thiệu về nội dung tệp nhật ký

Đã thêm vào: phiên bản 2.3.3

Theo mặc định, dịch vụ ghi nhật ký sẽ bỏ qua JSON của các proxy, sản phẩm đã tải xuống và Mã thông báo web JSON (JWT). Nếu bạn muốn xuất các đối tượng này sang tệp nhật ký, hãy đặt DEBUG=* khi bạn khởi động Edge Microgateway. Ví dụ:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Lưu ý: Trên Windows, hãy sử dụng SET DEBUG=*

Nội dung của tệp nhật ký "api"

Tệp nhật ký "api" chứa thông tin chi tiết về luồng yêu cầu và phản hồi thông qua Edge Microgateway. Tệp nhật ký "api" được đặt tên như sau:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Đối với mỗi yêu cầu được gửi đến Edge Microgateway, 4 sự kiện sẽ được ghi lại trong tệp nhật ký "api":

  • Yêu cầu đến từ máy khách
  • Đã gửi yêu cầu đi cho mục tiêu
  • Phản hồi đến từ mục tiêu
  • Phản hồi đi cho ứng dụng khách

Mỗi mục nhập riêng biệt này được biểu thị bằng một ký hiệu viết tắt để giúp các tệp nhật ký nhỏ gọn hơn. Dưới đây là bốn mục nhập mẫu đại diện cho từng sự kiện trong số bốn sự kiện. Trong tệp nhật ký, các chú thích này có dạng như sau (số dòng chỉ để tham khảo trong tài liệu, không xuất hiện trong tệp nhật ký).

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

Hãy cùng xem xét từng yếu tố:

1. Ví dụ về yêu cầu đến từ ứng dụng:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 – Dấu ngày Unix
  • info – Tuỳ thuộc vào bối cảnh. Có thể là thông tin, cảnh báo hoặc lỗi, tuỳ thuộc vào cấp độ nhật ký. Có thể là số liệu thống kê cho một bản ghi số liệu thống kê, đưa ra cảnh báo hoặc lỗi nếu có.
  • req – Xác định sự kiện. Trong trường hợp này, hãy yêu cầu từ ứng dụng.
  • m – Động từ HTTP được dùng trong yêu cầu.
  • u – Phần của URL theo sau đường dẫn cơ sở.
  • h – Số máy chủ và số cổng mà Edge Microgateway đang nghe.
  • r – Máy chủ lưu trữ và cổng từ xa nơi phát sinh yêu cầu ứng dụng.
  • i – Mã yêu cầu. Cả 4 mục sự kiện sẽ có chung mã nhận dạng này. Mỗi yêu cầu được chỉ định một mã yêu cầu duy nhất. Việc tương quan các bản ghi nhật ký theo mã yêu cầu có thể cung cấp thông tin chi tiết có giá trị về độ trễ của mục tiêu.
  • d – Thời lượng tính bằng mili giây kể từ khi Edge Microgateway nhận được yêu cầu. Trong ví dụ trên, phản hồi của mục tiêu cho yêu cầu 0 được nhận sau 7 mili giây (dòng 3) và phản hồi được gửi tới ứng dụng khách sau 4 mili giây bổ sung (dòng 4). Nói cách khác, tổng độ trễ của yêu cầu là 11 mili giây, trong đó 7 mili giây do mục tiêu lấy và 4 mili giây do chính Edge Microgateway.

2. Mẫu về yêu cầu gửi đi đã gửi cho mục tiêu:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 – Dấu ngày Unix
  • info – Tuỳ thuộc vào bối cảnh. Có thể là thông tin, cảnh báo hoặc lỗi, tuỳ thuộc vào cấp độ nhật ký. Có thể là số liệu thống kê cho một bản ghi số liệu thống kê, đưa ra cảnh báo hoặc lỗi nếu có.
  • treq – Xác định sự kiện. Trong trường hợp này, hãy nhắm mục tiêu yêu cầu.
  • m – Động từ HTTP được dùng trong yêu cầu đích.
  • u – Phần của URL theo sau đường dẫn cơ sở.
  • h – Máy chủ lưu trữ và số cổng của mục tiêu phụ trợ.
  • i – Mã nhận dạng của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

3. Mẫu phản hồi đến từ mục tiêu

1436403888672 info tres s=200, d=7, i=0

1436403888651 – Dấu ngày Unix

  • info – Tuỳ thuộc vào bối cảnh. Có thể là thông tin, cảnh báo hoặc lỗi, tuỳ thuộc vào cấp độ nhật ký. Có thể là số liệu thống kê cho một bản ghi số liệu thống kê, đưa ra cảnh báo hoặc lỗi nếu có.
  • tres – Xác định sự kiện. Trong trường hợp này, hãy nhắm mục tiêu phản hồi.
  • s – Trạng thái phản hồi HTTP.
  • d – Thời lượng tính bằng mili giây. Thời gian dành cho lệnh gọi API bởi mục tiêu.
  • i – Mã nhận dạng của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

4. Mẫu phản hồi gửi đi cho khách hàng

1436403888676 info res s=200, d=11, i=0

1436403888651 – Dấu ngày Unix

  • info – Tuỳ thuộc vào bối cảnh. Có thể là thông tin, cảnh báo hoặc lỗi, tuỳ thuộc vào cấp độ nhật ký. Có thể là số liệu thống kê cho một bản ghi số liệu thống kê, đưa ra cảnh báo hoặc lỗi nếu có.
  • res – Xác định sự kiện. Trong trường hợp này, hãy phản hồi ứng dụng.
  • s – Trạng thái phản hồi HTTP.
  • d – Thời lượng tính bằng mili giây. Đây là tổng thời gian mà lệnh gọi API thực hiện, bao gồm cả thời gian mà API mục tiêu thực hiện và thời gian của chính Edge Microgateway.
  • i – Mã nhận dạng của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

Lịch biểu của tệp nhật ký

Tệp nhật ký được xoay vòng trên khoảng thời gian do thuộc tính cấu hình rotate_interval chỉ định. Các mục nhập sẽ tiếp tục được thêm vào cùng một tệp nhật ký cho đến khi hết khoảng thời gian xoay. Tuy nhiên, mỗi lần khởi động lại Edge Microgateway, thiết bị sẽ nhận được một UID mới và tạo một tập hợp tệp nhật ký mới bằng UID này. Xem thêm bài viết Các phương pháp bảo trì tệp nhật ký hiệu quả.

Tài liệu tham khảo về cấu hình Edge Microgateway

Vị trí của tệp cấu hình

Các thuộc tính cấu hình được mô tả trong phần này nằm trong tệp cấu hình Edge Microgateway. Để biết thông tin chi tiết về cách thay đổi cấu hình, hãy xem phần Thực hiện thay đổi cấu hình.

thuộc tính Edge_config

Các chế độ cài đặt này dùng để định cấu hình hoạt động tương tác giữa thực thể Edge Microgateway và Apigee Edge.

  • bootstrap: (mặc định: không có) Một URL trỏ đến một dịch vụ dành riêng cho Edge Microgateway đang chạy trên Apigee Edge. Edge Microgateway sử dụng dịch vụ này để giao tiếp với Apigee Edge. URL này được trả về khi bạn thực thi lệnh tạo cặp khoá công khai/riêng tư: edgemicro genkeys. Hãy xem phần Thiết lập và định cấu hình cổng nhỏ Edge để biết thông tin chi tiết.
  • jwt_public_key: (mặc định: không có) Một URL trỏ đến proxy Microgateway của Edge được triển khai trên Apigee Edge. Proxy này đóng vai trò là điểm cuối xác thực để cấp mã truy cập đã ký cho ứng dụng. URL này được trả về khi bạn thực thi lệnh để triển khai proxy: edgemicro configuration (định cấu hình Edgemicro). Hãy xem phần Thiết lập và định cấu hình cổng nhỏ Edge để biết thông tin chi tiết.

thuộc tính Edgemicro

Các chế độ cài đặt này định cấu hình quy trình Edge Microgateway.

  • port: (mặc định: 8000) Số cổng mà quy trình Edge Microgateway nghe trên đó.
  • max_connections: (mặc định: -1) Chỉ định số lượng tối đa kết nối đến đồng thời mà Edge Microgateway có thể nhận được. Nếu vượt quá con số này, hệ thống sẽ trả về trạng thái sau:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (mặc định: -1) Số yêu cầu đồng thời tối đa mà Edge Microgateway có thể nhận được trước khi tắt kết nối. Chế độ cài đặt này nhằm ngăn chặn các cuộc tấn công từ chối dịch vụ. Thông thường, hãy đặt giá trị này thành một số lớn hơn max_Connections.
  • ghi nhật ký:
    • level: (mặc định: lỗi)
      • info – Ghi nhật ký tất cả các yêu cầu và phản hồi chuyển qua một thực thể Edge Microgateway.
      • warn – Chỉ ghi nhật ký các thông báo cảnh báo.
      • error – Chỉ ghi nhật ký thông báo lỗi.
    • dir: (mặc định: /var/tmp) Thư mục lưu trữ các tệp nhật ký.
    • stats_log_interval: (mặc định: 60) Khoảng thời gian tính bằng giây, khi bản ghi số liệu thống kê được ghi vào tệp nhật ký api.
    • rotate_interval: (mặc định: 24) Khoảng thời gian, tính bằng giờ, khi xoay tệp nhật ký.
  • trình bổ trợ: Các trình bổ trợ thêm chức năng vào Edge Microgateway. Để biết thông tin chi tiết về cách phát triển trình bổ trợ, hãy xem phần Phát triển trình bổ trợ tuỳ chỉnh.
  • dir: Đường dẫn tương đối từ thư mục ./gateway đến thư mục ./plugins hoặc một đường dẫn tuyệt đối.
  • trình tự: Danh sách các mô-đun trình bổ trợ cần thêm vào thực thể của Edge Microgateway. Các mô-đun sẽ thực thi theo thứ tự được chỉ định ở đây.
  • debug: Thêm gỡ lỗi từ xa vào quy trình Edge Microgateway.
    • cổng: Số cổng để nghe. Ví dụ: đặt trình gỡ lỗi IDE để nghe trên cổng này.
    • args: Đối số cho quá trình gỡ lỗi. Ví dụ: args --nolazy
  • config_change_poll_interval: (mặc định: 600 giây) Edge Microgateway tải cấu hình mới theo định kỳ và tiến hành tải lại nếu có thay đổi. Cuộc thăm dò ý kiến về mọi thay đổi được thực hiện trên Edge (thay đổi đối với sản phẩm, proxy nhận biết cổng vào nhỏ, v.v.) cũng như các thay đổi được thực hiện đối với tệp cấu hình cục bộ.
  • disable_config_poll_interval: (mặc định: false) Đặt thành true để tắt tính năng kiểm tra sự thay đổi tự động.
  • request_timeout: Đặt thời gian chờ cho các yêu cầu mục tiêu. Thời gian chờ được đặt tính bằng giây. Nếu hết thời gian chờ, Edge Microgateway sẽ phản hồi bằng mã trạng thái 504. (Đã thêm phiên bản 2.4.x)

thuộc tính tiêu đề

Các chế độ cài đặt này định cấu hình cách xử lý một số tiêu đề HTTP nhất định.

  • x-forwarded-for: (default: true) Đặt thành false để ngăn tiêu đề x-forwarded-for được chuyển tới mục tiêu. Xin lưu ý rằng nếu tiêu đề x-Forwarded- cho có trong yêu cầu, thì giá trị của tiêu đề đó sẽ được đặt thành giá trị client-ip trong Edge Analytics.
  • x-forwarded-host: (mặc định: đúng) Đặt thành false để ngăn việc truyền tiêu đề x-forwarded-host tới mục tiêu.
  • x-request-id: (default: true) Đặt thành false để ngăn việc truyền tiêu đề x-request-id tới mục tiêu.
  • x-Response-time: (default: true) Đặt thành false để ngăn hệ thống truyền tiêu đề x-Response-time tới mục tiêu.
  • via: (default: true) Đặt thành false để ngăn việc truyền tiêu đề tới mục tiêu.

Thuộc tính OAuth

Các chế độ cài đặt này định cấu hình cách thực thi quy trình xác thực ứng dụng bằng Edge Microgateway.

  • allowNoAuthorization: (mặc định: false) Nếu được đặt thành true, thì các lệnh gọi API sẽ được phép truyền qua Edge Microgateway mà không cần bất kỳ tiêu đề Uỷ quyền nào. Đặt giá trị này thành false để yêu cầu tiêu đề Uỷ quyền (mặc định).
  • allowInvalidAuthorization: (default: false) Nếu bạn đặt thành true, các lệnh gọi API sẽ được phép truyền nếu mã thông báo đã chuyển trong tiêu đề Uỷ quyền không hợp lệ hoặc đã hết hạn. Đặt giá trị này thành false để yêu cầu mã thông báo hợp lệ (mặc định).
  • uỷ quyền-tiêu đề: (mặc định: Uỷ quyền: Mang đến) Tiêu đề dùng để gửi mã truy cập đến Edge Microgateway. Bạn nên thay đổi mặc định trong trường hợp mục tiêu cần sử dụng tiêu đề Uỷ quyền cho một số mục đích khác.
  • api-key-header: (mặc định: x-api-key) Tên của tiêu đề hoặc tham số truy vấn được dùng để chuyển khoá API đến Edge Microgateway. Hãy xem thêm bài viết Sử dụng khoá API.
  • keepAuthHeader: (mặc định: false) Nếu đặt thành true, tiêu đề Uỷ quyền gửi trong yêu cầu sẽ được chuyển tới mục tiêu (được giữ nguyên).
  • allowOAuthOnly – Nếu đặt thành true, mọi API phải chứa tiêu đề Uỷ quyền với Mã truy cập mang tên mang. Cho phép bạn chỉ cho phép mô hình bảo mật OAuth (trong khi vẫn duy trì khả năng tương thích ngược). (Đã thêm 4.2.x)
  • allowAPIKeyOnly – Nếu đặt thành true, mọi API phải mang tiêu đề x-api-key (hoặc một vị trí tuỳ chỉnh) có Khoá API.Cho phép bạn chỉ cho phép mô hình bảo mật khoá API (trong khi vẫn duy trì khả năng tương thích ngược). (Đã thêm phiên bản 4.2.x)

Thuộc tính riêng của trình bổ trợ

Xem phần Sử dụng trình bổ trợ để biết thông tin chi tiết về các thuộc tính có thể định cấu hình cho mỗi trình bổ trợ.

Lọc proxy

Bạn có thể lọc những proxy nhận biết vi cổng mà một thực thể Edge Microgateway sẽ xử lý. Khi Edge Microgateway khởi động, công cụ này sẽ tải xuống tất cả các proxy nhận biết cổng vi cổng trong tổ chức được liên kết. Sử dụng cấu hình sau để giới hạn những proxy mà cổng vi mô sẽ xử lý. Ví dụ: cấu hình này giới hạn các proxy mà cổng vi mô sẽ xử lý thành 3 proxy: edgemicro_proxy-1, edgemicro_proxy-2edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Ẩn dữ liệu phân tích

Cấu hình sau ngăn thông tin về đường dẫn yêu cầu xuất hiện trong công cụ phân tích Edge. Thêm phần sau vào cấu hình cổng vào nhỏ để che giấu URI yêu cầu và/hoặc đường dẫn yêu cầu. Xin lưu ý rằng URI bao gồm tên máy chủ và các phần đường dẫn của yêu cầu.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Thiết lập Edge Microgateway sau tường lửa của công ty

Phiên bản 4.2.x được hỗ trợ

Nếu Edge Microgateway được cài đặt sau tường lửa, thì cổng này có thể không giao tiếp được với Apigee Edge. Trong trường hợp này, có hai lựa chọn mà bạn có thể cân nhắc:

Cách 1:

Lựa chọn đầu tiên là đặt tuỳ chọn Edgemicro: proxy_tunnel thành true trong tệp cấu hình microgateway:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

Khi proxy_tunneltrue, Edge Microgateway sử dụng phương thức HTTP CONNECT để tạo đường hầm các yêu cầu HTTP qua một kết nối TCP. (Điều này cũng xảy ra nếu các biến môi trường dùng để định cấu hình proxy được bật TLS).

Cách 2:

Lựa chọn thứ hai là chỉ định một proxy và đặt proxy_tunnel thành false trong tệp cấu hình cổng micrô. Ví dụ:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

Trong trường hợp này, bạn có thể đặt các biến sau để điều khiển máy chủ cho mỗi proxy HTTP mà bạn muốn sử dụng, hoặc những máy chủ không được xử lý các proxy Microgateway: HTTP_PROXY, HTTPS_PROXYNO_PROXY.

Bạn có thể đặt NO_PROXY dưới dạng danh sách các miền được phân tách bằng dấu phẩy mà Edge Microgateway không nên proxy. Ví dụ:

export NO_PROXY='localhost,localhost:8080'

Đặt HTTP_PROXYHTTPS_PROXY thành điểm cuối proxy HTTP Edge Microgateway có thể gửi thông báo tới điểm cuối đó. Ví dụ:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

Để biết thêm thông tin về các biến này, hãy xem:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


Xem thêm

Cách thiết lập Edge Microgateway sau tường lửa của công ty trên Cộng đồng Apigee.

Dùng ký tự đại diện trong các proxy nhận biết vi cổng

Bạn có thể dùng một hoặc nhiều ký tự đại diện "*" trong đường dẫn cơ sở của proxy edgemicro_* (nhận biết cổng vào vi mô). Ví dụ: đường dẫn cơ sở của /team/*/members cho phép khách hàng gọi https://[host]/team/blue/membershttps://[host]/team/green/members mà không cần tạo proxy API mới để hỗ trợ các nhóm mới. Xin lưu ý rằng /**/ không được hỗ trợ.

Lưu ý quan trọng: Apigee KHÔNG hỗ trợ việc sử dụng ký tự đại diện "*" làm thành phần đầu tiên của đường dẫn cơ sở. Ví dụ: tính năng này KHÔNG được hỗ trợ: tìm kiếm bằng /*/.


Gỡ lỗi và khắc phục sự cố

Kết nối với trình gỡ lỗi

Bạn có thể chạy Edge Microgateway bằng một trình gỡ lỗi, chẳng hạn như node-inspector. Việc này sẽ hữu ích khi khắc phục sự cố và gỡ lỗi các trình bổ trợ tuỳ chỉnh.

  1. Khởi động lại Edge Microgateway ở chế độ gỡ lỗi. Để thực hiện việc này, hãy thêm DEBUG=* vào đầu lệnh bắt đầu. Ví dụ:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    Lưu ý: Trên Windows, hãy sử dụng SET DEBUG=*

  2. Khởi động trình gỡ lỗi và thiết lập để nghe số cổng cho quá trình gỡ lỗi.
  3. Giờ đây, bạn có thể thực hiện các bước qua mã Edge Microgateway, đặt các điểm ngắt, xem biểu thức, v.v.

Bạn có thể chỉ định cờ Node.js tiêu chuẩn liên quan đến chế độ gỡ lỗi. Ví dụ: --nolazy giúp gỡ lỗi mã không đồng bộ.

Đang kiểm tra tệp nhật ký

Nếu bạn đang gặp sự cố, hãy nhớ kiểm tra tệp nhật ký để biết chi tiết thực thi và thông tin lỗi. Để biết thông tin chi tiết, hãy xem bài viết Quản lý tệp nhật ký.

Sử dụng tính năng bảo mật Khoá API

Khoá API cung cấp một cơ chế đơn giản để xác thực những ứng dụng gửi yêu cầu tới Edge Microgateway. Bạn có thể lấy khoá API bằng cách sao chép giá trị Khoá người dùng (còn gọi là Mã ứng dụng khách) từ một sản phẩm Apigee Edge có chứa proxy xác thực Edge Microgateway.

Lưu khoá vào bộ nhớ đệm

Khoá API được đổi lấy mã thông báo truy cập (được lưu vào bộ nhớ đệm). Bạn có thể tắt tính năng lưu vào bộ nhớ đệm bằng cách đặt tiêu đề Cache-Control: no-cache cho các yêu cầu gửi đến thành Edge Microgateway.

Sử dụng tính năng bảo mật mã thông báo OAuth2

Để biết thông tin chi tiết về cách sử dụng mã thông báo OAuth với yêu cầu proxy, hãy xem phần Secure Edge Microgateway.

Sử dụng khoá API

Để biết thông tin chi tiết về cách sử dụng khoá API với các yêu cầu proxy, hãy xem phần Secure Edge Microgateway.

Định cấu hình tên khoá API

Theo mặc định, x-api-key là tên dùng cho tiêu đề khoá API hoặc tham số truy vấn. Bạn có thể thay đổi giá trị mặc định này trong tệp cấu hình, như giải thích trong phần Thực hiện thay đổi cấu hình. Ví dụ: để thay đổi tên thành apiKey:

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey