Chính sách Ghi nhật ký tin nhắn

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu về Apigee X.
thông tin

Lợi ích

Một trong những cách tốt nhất để theo dõi các vấn đề trong môi trường thời gian chạy API là ghi nhật ký thông điệp. Bạn có thể đính kèm và định cấu hình chính sách MessageLogging trên API để ghi nhật ký các thông điệp tuỳ chỉnh vào một ổ đĩa cục bộ (chỉ Edge dành cho Đám mây riêng tư) hoặc vào nhật ký hệ thống.

Mẫu

Nhật ký hệ thống

<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
    <DateFormat>yyyy-MM-dd'T'HH:mm:ss.SSSZ</DateFormat>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>

Loại chính sách MessageLogging được sử dụng phổ biến là để đăng nhập vào tài khoản nhật ký hệ thống. Khi được định cấu hình cho nhật ký hệ thống, một proxy API sẽ chuyển tiếp thông báo nhật ký từ Apigee Edge đến một máy chủ nhật ký hệ thống từ xa. Bạn phải có sẵn một máy chủ hỗ trợ ghi nhật ký hệ thống. Nếu không, các dịch vụ quản lý nhật ký công khai, chẳng hạn như Splunk, Sumo Logic và Loggly, sẽ có sẵn. Xem phần Định cấu hình dịch vụ quản lý nhật ký của bên thứ ba.

Ví dụ: giả sử bạn cần ghi nhật ký thông tin về từng thông báo yêu cầu mà API của bạn nhận được từ các ứng dụng người dùng. Giá trị 3f509b58 biểu thị một giá trị khoá dành riêng cho dịch vụ loggly. Nếu bạn có tài khoản loggly, hãy thay thế khoá loggly. Thông điệp nhật ký được tạo sẽ chứa 4 giá trị: tổ chức, proxy API và tên môi trường được liên kết với giao dịch, cùng với giá trị của tham số truy vấn trên thông báo yêu cầu.

Nếu đang triển khai Edge để triển khai Đám mây riêng tư, bạn cũng có thể ghi thông điệp nhật ký vào một tệp.

Nhật ký hệ thống qua TLS/SSL

<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>6514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
    <SSLInfo>
        <Enabled>true</Enabled>
    </SSLInfo>
    <DateFormat>yyMMdd-HH:mm:ss.SSS</DateFormat>
  </Syslog>
  <logLevel>WARN</logLevel>
</MessageLogging>

Bạn có thể gửi tin nhắn cho nhà cung cấp dịch vụ ghi nhật ký thư bên thứ ba qua TLS/SSL bằng cách thêm khối <SSLInfo>.

Xoay tệp: kích thước

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
      <FileName>test.log</FileName>
      <FileRotationOptions rotateFileOnStartup="true">
        <FileRotationType>SIZE</FileRotationType>
        <MaxFileSizeInMB>10</MaxFileSizeInMB>
        <MaxFilesToRetain>10</MaxFilesToRetain>
      </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

Xoay tệp dựa trên kích thước tệp.

Xoay tệp: thời gian

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
    <FileName>test.log</FileName>
    <FileRotationOptions rotateFileOnStartup="true">
      <FileRotationType>TIME</FileRotationType>
      <RotationFrequency unit="minute">10</RotationFrequency>
      <MaxFilesToRetain>10</MaxFilesToRetain>
    </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

Xoay tệp dựa trên thời gian.

Xoay tệp: thời gian và kích thước

<MessageLogging name="LogPolicy">
  <File>
    <Message>This is a test message. Message id : {request.header.messageid}</Message>
    <FileName>test.log</FileName>
    <FileRotationOptions rotateFileOnStartup="true">
      <FileRotationType>TIME_SIZE</FileRotationType>
      <MaxFileSizeInMB>10</MaxFileSizeInMB>
      <MaxFilesToRetain>10</MaxFilesToRetain>
      <RotationFrequency unit="minute">10</RotationFrequency>
    </FileRotationOptions>
  </File>
  <logLevel>ERROR</logLevel>
</MessageLogging>

Xoay tệp dựa trên thời gian và kích thước.

Đã bật luồng

<MessageLogging name="LogPolicy">
  <File>
  ....
  ....
  </File>
  <BufferMessage>true</BufferMessage>
</MessageLogging>

Ghi nhật ký thông báo đã bật luồng


Tham chiếu phần tử

Sử dụng các thành phần sau để định cấu hình loại chính sách MessageLogging.

Tên trường Mô tả trường

File

Đích tệp trên máy. (Tính năng ghi nhật ký tệp chỉ được hỗ trợ trong Edge khi triển khai trên đám mây riêng tư.) Để biết thông tin về nơi lưu trữ tệp, hãy xem bài viết Ghi nhật ký vị trí tệp trong Edge dành cho Đám mây riêng tư.

Message Tạo thông báo cần gửi đến tệp nhật ký, kết hợp văn bản với các biến để thu thập thông tin bạn muốn. Xem phần Ứng dụng mẫu.
FileName Tên của tệp nhật ký nơi thông báo được ghi nhật ký.
FileRotationOptions
rotateFileOnStartup

Thuộc tính. Giá trị hợp lệ: true/false

Nếu bạn đặt chính sách này thành true, thì tệp nhật ký sẽ được xoay mỗi khi công cụ nhắn tin khởi động lại.

FileRotationType Chỉ định chính sách xoay vòng (size hoặc time) của tệp nhật ký.
MaxFileSizeInMB (Khi chọn size làm kiểu xoay) Chỉ định kích thước của tệp nhật ký sẽ kích hoạt máy chủ di chuyển thông điệp nhật ký sang một tệp riêng biệt. Sau khi tệp nhật ký đạt đến kích thước đã chỉ định, máy chủ sẽ đổi tên tệp nhật ký hiện tại.
RotationFrequency (Khi chọn time làm kiểu xoay vòng) Chỉ định thời gian tính bằng phút để kích hoạt máy chủ di chuyển thông điệp nhật ký sang một tệp riêng biệt. Sau khi hết khoảng thời gian đã chỉ định, tệp nhật ký hiện tại sẽ được đổi tên.
MaxFilesToRetain

Chỉ định số lượng tệp tối đa được giữ lại trong bối cảnh chế độ cài đặt xoay. Giá trị mặc định là 8.

Nếu bạn chỉ định không (0), thì các tệp nhật ký sẽ được lưu giữ vô thời hạn, nhưng phải tuân theo các chế độ cài đặt xoay tệp, mặc dù không có tệp nào bị xoá hoặc đổi tên. Do đó, để tránh lỗi đầy ổ đĩa trong tương lai, hãy đặt giá trị này thành một giá trị lớn hơn 0 hoặc triển khai một hệ thống tự động, xoá hoàn toàn hoặc lưu trữ các tệp nhật ký cũ được giữ lại, thông thường.

BufferMessage

Nếu bạn bật tính năng truyền trực tuyến HTTP cho proxy, thì thông báo yêu cầu/phản hồi sẽ không được lưu vào vùng đệm. Nếu bạn muốn ghi lại nội dung yêu cầu phân tích cú pháp thông báo luồng, hãy đặt BufferMessage thành true. Hãy xem thẻ mẫu "Đã bật luồng" để biết ví dụ. Mặc định: false

Syslog

Đích đến nhật ký hệ thống. Để gửi nhật ký hệ thống đến Splunk, Sumo Logic hoặc Loggly, hãy xem phần Định cấu hình dịch vụ quản lý nhật ký của bên thứ ba.

Message

Tạo thông báo cần gửi đến nhật ký hệ thống, kết hợp văn bản với các biến để thu thập thông tin bạn muốn. Xem phần Ứng dụng mẫu.

Lưu ý: Các biến phản hồi sẽ không có trong PostClientFlow sau một Luồng lỗi. Sử dụng biến thông báo để ghi lại thông tin phản hồi cho cả các trường hợp lỗi và thành công. Hãy xem thêm Ghi chú sử dụng.

Host Tên máy chủ hoặc địa chỉ IP của máy chủ nơi nhật ký hệ thống sẽ được gửi. Nếu bạn không bao gồm phần tử này, giá trị mặc định sẽ là localhost.
Port Cổng nơi nhật ký hệ thống đang chạy. Nếu bạn không thêm phần tử này, giá trị mặc định sẽ là 514.
Protocol TCP hoặc UDP (mặc định). Mặc dù UDP hoạt động hiệu quả hơn, nhưng giao thức TCP đảm bảo việc phân phối nhật ký thông báo đến máy chủ nhật ký hệ thống. Để gửi thông báo nhật ký hệ thống qua TLS/SSL, chỉ có TCP được hỗ trợ.
FormatMessage

true hoặc false (mặc định)

Không bắt buộc, nhưng bạn phải có <FormatMessage>true</FormatMessage> để sử dụng với Loggly.

Phần tử này cho phép bạn kiểm soát định dạng của nội dung do Apigee tạo ở đầu thông báo. Nếu bạn đặt chính sách này thành true, thì thông báo nhật ký hệ thống sẽ được thêm vào trước một số ký tự cố định, cho phép bạn lọc ra thông tin đó khỏi thông báo. Dưới đây là ví dụ về định dạng cố định:

<14>1 2023-03-20T09:24:39.039+0000 e49cd3a9-4cf6-48a7-abb9-7ftfe4d97d00 Apigee-Edge - - - Message starts here

Thông tin do Apigee tạo bao gồm:

  • <14> – Điểm ưu tiên (xem Giao thức nhật ký hệ thống) dựa trên cấp độ nhật ký và cấp cơ sở của thông báo.
  • 1 – Phiên bản nhật ký hệ thống hiện tại.
  • Ngày có số giờ chênh lệch múi giờ UTC (UTC = +0000).
  • Mã nhận dạng duy nhất (UUID) của trình xử lý tin nhắn.
  • "Apigee-Edge - - - "

Nếu bạn đặt thành false (mặc định), thì thông báo sẽ không được thêm vào trước các ký tự cố định đó.

PayloadOnly

true hoặc false (mặc định)

Phần tử này sẽ thiết lập định dạng của các thông báo do Apigee tạo để chỉ chứa phần nội dung của thông báo nhật ký hệ thống mà không chứa các ký tự được thêm vào trước do FormatMessage chỉ định.

Nếu bạn không thêm phần tử này hoặc để trống phần tử này, giá trị mặc định sẽ là false.

Hãy xem FormatMessage.

DateFormat

Không bắt buộc.

Chuỗi mẫu định dạng dùng để định dạng dấu thời gian cho từng thông điệp nhật ký. Theo mặc định, Apigee sử dụng yyyy-MM-dd'T'HH:mm:ss.SSSZ. Hành vi của mẫu này được mô tả trong tài liệu về lớp SimpleDateFormat của Java.

SSLInfo

Cho phép bạn ghi nhật ký thông báo qua SSL/TLS. Sử dụng với phần tử con <Enabled>true</Enabled>.

Nếu bạn không thêm phần tử này hoặc để trống, thì giá trị mặc định sẽ là false (không có TLS/SSL).

<SSLInfo>
    <Enabled>true</Enabled>
</SSLInfo>

Bạn có thể định cấu hình thẻ <SSLInfo> giống như trên TargetEndpoint, bao gồm cả việc bật TLS/SSL hai chiều, như mô tả trong Tài liệu tham khảo về cấu hình proxy API. Chỉ hỗ trợ giao thức TCP.

logLevel

Không bắt buộc.

Giá trị hợp lệ: INFO (mặc định), ALERT, WARN, ERROR

Đặt mức thông tin cụ thể được đưa vào nhật ký tin nhắn.

Nếu bạn đang dùng phần tử FormatMessage (đặt thành true), thì chế độ cài đặt của logLevel sẽ ảnh hưởng đến điểm ưu tiên đã tính (con số nằm trong dấu ngoặc góc) trong thông tin do Apigee tạo ở phía trước thông báo.

Giản đồ


Ghi chú sử dụng

Khi đính kèm chính sách MessageLogging vào luồng proxy API, hãy cân nhắc đặt chính sách đó vào phản hồi ProxyEndpoint, trong một luồng đặc biệt có tên là PostClientFlow. PostClientFlow thực thi sau khi phản hồi được gửi đến ứng dụng khách yêu cầu. Điều này đảm bảo rằng tất cả các chỉ số đều có sẵn để ghi nhật ký. Để biết chi tiết về cách sử dụng PostClientFlow, hãy xem Tài liệu tham khảo về cấu hình proxy API.

PostClientFlow đặc biệt ở hai cách:

  1. Hoạt động này chỉ được thực thi trong quy trình phản hồi.
  2. Đây là luồng duy nhất được thực thi sau khi proxy chuyển sang trạng thái lỗi.

Vì được thực thi bất kể proxy thành công hay không thành công, bạn có thể đặt các chính sách MessageLogging trong PostClientFlow và đảm bảo rằng các chính sách này luôn thực thi.

Hình ảnh Trace sau đây cho thấy một chính sách MessageLogging đang thực thi như một phần của PostClientFlow, sau khi DefaultFaultRule thực thi:

Trong ví dụ này, chính sách Xác minh khoá API đã gây ra lỗi do khoá không hợp lệ.

Dưới đây là định nghĩa ProxyEndpoint bao gồm PostClientFlow:

<ProxyEndpoint name="default">
  ...
  <PostClientFlow>
    <Response>
      <Step>
        <Name>Message-Logging-1</Name>
      </Step>
    </Response>
  </PostClientFlow>
  ...
</ProxyEndpoint>

Edge ghi lại thông báo dưới dạng văn bản đơn giản và bạn có thể định cấu hình ghi nhật ký để thêm các biến, chẳng hạn như ngày và giờ nhận được yêu cầu hoặc phản hồi, danh tính người dùng trong yêu cầu, địa chỉ IP nguồn đã gửi yêu cầu, v.v. Thông báo của Edge ghi lại theo cách không đồng bộ, nghĩa là API của bạn sẽ không có độ trễ do việc chặn chú thích.

Chính sách MessageLogging ghi thông điệp đã ghi trong bộ nhớ vào một vùng đệm. Trình ghi nhật ký thông báo sẽ đọc thông điệp từ vùng đệm rồi ghi vào đích mà bạn định cấu hình. Mỗi đích đến có vùng đệm riêng.

Nếu tốc độ ghi vào bộ đệm tăng vượt quá tốc độ đọc, thì bộ đệm bị tràn và ghi nhật ký sẽ không thành công. Nếu trường hợp này xảy ra, bạn có thể thấy một thông báo chứa nội dung sau đây trong tệp nhật ký:

Log message size exceeded. Increase the max message size setting

Nếu bạn gặp vấn đề này trong Edge dành cho Private Cloud 4.15.07 trở xuống, hãy tìm tệp message-logging.properties và sử dụng giải pháp sau:

Tăng thuộc tính max.log.message.size.in.kb (giá trị mặc định = 128 KB) trong tệp message-logging.properties.

Đối với Edge dành cho Private Cloud phiên bản 4.16.01 trở lên, hãy đặt thuộc tính conf/message-logging.properties+max. log.message.size.in.kb trong tệp /opt/apigee/customer/application/message-processor.properties rồi khởi động lại Trình xử lý thư. Xin lưu ý rằng ban đầu, tài sản này được nhận xét theo mặc định.

Lưu ý: Các biến thông báo phản hồi trong Edge không hoạt động trong Luồng lỗi. Các biến này cũng không có trong PostClientFlow nếu quy trình trước đó là Luồng lỗi. Nếu bạn muốn ghi lại thông tin phản hồi từ PostClientFlow, hãy sử dụng đối tượng message. Bạn có thể sử dụng đối tượng này để lấy tiêu đề và các thông tin khác trong phản hồi cho dù có lỗi hay không. Hãy xem bài viết Các biến thông báo để biết thêm thông tin và ví dụ.

Kiểm soát dấu thời gian của thông điệp nhật ký trên Edge cho Cloud riêng tư

Theo mặc định, dấu thời gian trong tất cả thông điệp nhật ký có định dạng:

yyyy-MM-dd'T'HH:mm:ss.SSSZ

Bạn có thể ghi đè giá trị mặc định trên toàn hệ thống này cho các đích nhật ký hệ thống bằng cách sử dụng phần tử DateFormat. Hành vi của mẫu này được mô tả trong tài liệu về lớp SimpleDateFormat của Java. Theo định nghĩa đó, yyyy sẽ được thay thế bằng năm gồm 4 chữ số, MM sẽ được thay thế bằng số tháng gồm 2 chữ số, v.v. Định dạng trên có thể dẫn đến một chuỗi có dạng sau:

2022-09-28T22:38:11.721+0000

Bạn có thể sử dụng thuộc tính conf_system_apigee.syslogger.dateFormat trên Trình xử lý thông báo của Edge để kiểm soát định dạng đó. Ví dụ: thay đổi định dạng thông báo thành:

yy/MM/dd'T'HH:mm:ss.SSSZ

..thay thế dấu gạch ngang bằng dấu gạch chéo và rút ngắn thành năm gồm 2 chữ số, ghi lại dấu thời gian theo dạng:

22/09/28T22:38:11.721+0000

Cách thay đổi định dạng:

  1. Mở tệp message-processor.properties trong một trình chỉnh sửa. Nếu tệp chưa tồn tại, hãy tạo tệp:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Đặt các thuộc tính như mong muốn:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính thuộc sở hữu của người dùng "apigee":
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Khởi động lại Trình xử lý thông báo Edge:
    > /opt/apigee/apigee-service/bin/apigee-service cạnh-message-processor khởi động lại

Vị trí tệp ghi nhật ký trên Edge dành cho Cloud riêng tư

Edge dành cho Private Cloud 4.16.01 trở lên

Theo mặc định, nhật ký thông báo trên Đám mây riêng tư nằm trong thư mục sau trên nút Trình xử lý thư:

/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/

Bạn có thể thay đổi vị trí nhật ký mặc định bằng cách sửa đổi các thuộc tính trong tệp message-logging.properties trên Trình xử lý thư:

  • bin_setenv_data_dir – Đặt đường dẫn gốc để lưu trữ tệp nhật ký. Ví dụ: bin_setenv_data_dir=/opt/apigee/var/log
  • conf_message-logging_log.root.dir – Nếu bạn đặt giá trị này thành một đường dẫn tương đối, chẳng hạn như conf/message-logging.properties+log.root.dir=custom/folder/, the path is appended to the bin_setenv_data_dir location.

    Nếu bạn đặt giá trị này thành một đường dẫn tuyệt đối, chẳng hạn như conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages, thì nhật ký thông báo sẽ được lưu trữ trong /opt/apigee/var/log/messages/messagelog/. Đường dẫn tuyệt đối sẽ được ưu tiên hơn bin_setenv_data_dir.

    Xin lưu ý rằng bạn phải tham chiếu đến thuộc tính dưới dạng conf/message-logging.properties+log.root.dir vì thuộc tính này bị nhận xét theo mặc định. Hãy xem bài viết Cách đặt mã thông báo đang được nhận xét để biết thêm thông tin.

Nếu bạn muốn lưu trữ các tệp nhật ký trong một cấu trúc tệp phẳng để tất cả các tệp nhật ký được đặt trong cùng một thư mục, hãy đặt conf/message-logging.properties+enable.flat.directory.structure thành true trong tệp message-logging.properties. Thông báo được lưu trữ trong thư mục do các thuộc tính ở trên chỉ định và tên tệp sẽ có dạng {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}.

Cách đặt các thuộc tính này:

  1. Mở tệp message-processor.properties trong một trình chỉnh sửa. Nếu tệp chưa tồn tại, hãy tạo tệp:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Đặt các thuộc tính như mong muốn:
    conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính thuộc sở hữu của người dùng "apigee":
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Khởi động lại thành phần Edge:
    > /opt/apigee/apigee-service/bin/apigee-service cạnh-message-processor khởi động lại

Edge dành cho Private Cloud 4.15.07 trở xuống

Theo mặc định, nhật ký thông báo nằm ở vị trí sau trên trình xử lý thông báo:

/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/

Bạn có thể thay đổi vị trí nhật ký mặc định bằng cách sửa đổi các thuộc tính sau trong tệp message-logging.properties trên trình xử lý thư:

  • data.dir – Thiết lập đường dẫn gốc cho bộ nhớ tệp nhật ký. Ví dụ: data.dir=/opt/apigee4/var/log
  • log.root.dir – Nếu bạn đặt giá trị này thành một đường dẫn tương đối, chẳng hạn như log.root.dir=custom/folder/, thì đường dẫn này sẽ được thêm vào vị trí data.dir.

Ví dụ: việc kết hợp 2 thuộc tính sẽ đặt thư mục ghi nhật ký tại /opt/apigee4/var/log/custom/folder/messagelog/ (lưu ý rằng /messagelog sẽ được thêm tự động).

Nếu bạn đặt giá trị này thành một đường dẫn tuyệt đối, chẳng hạn như log.root.dir=/opt/apigee4/var/log/messages, nhật ký tin nhắn sẽ được lưu trữ trong /opt/apigee4/var/log/messages/messagelog/. Đường dẫn tuyệt đối trong log.root.dir được ưu tiên hơn data.dir.

Nếu bạn muốn lưu trữ các tệp nhật ký trong một cấu trúc tệp phẳng để tất cả tệp nhật ký được đặt trong cùng một thư mục, hãy đặt thuộc tính enable.flat.directory.structure thành true trong tệp message-logging.properties trên Bộ xử lý thư. Tin nhắn được lưu trữ trong thư mục do các thuộc tính ở trên chỉ định và tên tệp có dạng {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}.

Giá trị mặc định cho các biến trong mẫu thông báo

Bạn có thể chỉ định giá trị mặc định cho từng biến trong mẫu thông báo một cách riêng biệt. Ví dụ: nếu không thể phân giải biến request.header.id, thì giá trị của biến đó sẽ được thay thế bằng giá trị unknown.

<Message>This is a test message. id = {request.header.id:unknown}</Message>

Bạn có thể chỉ định một giá trị mặc định chung cho tất cả biến chưa được giải quyết bằng cách đặt thuộc tính defaultVariableValue trên phần tử Message:

<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>

Định cấu hình dịch vụ quản lý nhật ký của bên thứ ba

Chính sách MessageLogging cho phép bạn gửi thông báo nhật ký hệ thống đến các dịch vụ quản lý nhật ký của bên thứ ba, chẳng hạn như Splunk, Sumo Logic và Loggly. Nếu bạn muốn gửi nhật ký hệ thống đến một trong các dịch vụ đó, hãy xem tài liệu của dịch vụ đó để định cấu hình máy chủ lưu trữ, cổng và giao thức của dịch vụ, sau đó đặt phần tử Nhật ký hệ thống trong chính sách này cho phù hợp.

Hãy xem tài liệu sau đây để biết cấu hình quản lý nhật ký của bên thứ ba:

Tham chiếu lỗi

Phần này mô tả các mã lỗi và thông báo lỗi được trả về, cũng như các biến lỗi do Edge đặt khi chính sách này kích hoạt lỗi. Thông tin này đóng vai trò quan trọng trong việc phát triển các quy tắc lỗi để xử lý lỗi. Để tìm hiểu thêm, hãy xem Những điều bạn cần biết về lỗi chính sáchXử lý lỗi.

Lỗi thời gian chạy

Những lỗi này có thể xảy ra khi thực thi chính sách.

Mã lỗi Trạng thái HTTP Nguyên nhân
steps.messagelogging.StepDefinitionExecutionFailed 500 Xem chuỗi lỗi.

Lỗi triển khai

Những lỗi này có thể xảy ra khi bạn triển khai proxy chứa chính sách này.

Tên lỗi Nguyên nhân Khắc phục
InvalidProtocol Lỗi này có thể không triển khai được chính sách MessageLogging nếu giao thức được chỉ định trong phần tử <Protocol> không hợp lệ. Các giao thức hợp lệ là TCP và UDP. Để gửi thông báo nhật ký hệ thống qua TLS/SSL, chỉ TCP được hỗ trợ.
InvalidPort Quá trình triển khai chính sách MessageLogging có thể không thành công với lỗi này nếu số cổng không được chỉ định trong phần tử <Port> hoặc nếu số cổng không hợp lệ. Số cổng phải là một số nguyên lớn hơn 0.

Biến lỗi

Các biến này được đặt khi xảy ra lỗi thời gian chạy. Để biết thêm thông tin, hãy xem Những điều bạn cần biết về lỗi chính sách.

Biến Trong đó Ví dụ:
fault.name="fault_name" fault_name là tên của lỗi, như liệt kê trong bảng Lỗi thời gian chạy ở trên. Tên lỗi là phần cuối cùng của mã lỗi. fault.name Matches "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name là tên của chính sách báo lỗi do người dùng chỉ định. messagelogging.ML-LogMessages.failed = true

Ví dụ về phản hồi lỗi

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}

Ví dụ về quy tắc lỗi

<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>


Biến luồng

Các biến sau được điền sẵn khi không tuân thủ chính sách.

  • messagelogging.failed
  • messagelogging.{stepdefinition-name}.failed

Chủ đề có liên quan