মেসেজলগিং নীতি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

কি

API রানটাইম পরিবেশে সমস্যাগুলি ট্র্যাক করার সেরা উপায়গুলির মধ্যে একটি হল বার্তাগুলি লগ করা। আপনি স্থানীয় ডিস্কে (শুধুমাত্র ব্যক্তিগত ক্লাউডের জন্য প্রান্ত) বা syslog-এ কাস্টম বার্তা লগ করার জন্য আপনার API-এ একটি MessageLogging নীতি সংযুক্ত এবং কনফিগার করতে পারেন।

নমুনা

সিসলগ

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

MessageLogging নীতির একটি সাধারণ ব্যবহার হল একটি syslog অ্যাকাউন্টে লগ করা। syslog-এর জন্য কনফিগার করা হলে, একটি API প্রক্সি Apigee Edge থেকে একটি দূরবর্তী syslog সার্ভারে লগ বার্তা ফরোয়ার্ড করবে। আপনার ইতিমধ্যেই একটি syslog সার্ভার উপলব্ধ থাকতে হবে৷ যদি না হয়, পাবলিক লগ ম্যানেজমেন্ট পরিষেবা, যেমন স্প্লঙ্ক, সুমো লজিক, এবং লগলি, উপলব্ধ। তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা দেখুন।

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার এপিআই গ্রাহক অ্যাপ থেকে প্রাপ্ত প্রতিটি অনুরোধ বার্তা সম্পর্কে তথ্য লগ করতে হবে। মান 3f509b58 লগলি পরিষেবার জন্য নির্দিষ্ট একটি মূল মান উপস্থাপন করে। আপনার লগলি অ্যাকাউন্ট থাকলে, আপনার লগলি কী প্রতিস্থাপন করুন। উত্পন্ন লগ বার্তাটি চারটি মান দিয়ে তৈরি করা হবে: অনুরোধ বার্তায় একটি ক্যোয়ারী প্যারামিটারের মান সহ লেনদেনের সাথে যুক্ত সংস্থা, API প্রক্সি এবং পরিবেশের নাম৷

আপনার যদি ব্যক্তিগত ক্লাউড স্থাপনার জন্য একটি এজ থাকে তবে আপনি একটি ফাইলে লগ বার্তাও লিখতে পারেন।

TLS/SSL এর উপর Syslog

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

আপনি <SSLInfo> ব্লক যোগ করে TLS/SSL এর মাধ্যমে তৃতীয় পক্ষের বার্তা লগিং প্রদানকারীদের কাছে বার্তা পাঠাতে পারেন।

ফাইল ঘূর্ণন: আকার

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

ফাইলের আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময়

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

সময়ের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময় এবং আকার

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

সময় এবং আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

স্ট্রিম-সক্ষম

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

স্ট্রিম-সক্ষম বার্তা লগিং


উপাদান রেফারেন্স

MessageLogging নীতির ধরন কনফিগার করতে নিম্নলিখিত উপাদানগুলি ব্যবহার করুন।

ক্ষেত্রের নাম ক্ষেত্রের বিবরণ

File

স্থানীয় ফাইলের গন্তব্য। (ফাইল লগিং শুধুমাত্র ব্যক্তিগত ক্লাউড স্থাপনার জন্য এজে সমর্থিত।) ফাইলগুলি কোথায় সংরক্ষণ করা হয় সে সম্পর্কে তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

Message আপনি যে তথ্য চান তা ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্য একত্রিত করে লগ ফাইলে পাঠানোর জন্য বার্তাটি তৈরি করুন। নমুনা দেখুন.
FileName লগ ফাইলের মূল নাম। একটি ফাইল পাথ নির্দিষ্ট করবেন না। উদাহরণস্বরূপ, এই FileName উপাদানটি একটি ফাইল পাথ নির্দিষ্ট করে এবং এটি অবৈধ:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName>

এই কোড শুধুমাত্র একটি ফাইলের নাম নির্দিষ্ট করে এবং বৈধ:

<FileName>mylog.log</FileName>

ফাইলটি কোথায় সংরক্ষণ করা হয়েছে সে সম্পর্কে তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজ-এ লগ ফাইলের অবস্থান দেখুন।

FileRotationOptions
rotateFileOnStartup

বৈশিষ্ট্য বৈধ মান: true / false

যদি সত্য হিসাবে সেট করা হয়, তাহলে প্রতিবার মেসেজিং ইঞ্জিন পুনরায় চালু হলে লগ ফাইলটি ঘোরানো হয়।

FileRotationType একটি লগ ফাইলের ঘূর্ণন নীতি ( size বা time ) নির্দিষ্ট করে।
MaxFileSizeInMB (ঘূর্ণন প্রকার হিসাবে size নির্বাচন করার সময়) একটি লগ ফাইলের আকার নির্দিষ্ট করে যা সার্ভারকে একটি পৃথক ফাইলে লগ বার্তাগুলি সরাতে ট্রিগার করে। লগ ফাইলটি নির্দিষ্ট আকারে পৌঁছানোর পরে, সার্ভার বর্তমান লগ ফাইলটির নাম পরিবর্তন করে।
RotationFrequency (ঘূর্ণন প্রকার হিসাবে time নির্বাচন করার সময়) মিনিটের মধ্যে সময় নির্দিষ্ট করে যা সার্ভারকে একটি পৃথক ফাইলে লগ বার্তাগুলি সরাতে ট্রিগার করে। নির্দিষ্ট ব্যবধান অতিবাহিত হওয়ার পর, বর্তমান লগ ফাইলের নাম পরিবর্তন করা হয়।
MaxFilesToRetain

আপনার ঘূর্ণন সেটিংসের প্রেক্ষাপটে সর্বোচ্চ কতটি ফাইল রাখা হবে তা নির্দিষ্ট করে। ডিফল্ট মান হল 8

আপনি যদি শূন্য (0) নির্দিষ্ট করেন, লগ ফাইলগুলি অনির্দিষ্টকালের জন্য ধরে রাখা হয়, তবে আপনার ফাইল ঘূর্ণন সেটিংসের সাপেক্ষে, যদিও কোনো ফাইল মুছে ফেলা বা পুনঃনামকরণ করা হয় না। অতএব, ভবিষ্যতের ডিস্ক-পূর্ণ ত্রুটিগুলি এড়াতে, এটিকে শূন্যের চেয়ে বেশি একটি মান সেট করুন, বা পুরানো ধরে রাখা লগ ফাইলগুলিকে শুদ্ধ বা সংরক্ষণ করার একটি নিয়মিত, স্বয়ংক্রিয় সিস্টেম প্রয়োগ করুন।

BufferMessage

যদি আপনার প্রক্সির জন্য HTTP স্ট্রিমিং সক্ষম করা থাকে , অনুরোধ/প্রতিক্রিয়া বার্তাগুলি বাফার করা হয় না৷ আপনি যদি এমন সামগ্রী লগ করতে চান যার জন্য ফ্লো বার্তাটি পার্স করা প্রয়োজন, তাহলে BufferMessage কে সত্যে সেট করুন। একটি উদাহরণের জন্য "স্ট্রিম-সক্ষম" নমুনা ট্যাব দেখুন। ডিফল্ট: মিথ্যা

Syslog

একটি syslog গন্তব্য. Splunk, Sumo Logic, বা Loggly-এ syslog পাঠাতে, তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবা কনফিগার করা দেখুন।

Message

আপনি যে তথ্য চান তা ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্য একত্রিত করে syslog-এ পাঠানোর জন্য বার্তাটি তৈরি করুন। নমুনা দেখুন.

দ্রষ্টব্য: একটি ত্রুটি ফ্লো অনুসরণ করে পোস্টক্লায়েন্টফ্লোতে প্রতিক্রিয়া ভেরিয়েবল উপলব্ধ হবে না। ত্রুটি এবং সাফল্য উভয় পরিস্থিতির জন্য প্রতিক্রিয়া তথ্য লগ করতে বার্তা ভেরিয়েবল ব্যবহার করুন। এছাড়াও ব্যবহার নোট দেখুন.

Host সার্ভারের হোস্টনাম বা IP ঠিকানা যেখানে syslog পাঠানো উচিত। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্ট লোকালহোস্ট।
Port পোর্ট যেখানে সিসলগ চলছে। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্ট 514।
Protocol TCP বা UDP (ডিফল্ট)। যদিও UDP অধিক কার্যক্ষম, TCP প্রোটোকল syslog সার্ভারে বার্তা লগ ডেলিভারির নিশ্চয়তা দেয়। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
FormatMessage

true বা false (ডিফল্ট)

ঐচ্ছিক, কিন্তু লগলি ব্যবহার করার জন্য <FormatMessage>true</FormatMessage> প্রয়োজন।

এই উপাদানটি আপনাকে বার্তার সাথে যুক্ত Apigee-উত্পাদিত সামগ্রীর বিন্যাস নিয়ন্ত্রণ করতে দেয়। সত্য হিসাবে সেট করা হলে, syslog বার্তাটি একটি নির্দিষ্ট সংখ্যক অক্ষর দ্বারা প্রিপেন্ড করা হয়, যা আপনাকে বার্তাগুলি থেকে সেই তথ্য ফিল্টার করতে দেয়। এখানে স্থির বিন্যাসের জন্য একটি উদাহরণ:

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

Apigee-উত্পন্ন তথ্য অন্তর্ভুক্ত:

  • <14> - একটি অগ্রাধিকার স্কোর ( সিসলগ প্রোটোকল দেখুন) লগ লেভেল এবং বার্তার সুবিধা স্তরের উপর ভিত্তি করে।
  • 1 - বর্তমান syslog সংস্করণ।
  • একটি UTC অফসেট সহ তারিখ (UTC = +0000)।
  • বার্তা প্রসেসর UUID.
  • "অ্যাপিজি-এজ - - -"

মিথ্যা (ডিফল্ট) হিসাবে সেট করা থাকলে, বার্তাটি সেই স্থির অক্ষরগুলির সাথে আগে লেখা হয় না।

PayloadOnly

true বা false (ডিফল্ট)

এই উপাদানটি Apigee-উত্পন্ন বার্তাগুলির বিন্যাস সেট করে যাতে FormatMessage দ্বারা নির্দিষ্ট করা অক্ষরগুলি ছাড়াই শুধুমাত্র syslog বার্তার মূল অংশ থাকে।

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি না রাখেন তবে ডিফল্ট মান false

FormatMessage দেখুন।

DateFormat

ঐচ্ছিক।

প্রতিটি লগ বার্তার জন্য টাইমস্ট্যাম্প ফর্ম্যাট করতে ব্যবহার করার জন্য একটি ফর্ম্যাটিং টেমপ্লেট স্ট্রিং৷ ডিফল্টরূপে, Apigee yyyy-MM-dd'T'HH:mm:ss.SSSZ ব্যবহার করে। জাভা এর SimpleDateFormat ক্লাসের ডকুমেন্টেশনে এই টেমপ্লেটটির আচরণ বর্ণনা করা হয়েছে।

SSLInfo

আপনাকে SSL/TLS এর মাধ্যমে বার্তা লগ করতে দেয়। সাব-এলিমেন্টের সাথে ব্যবহার করুন <Enabled>true</Enabled>

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি না রাখেন তবে ডিফল্ট মানটি মিথ্যা (কোনও TLS/SSL নেই)৷

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

API প্রক্সি কনফিগারেশন রেফারেন্সে বর্ণিত দ্বি-মুখী TLS/SSL সক্ষম করা সহ, আপনি TargetEndpoint-এ <SSLInfo> ট্যাগটিকে একইভাবে কনফিগার করতে পারেন। শুধুমাত্র TCP প্রোটোকল সমর্থিত।

logLevel

ঐচ্ছিক।

বৈধ মান: INFO (ডিফল্ট), ALERT , WARN , ERROR

বার্তা লগে অন্তর্ভুক্ত করার জন্য তথ্যের একটি নির্দিষ্ট স্তর সেট করুন।

আপনি যদি FormatMessage উপাদানটি ব্যবহার করেন (এটি সত্যে সেট করা), আপনার logLevel সেটিং বার্তার সাথে যুক্ত Apigee-উত্পন্ন তথ্যে গণনাকৃত অগ্রাধিকার স্কোরকে (কোণ বন্ধনীর ভিতরের সংখ্যা) প্রভাবিত করে।

স্কিমাস


ব্যবহারের নোট

একটি API প্রক্সি ফ্লোতে একটি MessageLogging নীতি সংযুক্ত করার সময়, এটিকে প্রক্সিএন্ডপয়েন্ট প্রতিক্রিয়াতে পোস্টক্লায়েন্টফ্লো নামে একটি বিশেষ প্রবাহে রাখার কথা বিবেচনা করুন৷ অনুরোধকারী ক্লায়েন্টের কাছে প্রতিক্রিয়া পাঠানোর পরে পোস্টক্লায়েন্টফ্লো কার্যকর করে, যা নিশ্চিত করে যে সমস্ত মেট্রিক্স লগিংয়ের জন্য উপলব্ধ। PostClientFlow ব্যবহার করার বিস্তারিত জানার জন্য, API প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।

পোস্টক্লায়েন্টফ্লো দুটি উপায়ে বিশেষ:

  1. এটি শুধুমাত্র প্রতিক্রিয়া প্রবাহের অংশ হিসাবে কার্যকর করা হয়েছে।
  2. প্রক্সি ত্রুটির অবস্থায় প্রবেশ করার পর এটিই একমাত্র প্রবাহ।

প্রক্সি সফল হোক বা ব্যর্থ হোক না কেন এটি কার্যকর করা হয়েছে, আপনি PostClientFlow-এ MessageLogging নীতিগুলি রাখতে পারেন এবং নিশ্চিত হতে পারেন যে তারা সর্বদা কার্যকর করবে৷

নিম্নোক্ত ট্রেস চিত্রটি ডিফল্টফল্ট রুল কার্যকর হওয়ার পরে পোস্টক্লায়েন্টফ্লো-এর অংশ হিসাবে একটি মেসেজলগিং নীতি কার্যকর করা দেখায়:

এই উদাহরণে, ভেরিফাই এপিআই কী নীতি একটি অবৈধ কী-এর কারণে ত্রুটি সৃষ্টি করেছে।

নীচে প্রক্সিএন্ডপয়েন্ট সংজ্ঞা দেখানো হয়েছে যা পোস্টক্লায়েন্টফ্লো অন্তর্ভুক্ত করে:

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

এজ বার্তাগুলিকে সাধারণ পাঠ্য হিসাবে লগ করে, এবং আপনি ভেরিয়েবলগুলি অন্তর্ভুক্ত করার জন্য লগিং কনফিগার করতে পারেন, যেমন অনুরোধ বা প্রতিক্রিয়া প্রাপ্ত হওয়ার তারিখ এবং সময়, অনুরোধে ব্যবহারকারীর পরিচয়, উৎস আইপি ঠিকানা যেখান থেকে অনুরোধ পাঠানো হয়েছিল এবং আরও অনেক কিছু। এজ লগ মেসেজ অ্যাসিঙ্ক্রোনাস করে, অর্থাৎ কলআউট ব্লক করার কারণে হতে পারে এমন কোনো লেটেন্সি আপনার এপিআই-তে প্রবর্তন করা হয়নি।

মেসেজলগিং নীতি একটি বাফারে মেমরিতে লগ করা বার্তা লেখে। বার্তা লগার বাফার থেকে বার্তা পড়ে এবং তারপর আপনার কনফিগার করা গন্তব্যে লেখে। প্রতিটি গন্তব্যের নিজস্ব বাফার আছে।

বাফারে লেখার হার যদি পড়ার হারের চেয়ে বেড়ে যায়, বাফার ওভারফ্লো হয় এবং লগিং ব্যর্থ হবে। যদি এটি ঘটে, আপনি লগ ফাইলে নিম্নলিখিত সম্বলিত একটি বার্তা খুঁজে পেতে পারেন:

Log message size exceeded. Increase the max message size setting

আপনি যদি প্রাইভেট ক্লাউড 4.15.07 এবং তার আগের এজ-এ এই সমস্যার সম্মুখীন হন, তাহলে message-logging.properties ফাইলটি সনাক্ত করুন এবং এই সমাধানটি ব্যবহার করুন:

message-logging.properties ফাইলে max.log.message.size.in.kb প্রপার্টি (ডিফল্ট মান = 128 KB) বাড়ান।

এজ ফর প্রাইভেট ক্লাউড 4.16.01 এবং পরবর্তীতে, conf/message-logging.properties+max. log.message.size.in.kb /opt/apigee/customer/application/message-processor.properties ফাইলে conf/message-logging.properties+max. log.message.size.in.kb প্রপার্টি এবং মেসেজ প্রসেসর রিস্টার্ট করুন। দয়া করে মনে রাখবেন যে এই সম্পত্তিটি প্রাথমিকভাবে ডিফল্টরূপে মন্তব্য করা হয়।

দ্রষ্টব্য: Edge এ প্রতিক্রিয়া বার্তা ভেরিয়েবল ত্রুটি ফ্লো থেকে পাওয়া যায় না। এই ভেরিয়েবলগুলি PostClientFlow-এও উপলভ্য নয় যদি পূর্ববর্তী প্রবাহটি ত্রুটি ফ্লো হয়। আপনি PostClientFlow থেকে প্রতিক্রিয়া তথ্য লগ করতে চান, বার্তা বস্তু ব্যবহার করুন. আপনি এই বস্তুটি ব্যবহার করে হেডার এবং প্রতিক্রিয়া থেকে অন্যান্য তথ্য পেতে পারেন যে কোনও ত্রুটি ছিল কিনা। আরও তথ্য এবং একটি উদাহরণের জন্য বার্তা ভেরিয়েবল দেখুন।

ব্যক্তিগত ক্লাউডের জন্য এজে লগ মেসেজ টাইমস্ট্যাম্প নিয়ন্ত্রণ করা

ডিফল্টরূপে, সমস্ত লগ বার্তার টাইমস্ট্যাম্পের বিন্যাস থাকে:

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

DateFormat উপাদান ব্যবহার করে syslog গন্তব্যগুলির জন্য এই সিস্টেম-ব্যাপী ডিফল্টটি ওভাররাইড করা যেতে পারে। জাভা এর SimpleDateFormat ক্লাসের ডকুমেন্টেশনে এই টেমপ্লেটটির আচরণ বর্ণনা করা হয়েছে। সেই সংজ্ঞা অনুসারে, yyyy 4-সংখ্যার বছর দিয়ে প্রতিস্থাপিত করা হবে, MM 2-অঙ্কের মাসের সংখ্যা দিয়ে প্রতিস্থাপিত করা হবে, ইত্যাদি। উপরের বিন্যাসের ফলে এই ফর্মের একটি স্ট্রিং হতে পারে:

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

আপনি যে বিন্যাস নিয়ন্ত্রণ করতে এজ মেসেজ প্রসেসরে conf_system_apigee.syslogger.dateFormat বৈশিষ্ট্য ব্যবহার করতে পারেন। উদাহরণস্বরূপ, বার্তা বিন্যাস এতে পরিবর্তন করুন:

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

..ড্যাশগুলিকে স্ল্যাশ দিয়ে প্রতিস্থাপন করা, এবং একটি 2-সংখ্যার বছরে সংক্ষিপ্ত করা, ফর্মটিতে একটি টাইমস্ট্যাম্প রেকর্ড করে:

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

বিন্যাস পরিবর্তন করতে:

  1. একটি এডিটরে message-processor.properties ফাইলটি খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দ অনুযায়ী বৈশিষ্ট্য সেট করুন:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'apigee' ব্যবহারকারীর মালিকানাধীন:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. এজ মেসেজ প্রসেসর রিস্টার্ট করুন:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor পুনরায় চালু করুন

ব্যক্তিগত ক্লাউডের জন্য এজে ফাইলের অবস্থান লগ করুন

প্রাইভেট ক্লাউড 4.16.01 এবং তার পরের জন্য এজ

ডিফল্টরূপে, ব্যক্তিগত ক্লাউড বার্তা লগগুলি বার্তা প্রসেসর নোডগুলিতে নিম্নলিখিত ডিরেক্টরিতে অবস্থিত:

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

আপনি মেসেজ প্রসেসরে message-logging.properties ফাইলে বৈশিষ্ট্য পরিবর্তন করে ডিফল্ট লগ অবস্থান পরিবর্তন করতে পারেন:

  • bin_setenv_data_dir - লগ ফাইল স্টোরেজের জন্য রুট পাথ সেট করে। উদাহরণস্বরূপ, bin_setenv_data_dir=/opt/apigee/var/log
  • conf_message-logging_log.root.dir - যদি আপনি এটিকে একটি আপেক্ষিক পাথে সেট করেন, যেমন conf/message-logging.properties+log.root.dir=custom/folder/ , the path is appended to the bin_setenv_data_dir location.

    আপনি যদি এটিকে একটি পরম পাথে সেট করেন, যেমন conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages , বার্তা লগগুলি /opt/apigee/var/log/messages/messagelog/ এ সংরক্ষণ করা হবে। একটি পরম পথ bin_setenv_data_dir চেয়ে অগ্রাধিকার নেয়।

    মনে রাখবেন যে আপনাকে সম্পত্তিটিকে conf/message-logging.properties+log.root.dir হিসাবে উল্লেখ করতে হবে কারণ এটি ডিফল্টরূপে মন্তব্য করা হয়। একটি টোকেন সেট করা দেখুন যা বর্তমানে আরো জন্য মন্তব্য করা হয়েছে

আপনি যদি লগ ফাইলগুলিকে একটি ফ্ল্যাট ফাইল কাঠামোতে সংরক্ষণ করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, তাহলে বার্তা-logging.properties ফাইলে conf/message-logging.properties+enable.flat.directory.structure কে সত্য হিসাবে সেট করুন। বার্তাগুলি উপরের বৈশিষ্ট্যগুলির দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} রূপ নেয়৷

এই বৈশিষ্ট্যগুলি সেট করতে:

  1. একটি এডিটরে message-processor.properties ফাইলটি খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দ অনুযায়ী বৈশিষ্ট্য সেট করুন:
    conf/message-logging.properties+log.root.dir= /opt/apigee/var/log/messages
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'apigee' ব্যবহারকারীর মালিকানাধীন:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. এজ উপাদান পুনরায় চালু করুন:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor পুনরায় চালু করুন

প্রাইভেট ক্লাউড 4.15.07 এবং তার আগের জন্য এজ

ডিফল্টরূপে, বার্তা লগগুলি বার্তা প্রসেসরগুলিতে নিম্নলিখিত অবস্থানে অবস্থিত:

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

আপনি মেসেজ প্রসেসরে message-logging.properties ফাইলে নিম্নলিখিত বৈশিষ্ট্যগুলি পরিবর্তন করে ডিফল্ট লগ অবস্থান পরিবর্তন করতে পারেন:

  • data.dir - লগ ফাইল স্টোরেজের জন্য রুট পাথ সেট করে। উদাহরণস্বরূপ, data.dir=/opt/apigee4/var/log
  • log.root.dir - যদি আপনি এটিকে একটি আপেক্ষিক পাথে সেট করেন, যেমন log.root.dir=custom/folder/, পাথটি data.dir অবস্থানে যুক্ত করা হয়।

উদাহরণস্বরূপ, দুটি বৈশিষ্ট্যের সংমিশ্রণ /opt/apigee4/var/log/custom/folder/messagelog/ এ লগিং ডিরেক্টরি সেট করবে (মনে রাখবেন যে /messagelog স্বয়ংক্রিয়ভাবে যোগ করা হয়েছে)।

আপনি যদি এটিকে একটি পরম পথে সেট করেন, যেমন log.root.dir=/opt/apigee4/var/log/messages , বার্তা লগগুলি /opt/apigee4/var/log/messages/messagelog/-এ সংরক্ষণ করা হবে। log.root.dir-এ একটি নিখুঁত পথ data.dir এর চেয়ে অগ্রাধিকার নেয়।

আপনি যদি লগ ফাইলগুলিকে একটি ফ্ল্যাট ফাইল কাঠামোতে সংরক্ষণ করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, বার্তা প্রসেসরের মেসেজ-logging.properties ফাইলে enable.flat.directory.structure প্রপার্টিটিকে সত্য হিসাবে সেট করুন। বার্তাগুলি উপরের বৈশিষ্ট্যগুলির দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}{filename}} রূপ নেয়৷

বার্তা টেমপ্লেটে ভেরিয়েবলের জন্য ডিফল্ট মান

বার্তা টেমপ্লেটে প্রতিটি ভেরিয়েবলের জন্য ডিফল্ট মান আলাদাভাবে নির্দিষ্ট করা যেতে পারে। উদাহরণস্বরূপ, যদি ভেরিয়েবল request.header.id সমাধান করা না যায়, তাহলে এর মান unknown মান দিয়ে প্রতিস্থাপিত হয়।

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

Message এলিমেন্টে defaultVariableValue অ্যাট্রিবিউট সেট করে সব অমীমাংসিত ভেরিয়েবলের জন্য একটি সাধারণ ডিফল্ট মান নির্দিষ্ট করা যেতে পারে:

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

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা হচ্ছে

মেসেজলগিং নীতি আপনাকে থার্ড-পার্টি লগ ম্যানেজমেন্ট পরিষেবা, যেমন স্প্লঙ্ক, সুমো লজিক এবং লগলিতে সিসলগ বার্তা পাঠাতে দেয়। আপনি যদি এই পরিষেবাগুলির মধ্যে একটিতে syslog পাঠাতে চান, পরিষেবাটির হোস্ট, পোর্ট এবং প্রোটোকল কনফিগার করতে সেই পরিষেবাটির ডকুমেন্টেশন দেখুন, তারপর সেই অনুযায়ী এই নীতিতে Syslog উপাদান সেট করুন৷

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট কনফিগারেশনের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:

ত্রুটি উল্লেখ

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ
steps.messagelogging.StepDefinitionExecutionFailed 500 ফল্ট স্ট্রিং দেখুন।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidProtocol মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Protocol> উপাদানের মধ্যে নির্দিষ্ট করা প্রোটোকল বৈধ না হয়। বৈধ প্রোটোকল হল TCP এবং UDP। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
InvalidPort মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Port> উপাদানের মধ্যে পোর্ট নম্বর নির্দিষ্ট করা না থাকে বা এটি বৈধ না হয়। পোর্ট নম্বর অবশ্যই শূন্যের চেয়ে বড় একটি পূর্ণসংখ্যা হতে হবে।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name Matches "StepDefinitionExecutionFailed"
messagelogging. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। messagelogging.ML-LogMessages.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

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

উদাহরণ দোষ নিয়ম

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


ফ্লো ভেরিয়েবল

নিম্নলিখিত ভেরিয়েবলগুলি পলিসি ব্যর্থতার উপর পূর্ণ হয়।

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

সম্পর্কিত বিষয়

,

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

কি

API রানটাইম পরিবেশে সমস্যাগুলি ট্র্যাক করার সেরা উপায়গুলির মধ্যে একটি হল বার্তাগুলি লগ করা। আপনি স্থানীয় ডিস্কে (শুধুমাত্র ব্যক্তিগত ক্লাউডের জন্য প্রান্ত) বা syslog-এ কাস্টম বার্তা লগ করার জন্য আপনার API-এ একটি MessageLogging নীতি সংযুক্ত এবং কনফিগার করতে পারেন।

নমুনা

সিসলগ

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

MessageLogging নীতির একটি সাধারণ ব্যবহার হল একটি syslog অ্যাকাউন্টে লগ করা। syslog-এর জন্য কনফিগার করা হলে, একটি API প্রক্সি Apigee Edge থেকে একটি দূরবর্তী syslog সার্ভারে লগ বার্তা ফরোয়ার্ড করবে। আপনার ইতিমধ্যেই একটি syslog সার্ভার উপলব্ধ থাকতে হবে৷ যদি না হয়, পাবলিক লগ ম্যানেজমেন্ট পরিষেবা, যেমন স্প্লঙ্ক, সুমো লজিক, এবং লগলি, উপলব্ধ। তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা দেখুন।

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার এপিআই গ্রাহক অ্যাপ থেকে প্রাপ্ত প্রতিটি অনুরোধ বার্তা সম্পর্কে তথ্য লগ করতে হবে। মান 3f509b58 লগলি পরিষেবার জন্য নির্দিষ্ট একটি মূল মান উপস্থাপন করে। আপনার লগলি অ্যাকাউন্ট থাকলে, আপনার লগলি কী প্রতিস্থাপন করুন। উত্পন্ন লগ বার্তাটি চারটি মান দিয়ে তৈরি করা হবে: অনুরোধ বার্তায় একটি ক্যোয়ারী প্যারামিটারের মান সহ লেনদেনের সাথে যুক্ত সংস্থা, API প্রক্সি এবং পরিবেশের নাম৷

আপনার যদি ব্যক্তিগত ক্লাউড স্থাপনার জন্য একটি এজ থাকে তবে আপনি একটি ফাইলে লগ বার্তাও লিখতে পারেন।

TLS/SSL এর উপর Syslog

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

আপনি <SSLInfo> ব্লক যোগ করে TLS/SSL এর মাধ্যমে তৃতীয় পক্ষের বার্তা লগিং প্রদানকারীদের কাছে বার্তা পাঠাতে পারেন।

ফাইল ঘূর্ণন: আকার

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

ফাইলের আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময়

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

সময়ের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময় এবং আকার

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

সময় এবং আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

স্ট্রিম-সক্ষম

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

স্ট্রিম-সক্ষম বার্তা লগিং


উপাদান রেফারেন্স

MessageLogging নীতির ধরন কনফিগার করতে নিম্নলিখিত উপাদানগুলি ব্যবহার করুন।

ক্ষেত্রের নাম ক্ষেত্রের বিবরণ

File

স্থানীয় ফাইলের গন্তব্য। (ফাইল লগিং শুধুমাত্র ব্যক্তিগত ক্লাউড স্থাপনার জন্য এজে সমর্থিত।) ফাইলগুলি কোথায় সংরক্ষণ করা হয় সে সম্পর্কে তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

Message আপনি যে তথ্য চান তা ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্য একত্রিত করে লগ ফাইলে পাঠানোর জন্য বার্তাটি তৈরি করুন। নমুনা দেখুন.
FileName লগ ফাইলের মূল নাম। একটি ফাইল পাথ নির্দিষ্ট করবেন না। উদাহরণস্বরূপ, এই FileName উপাদানটি একটি ফাইল পাথ নির্দিষ্ট করে এবং এটি অবৈধ:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName>

এই কোড শুধুমাত্র একটি ফাইলের নাম নির্দিষ্ট করে এবং বৈধ:

<FileName>mylog.log</FileName>

ফাইলটি কোথায় সংরক্ষণ করা হয়েছে সে সম্পর্কে তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজ-এ লগ ফাইলের অবস্থান দেখুন।

FileRotationOptions
rotateFileOnStartup

বৈশিষ্ট্য বৈধ মান: true / false

যদি সত্য হিসাবে সেট করা হয়, তাহলে প্রতিবার মেসেজিং ইঞ্জিন পুনরায় চালু হলে লগ ফাইলটি ঘোরানো হয়।

FileRotationType একটি লগ ফাইলের ঘূর্ণন নীতি ( size বা time ) নির্দিষ্ট করে।
MaxFileSizeInMB (ঘূর্ণন প্রকার হিসাবে size নির্বাচন করার সময়) একটি লগ ফাইলের আকার নির্দিষ্ট করে যা সার্ভারকে একটি পৃথক ফাইলে লগ বার্তাগুলি সরাতে ট্রিগার করে। লগ ফাইলটি নির্দিষ্ট আকারে পৌঁছানোর পরে, সার্ভার বর্তমান লগ ফাইলটির নাম পরিবর্তন করে।
RotationFrequency (ঘূর্ণন প্রকার হিসাবে time নির্বাচন করার সময়) মিনিটের মধ্যে সময় নির্দিষ্ট করে যা সার্ভারকে একটি পৃথক ফাইলে লগ বার্তাগুলি সরাতে ট্রিগার করে। নির্দিষ্ট ব্যবধান অতিবাহিত হওয়ার পর, বর্তমান লগ ফাইলের নাম পরিবর্তন করা হয়।
MaxFilesToRetain

আপনার ঘূর্ণন সেটিংসের প্রেক্ষাপটে সর্বোচ্চ কতটি ফাইল রাখা হবে তা নির্দিষ্ট করে। ডিফল্ট মান হল 8

আপনি যদি শূন্য (0) নির্দিষ্ট করেন, লগ ফাইলগুলি অনির্দিষ্টকালের জন্য ধরে রাখা হয়, তবে আপনার ফাইল ঘূর্ণন সেটিংসের সাপেক্ষে, যদিও কোনো ফাইল মুছে ফেলা বা পুনঃনামকরণ করা হয় না। অতএব, ভবিষ্যতের ডিস্ক-পূর্ণ ত্রুটিগুলি এড়াতে, এটিকে শূন্যের চেয়ে বেশি একটি মান সেট করুন, বা পুরানো ধরে রাখা লগ ফাইলগুলিকে শুদ্ধ বা সংরক্ষণ করার একটি নিয়মিত, স্বয়ংক্রিয় সিস্টেম প্রয়োগ করুন।

BufferMessage

যদি আপনার প্রক্সির জন্য HTTP স্ট্রিমিং সক্ষম করা থাকে , অনুরোধ/প্রতিক্রিয়া বার্তাগুলি বাফার করা হয় না৷ আপনি যদি এমন সামগ্রী লগ করতে চান যার জন্য ফ্লো বার্তাটি পার্স করা প্রয়োজন, তাহলে BufferMessage কে সত্যে সেট করুন। একটি উদাহরণের জন্য "স্ট্রিম-সক্ষম" নমুনা ট্যাব দেখুন। ডিফল্ট: মিথ্যা

Syslog

একটি syslog গন্তব্য. Splunk, Sumo Logic, বা Loggly-এ syslog পাঠাতে, তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবা কনফিগার করা দেখুন।

Message

আপনি যে তথ্য চান তা ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্য একত্রিত করে syslog-এ পাঠানোর জন্য বার্তাটি তৈরি করুন। নমুনা দেখুন.

দ্রষ্টব্য: একটি ত্রুটি ফ্লো অনুসরণ করে পোস্টক্লায়েন্টফ্লোতে প্রতিক্রিয়া ভেরিয়েবল উপলব্ধ হবে না। ত্রুটি এবং সাফল্য উভয় পরিস্থিতির জন্য প্রতিক্রিয়া তথ্য লগ করতে বার্তা ভেরিয়েবল ব্যবহার করুন। এছাড়াও ব্যবহার নোট দেখুন.

Host সার্ভারের হোস্টনাম বা IP ঠিকানা যেখানে syslog পাঠানো উচিত। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্ট লোকালহোস্ট।
Port পোর্ট যেখানে সিসলগ চলছে। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্ট 514।
Protocol TCP বা UDP (ডিফল্ট)। যদিও UDP অধিক কার্যক্ষম, TCP প্রোটোকল syslog সার্ভারে বার্তা লগ ডেলিভারির নিশ্চয়তা দেয়। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
FormatMessage

true বা false (ডিফল্ট)

ঐচ্ছিক, কিন্তু লগলি ব্যবহার করার জন্য <FormatMessage>true</FormatMessage> প্রয়োজন।

এই উপাদানটি আপনাকে বার্তার সাথে যুক্ত Apigee-উত্পাদিত সামগ্রীর বিন্যাস নিয়ন্ত্রণ করতে দেয়। সত্য হিসাবে সেট করা হলে, syslog বার্তাটি একটি নির্দিষ্ট সংখ্যক অক্ষর দ্বারা প্রিপেন্ড করা হয়, যা আপনাকে বার্তাগুলি থেকে সেই তথ্য ফিল্টার করতে দেয়। এখানে স্থির বিন্যাসের জন্য একটি উদাহরণ:

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

Apigee-উত্পন্ন তথ্য অন্তর্ভুক্ত:

  • <14> - একটি অগ্রাধিকার স্কোর ( সিসলগ প্রোটোকল দেখুন) লগ লেভেল এবং বার্তার সুবিধা স্তরের উপর ভিত্তি করে।
  • 1 - বর্তমান syslog সংস্করণ।
  • একটি UTC অফসেট সহ তারিখ (UTC = +0000)।
  • বার্তা প্রসেসর UUID.
  • "অ্যাপিজি-এজ - - -"

মিথ্যা (ডিফল্ট) হিসাবে সেট করা থাকলে, বার্তাটি সেই স্থির অক্ষরগুলির সাথে আগে লেখা হয় না।

PayloadOnly

true বা false (ডিফল্ট)

এই উপাদানটি Apigee-উত্পন্ন বার্তাগুলির বিন্যাস সেট করে যাতে FormatMessage দ্বারা নির্দিষ্ট করা অক্ষরগুলি ছাড়াই শুধুমাত্র syslog বার্তার মূল অংশ থাকে।

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি না রাখেন তবে ডিফল্ট মান false

FormatMessage দেখুন।

DateFormat

ঐচ্ছিক।

প্রতিটি লগ বার্তার জন্য টাইমস্ট্যাম্প ফর্ম্যাট করতে ব্যবহার করার জন্য একটি ফর্ম্যাটিং টেমপ্লেট স্ট্রিং৷ ডিফল্টরূপে, Apigee yyyy-MM-dd'T'HH:mm:ss.SSSZ ব্যবহার করে। জাভা এর SimpleDateFormat ক্লাসের ডকুমেন্টেশনে এই টেমপ্লেটটির আচরণ বর্ণনা করা হয়েছে।

SSLInfo

আপনাকে SSL/TLS এর মাধ্যমে বার্তা লগ করতে দেয়। সাব-এলিমেন্টের সাথে ব্যবহার করুন <Enabled>true</Enabled>

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি না রাখেন তবে ডিফল্ট মানটি মিথ্যা (কোনও TLS/SSL নেই)৷

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

API প্রক্সি কনফিগারেশন রেফারেন্সে বর্ণিত দ্বি-মুখী TLS/SSL সক্ষম করা সহ, আপনি TargetEndpoint-এ <SSLInfo> ট্যাগটিকে একইভাবে কনফিগার করতে পারেন। শুধুমাত্র TCP প্রোটোকল সমর্থিত।

logLevel

ঐচ্ছিক।

বৈধ মান: INFO (ডিফল্ট), ALERT , WARN , ERROR

বার্তা লগে অন্তর্ভুক্ত করার জন্য তথ্যের একটি নির্দিষ্ট স্তর সেট করুন।

আপনি যদি FormatMessage উপাদানটি ব্যবহার করেন (এটি সত্যে সেট করা), আপনার logLevel সেটিং বার্তার সাথে যুক্ত Apigee-উত্পন্ন তথ্যে গণনাকৃত অগ্রাধিকার স্কোরকে (কোণ বন্ধনীর ভিতরের সংখ্যা) প্রভাবিত করে।

স্কিমাস


ব্যবহারের নোট

একটি API প্রক্সি ফ্লোতে একটি MessageLogging নীতি সংযুক্ত করার সময়, এটিকে প্রক্সিএন্ডপয়েন্ট প্রতিক্রিয়াতে পোস্টক্লায়েন্টফ্লো নামে একটি বিশেষ প্রবাহে রাখার কথা বিবেচনা করুন৷ অনুরোধকারী ক্লায়েন্টের কাছে প্রতিক্রিয়া পাঠানোর পরে পোস্টক্লায়েন্টফ্লো কার্যকর করে, যা নিশ্চিত করে যে সমস্ত মেট্রিক্স লগিংয়ের জন্য উপলব্ধ। PostClientFlow ব্যবহার করার বিস্তারিত জানার জন্য, API প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।

পোস্টক্লায়েন্টফ্লো দুটি উপায়ে বিশেষ:

  1. এটি শুধুমাত্র প্রতিক্রিয়া প্রবাহের অংশ হিসাবে কার্যকর করা হয়েছে।
  2. প্রক্সি ত্রুটির অবস্থায় প্রবেশ করার পর এটিই একমাত্র প্রবাহ।

প্রক্সি সফল হোক বা ব্যর্থ হোক না কেন এটি কার্যকর করা হয়েছে, আপনি PostClientFlow-এ MessageLogging নীতিগুলি রাখতে পারেন এবং নিশ্চিত হতে পারেন যে তারা সর্বদা কার্যকর করবে৷

নিম্নোক্ত ট্রেস চিত্রটি ডিফল্টফল্ট রুল কার্যকর হওয়ার পরে পোস্টক্লায়েন্টফ্লো-এর অংশ হিসাবে একটি মেসেজলগিং নীতি কার্যকর করা দেখায়:

এই উদাহরণে, ভেরিফাই এপিআই কী নীতি একটি অবৈধ কী-এর কারণে ত্রুটি সৃষ্টি করেছে।

নীচে প্রক্সিএন্ডপয়েন্ট সংজ্ঞা দেখানো হয়েছে যা পোস্টক্লায়েন্টফ্লো অন্তর্ভুক্ত করে:

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

এজ বার্তাগুলিকে সাধারণ পাঠ্য হিসাবে লগ করে, এবং আপনি ভেরিয়েবলগুলি অন্তর্ভুক্ত করার জন্য লগিং কনফিগার করতে পারেন, যেমন অনুরোধ বা প্রতিক্রিয়া প্রাপ্ত হওয়ার তারিখ এবং সময়, অনুরোধে ব্যবহারকারীর পরিচয়, উৎস আইপি ঠিকানা যেখান থেকে অনুরোধ পাঠানো হয়েছিল এবং আরও অনেক কিছু। এজ লগ মেসেজ অ্যাসিঙ্ক্রোনাস করে, অর্থাৎ কলআউট ব্লক করার কারণে হতে পারে এমন কোনো লেটেন্সি আপনার এপিআই-তে প্রবর্তন করা হয়নি।

মেসেজলগিং নীতি একটি বাফারে মেমরিতে লগ করা বার্তা লেখে। বার্তা লগার বাফার থেকে বার্তা পড়ে এবং তারপর আপনার কনফিগার করা গন্তব্যে লেখে। প্রতিটি গন্তব্যের নিজস্ব বাফার আছে।

বাফারে লেখার হার যদি পড়ার হারের চেয়ে বেড়ে যায়, বাফার ওভারফ্লো হয় এবং লগিং ব্যর্থ হবে। যদি এটি ঘটে, আপনি লগ ফাইলে নিম্নলিখিত সম্বলিত একটি বার্তা খুঁজে পেতে পারেন:

Log message size exceeded. Increase the max message size setting

আপনি যদি প্রাইভেট ক্লাউড 4.15.07 এবং তার আগের এজ-এ এই সমস্যার সম্মুখীন হন, তাহলে message-logging.properties ফাইলটি সনাক্ত করুন এবং এই সমাধানটি ব্যবহার করুন:

message-logging.properties ফাইলে max.log.message.size.in.kb প্রপার্টি (ডিফল্ট মান = 128 KB) বাড়ান।

এজ ফর প্রাইভেট ক্লাউড 4.16.01 এবং পরবর্তীতে, conf/message-logging.properties+max. log.message.size.in.kb /opt/apigee/customer/application/message-processor.properties ফাইলে conf/message-logging.properties+max. log.message.size.in.kb প্রপার্টি এবং মেসেজ প্রসেসর রিস্টার্ট করুন। দয়া করে মনে রাখবেন যে এই সম্পত্তিটি প্রাথমিকভাবে ডিফল্টরূপে মন্তব্য করা হয়।

দ্রষ্টব্য: Edge এ প্রতিক্রিয়া বার্তা ভেরিয়েবল ত্রুটি ফ্লো থেকে পাওয়া যায় না। এই ভেরিয়েবলগুলি PostClientFlow-এও উপলভ্য নয় যদি পূর্ববর্তী প্রবাহটি ত্রুটি ফ্লো হয়। আপনি PostClientFlow থেকে প্রতিক্রিয়া তথ্য লগ করতে চান, বার্তা বস্তু ব্যবহার করুন. আপনি এই বস্তুটি ব্যবহার করে হেডার এবং প্রতিক্রিয়া থেকে অন্যান্য তথ্য পেতে পারেন যে কোনও ত্রুটি ছিল কিনা। আরও তথ্য এবং একটি উদাহরণের জন্য বার্তা ভেরিয়েবল দেখুন।

ব্যক্তিগত ক্লাউডের জন্য এজে লগ মেসেজ টাইমস্ট্যাম্প নিয়ন্ত্রণ করা

ডিফল্টরূপে, সমস্ত লগ বার্তার টাইমস্ট্যাম্পের বিন্যাস থাকে:

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

DateFormat উপাদান ব্যবহার করে syslog গন্তব্যগুলির জন্য এই সিস্টেম-ব্যাপী ডিফল্টটি ওভাররাইড করা যেতে পারে। জাভা এর SimpleDateFormat ক্লাসের ডকুমেন্টেশনে এই টেমপ্লেটটির আচরণ বর্ণনা করা হয়েছে। সেই সংজ্ঞা অনুসারে, yyyy 4-সংখ্যার বছর দিয়ে প্রতিস্থাপিত করা হবে, MM 2-অঙ্কের মাসের সংখ্যা দিয়ে প্রতিস্থাপিত করা হবে, ইত্যাদি। উপরের বিন্যাসের ফলে এই ফর্মের একটি স্ট্রিং হতে পারে:

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

আপনি যে বিন্যাস নিয়ন্ত্রণ করতে এজ মেসেজ প্রসেসরে conf_system_apigee.syslogger.dateFormat বৈশিষ্ট্য ব্যবহার করতে পারেন। উদাহরণস্বরূপ, বার্তা বিন্যাস এতে পরিবর্তন করুন:

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

..ড্যাশগুলিকে স্ল্যাশ দিয়ে প্রতিস্থাপন করা, এবং একটি 2-সংখ্যার বছরে সংক্ষিপ্ত করা, ফর্মটিতে একটি টাইমস্ট্যাম্প রেকর্ড করে:

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

বিন্যাস পরিবর্তন করতে:

  1. একটি এডিটরে message-processor.properties ফাইলটি খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দ অনুযায়ী বৈশিষ্ট্য সেট করুন:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'apigee' ব্যবহারকারীর মালিকানাধীন:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. এজ মেসেজ প্রসেসর রিস্টার্ট করুন:
    >/অপ্ট/অ্যাপিগি/অ্যাপিগি-পরিষেবা/বিন/অ্যাপিগি-পরিষেবা প্রান্ত-মেসেজ-প্রসেসর পুনরায় চালু করুন

ব্যক্তিগত মেঘের জন্য এজে ফাইলের অবস্থান লগ করুন

বেসরকারী মেঘের জন্য প্রান্ত 4.16.01 এবং পরে

ডিফল্টরূপে, ব্যক্তিগত ক্লাউড বার্তা লগগুলি বার্তা প্রসেসর নোডগুলিতে নিম্নলিখিত ডিরেক্টরিতে অবস্থিত:

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

আপনি বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে বৈশিষ্ট্যগুলি সংশোধন করে ডিফল্ট লগের অবস্থানটি পরিবর্তন করতে পারেন: বার্তা প্রসেসরগুলিতে:

  • Bin_setenv_data_dir - লগ ফাইল স্টোরেজ জন্য মূল পথ সেট করে। উদাহরণস্বরূপ, bin_setenv_data_dir=/opt/apigee/var/log
  • কনফ_মেসেজ-লগিং_লগ.রোট.ডির -আপনি যদি এটিকে কোনও আপেক্ষিক পথে সেট করেন যেমন conf/message-logging.properties+log.root.dir=custom/folder/ , the path is appended to the bin_setenv_data_dir location.

    আপনি যদি এটিকে একটি নিখুঁত পথে সেট করেন, যেমন conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages , বার্তা লগগুলি /opt/apigee/var/log/messages/messagelog/ এ সংরক্ষণ করা হবে। একটি পরম পথ bin_setenv_data_dir চেয়ে অগ্রাধিকার গ্রহণ করে।

    নোট করুন যে আপনাকে সম্পত্তিটি কনফ/বার্তা-লগিং হিসাবে উল্লেখ করতে হবে PR একটি টোকেন সেট করা দেখুন যা বর্তমানে আরও মন্তব্য করা হয়েছে

আপনি যদি কোনও ফ্ল্যাট ফাইল স্ট্রাকচারে লগ ফাইলগুলি সঞ্চয় করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, তবে কনফ/বার্তা-লগিং সেট করুন PR বার্তাগুলি উপরের বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} রূপ নেয়}

এই বৈশিষ্ট্যগুলি সেট করতে:

  1. কোনও সম্পাদকে বার্তা-প্রসেসর.প্রোপার্টি ফাইল খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দসই হিসাবে সম্পত্তি সেট করুন:
    কনফ/বার্তা-লগিং.প্রোপার্টিগুলি+লগ.রুট.ডির = /অপ্ট/এপিগি/ভিএআর/লগ/বার্তা
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'অ্যাপিগি' ব্যবহারকারীর মালিকানাধীন:
    > ছাউন অ্যাপিগি: অ্যাপিগি/ওপ্ট/অ্যাপিগি/কাস্টোমার/অ্যাপলিকেশন/মেসেজ-প্রোসেসর.প্রোপার্টিগুলি
  5. প্রান্ত উপাদান পুনরায় চালু করুন:
    >/অপ্ট/অ্যাপিগি/অ্যাপিগি-পরিষেবা/বিন/অ্যাপিগি-পরিষেবা প্রান্ত-মেসেজ-প্রসেসর পুনরায় চালু করুন

প্রাইভেট ক্লাউড 4.15.07 এবং এর আগে প্রান্ত

ডিফল্টরূপে, বার্তা লগগুলি বার্তা প্রসেসরগুলিতে নিম্নলিখিত স্থানে অবস্থিত:

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

বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে নিম্নলিখিত বৈশিষ্ট্যগুলি সংশোধন করে আপনি ডিফল্ট লগের অবস্থান পরিবর্তন করতে পারেন: বার্তা প্রসেসরগুলিতে:

  • ডেটা.ডির - লগ ফাইল স্টোরেজের জন্য মূল পথ সেট করে। উদাহরণস্বরূপ, ডেটা.ডির =/অপ্ট/এপিগি 4/ভার/লগ
  • LOG.ROOT.DIR - আপনি যদি এটিকে কোনও আপেক্ষিক পথে সেট করেন, যেমন লগ.রুট.ডির = কাস্টম/ফোল্ডার/, পথটি ডেটা.ডির অবস্থানে যুক্ত করা হয়।

উদাহরণস্বরূপ, দুটি বৈশিষ্ট্যের সংমিশ্রণটি লগিং ডিরেক্টরিটি/অপ্ট/এপিআইজি 4/ভিএআর/লগ/কাস্টম/ফোল্ডার/মেসেজলগ/এ সেট করবে (নোট করুন যে/মেসেজলগটি স্বয়ংক্রিয়ভাবে যুক্ত হয়েছে)।

আপনি যদি এটিকে একটি নিখুঁত পথে সেট করেন, যেমন লগ.রুট.ডির =/অপ্ট/এপিআইজিআই 4/ভিএআর/লগ/বার্তা , বার্তা লগগুলি/অপ্ট/এপিআইজিআই 4/ভিএআর/লগ/বার্তা/মেসেজলগ/এ সংরক্ষণ করা হবে। লগ.রুট.ডিরের একটি পরম পথটি ডেটা.ডিরের চেয়ে বেশি অগ্রাধিকার নেয়।

আপনি যদি কোনও ফ্ল্যাট ফাইল স্ট্রাকচারে লগ ফাইলগুলি সঞ্চয় করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, তবে বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে বার্তার প্রসেসরে সক্ষম.ফ্ল্যাট.ডাইরেক্টরি.স্ট্রাকচার সম্পত্তিটি সত্যে সেট করুন। বার্তাগুলি উপরের বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org} _ {পরিবেশ} _ {এপিআই_প্রক্সি_নাম} _ {রিভিশন} _ {লগিং_পলিসি_নাম} _ {ফাইলের নাম} রূপ নেয়}

বার্তা টেমপ্লেটে ভেরিয়েবলের জন্য ডিফল্ট মান

ডিফল্ট মানগুলি পৃথকভাবে বার্তা টেমপ্লেটে প্রতিটি ভেরিয়েবলের জন্য নির্দিষ্ট করা যেতে পারে। উদাহরণস্বরূপ, যদি পরিবর্তনশীল request.header.id সমাধান করা যায় না, তবে এর মানটি unknown মান দিয়ে প্রতিস্থাপন করা হয়।

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

Message উপাদানটিতে defaultVariableValue অ্যাট্রিবিউট সেট করে সমস্ত অমীমাংসিত ভেরিয়েবলের জন্য একটি সাধারণ ডিফল্ট মান নির্দিষ্ট করা যেতে পারে:

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

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা

মেসেজলগিং নীতি আপনাকে স্প্লঙ্ক, সুমো লজিক এবং লগলির মতো তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলিতে সিসলগ বার্তা প্রেরণ করতে দেয়। আপনি যদি সেই পরিষেবাগুলির মধ্যে একটিতে সিসলগ প্রেরণ করতে চান তবে পরিষেবার হোস্ট, পোর্ট এবং প্রোটোকলটি কনফিগার করতে সেই পরিষেবার ডকুমেন্টেশন দেখুন, তারপরে সেই অনুযায়ী এই নীতিমালায় সিসলগ উপাদান সেট করুন।

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট কনফিগারেশনের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:

  • স্প্লঙ্ক (পণ্য সংস্করণ নির্বাচন করুন)
    এছাড়াও এই অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন: https://community.apigee.com/content/kbentry/13298/log-messages-into-plunk.html
  • সুমো লজিক
    • এছাড়াও এই অ্যাপিগি সম্প্রদায়ের পোস্টটি দেখুন: https://community.apigee.com/questions/5226/setting- আপ-লগিং-উইথ-সুমো-লোগিক-যা-হোস্ট-shou.html
    • লগিং পরিষেবা হিসাবে সুমো লজিক ব্যবহার করে একটি সম্পূর্ণ উদাহরণের জন্য, নিম্নলিখিত অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন। সমাধানটি সুমো লজিককে এইচটিটিপি পোস্টের অনুরোধগুলি তৈরি করতে একটি একক জাভাস্ক্রিপ্ট নীতি ব্যবহার করে H
  • লগে লগে
    লগলি ব্যবহার করার সময়, <Syslog> উপাদানটির সন্তান হিসাবে নীতিমালায় <FormatMessage>true</FormatMessage> প্রয়োজন।
    লগলিতে লগিং বার্তা সম্পর্কে আরও তথ্যের জন্য এই অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন: https://community.apigee.com/content/kbentry/14798/log-messages-into-loggly.html

ত্রুটি উল্লেখ

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ
steps.messagelogging.StepDefinitionExecutionFailed 500 ফল্ট স্ট্রিং দেখুন।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidProtocol মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Protocol> উপাদানের মধ্যে নির্দিষ্ট করা প্রোটোকল বৈধ না হয়। বৈধ প্রোটোকল হল TCP এবং UDP। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
InvalidPort মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Port> উপাদানের মধ্যে পোর্ট নম্বর নির্দিষ্ট করা না থাকে বা এটি বৈধ না হয়। পোর্ট নম্বর অবশ্যই শূন্যের চেয়ে বড় একটি পূর্ণসংখ্যা হতে হবে।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name Matches "StepDefinitionExecutionFailed"
messagelogging. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। messagelogging.ML-LogMessages.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

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

উদাহরণ দোষ নিয়ম

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


ফ্লো ভেরিয়েবল

নিম্নলিখিত ভেরিয়েবলগুলি নীতি ব্যর্থতার উপর জনবহুল।

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

সম্পর্কিত বিষয়

,

আপনি অ্যাপিগি এজ ডকুমেন্টেশন দেখছেন।
অ্যাপিগি এক্স ডকুমেন্টেশনে যান
তথ্য

কি

এপিআই রানটাইম পরিবেশে সমস্যাগুলি ট্র্যাক করার অন্যতম সেরা উপায় হ'ল বার্তা লগ করা। স্থানীয় ডিস্কে (কেবলমাত্র ব্যক্তিগত মেঘের জন্য প্রান্ত) বা সিসলগে কাস্টম বার্তা লগ করতে আপনি আপনার এপিআইতে একটি মেসেজলগিং নীতি সংযুক্ত করতে এবং কনফিগার করতে পারেন।

নমুনা

সিসলগ

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

মেসেজলগিং নীতি প্রকারের একটি সাধারণ ব্যবহার হ'ল একটি সিসলগ অ্যাকাউন্টে লগ ইন করা। সিসলগের জন্য কনফিগার করা হলে, একটি এপিআই প্রক্সি অ্যাপিগি এজ থেকে রিমোট সিসলগ সার্ভারে লগ বার্তাগুলি ফরোয়ার্ড করবে। আপনার ইতিমধ্যে একটি সিসলগ সার্ভার উপলব্ধ থাকতে হবে। যদি তা না হয় তবে পাবলিক লগ ম্যানেজমেন্ট পরিষেবাগুলি, এই জাতীয় স্প্লঙ্ক, সুমো লজিক এবং লগলি উপলব্ধ। তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা দেখুন।

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার এপিআই গ্রাহক অ্যাপ্লিকেশনগুলি থেকে প্রাপ্ত প্রতিটি অনুরোধ বার্তা সম্পর্কে তথ্য লগ করতে হবে। মান 3f509b58 লগগি পরিষেবার জন্য নির্দিষ্ট একটি মূল মান উপস্থাপন করে। আপনার যদি লগগি অ্যাকাউন্ট থাকে তবে আপনার লগলি কীটি বিকল্প দিন। উত্পন্ন লগ বার্তাটি চারটি মান দিয়ে পপুলেট করা হবে: অনুরোধ বার্তায় একটি ক্যোয়ারী প্যারামিটারের মান সহ লেনদেনের সাথে সম্পর্কিত সংস্থা, এপিআই প্রক্সি এবং পরিবেশের নাম।

আপনার যদি ব্যক্তিগত ক্লাউড মোতায়েনের জন্য প্রান্ত থাকে তবে আপনি কোনও ফাইলে লগ বার্তাও লিখতে পারেন।

টিএলএস/এসএসএল ওভার সিসলগ

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

আপনি <SSLInfo> ব্লক যুক্ত করে টিএলএস/এসএসএলে তৃতীয় পক্ষের বার্তা লগিং সরবরাহকারীদের বার্তা প্রেরণ করতে পারেন।

ফাইল ঘূর্ণন: আকার

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

ফাইলের আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময়

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

সময়ের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময় এবং আকার

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

সময় এবং আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

স্ট্রিম-সক্ষম

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

স্ট্রিম-সক্ষম করা বার্তা লগিং


উপাদান রেফারেন্স

মেসেজলগিং নীতি প্রকারটি কনফিগার করতে নিম্নলিখিত উপাদানগুলি ব্যবহার করুন।

ক্ষেত্রের নাম ক্ষেত্রের বিবরণ

File

স্থানীয় ফাইল গন্তব্য। (ফাইল লগিং কেবল ব্যক্তিগত ক্লাউড মোতায়েনের জন্য প্রান্তে সমর্থিত)) ফাইলগুলি যেখানে সংরক্ষণ করা হয় সে সম্পর্কিত তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

Message আপনার পছন্দসই তথ্য ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্যের সংমিশ্রণে লগ ফাইলে প্রেরণের জন্য বার্তাটি তৈরি করুন। নমুনাগুলি দেখুন।
FileName লগ ফাইলের বেস নাম। কোনও ফাইল পাথ নির্দিষ্ট করবেন না। উদাহরণস্বরূপ, এই FileName উপাদানটি একটি ফাইল পাথ নির্দিষ্ট করে এবং অবৈধ:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName>

এই কোডটি কেবল একটি ফাইলের নাম নির্দিষ্ট করে এবং বৈধ:

<FileName>mylog.log</FileName>

ফাইলটি কোথায় সংরক্ষণ করা হয়েছে সে সম্পর্কিত তথ্যের জন্য, ব্যক্তিগত মেঘের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

FileRotationOptions
rotateFileOnStartup

বৈশিষ্ট্য বৈধ মান: true / false

যদি সত্যে সেট করা হয়, তবে প্রতিবার মেসেজিং ইঞ্জিনটি পুনরায় আরম্ভ হওয়ার সময় লগ ফাইলটি ঘোরানো হয়।

FileRotationType লগ ফাইলের ঘূর্ণন নীতি ( size বা time ) নির্দিষ্ট করে।
MaxFileSizeInMB (রোটেশন টাইপ হিসাবে size নির্বাচন করার ক্ষেত্রে) লগ ফাইলের আকার নির্দিষ্ট করে যা সার্ভারকে পৃথক ফাইলে স্থানান্তর করতে ট্রিগার করে। লগ ফাইলটি নির্দিষ্ট আকারে পৌঁছানোর পরে, সার্ভারটি বর্তমান লগ ফাইলটির নামকরণ করে।
RotationFrequency ( time হিসাবে সময় বাছাইয়ের সময়) কয়েক মিনিটের মধ্যে সময় নির্দিষ্ট করে যা সার্ভারকে লগ বার্তাগুলিকে পৃথক ফাইলে সরাতে ট্রিগার করে। নির্দিষ্ট ব্যবধান শেষ হওয়ার পরে, বর্তমান লগ ফাইলটির নামকরণ করা হয়েছে।
MaxFilesToRetain

আপনার ঘূর্ণন সেটিংসের প্রসঙ্গে বজায় রাখতে সর্বাধিক সংখ্যক ফাইল নির্দিষ্ট করে। ডিফল্ট মান হল 8

আপনি যদি শূন্য (0) নির্দিষ্ট করেন তবে লগ ফাইলগুলি অনির্দিষ্টকালের জন্য ধরে রাখা হয় তবে আপনার ফাইলের ঘূর্ণন সেটিংসের সাপেক্ষে, যদিও ফাইলগুলির কোনওটি মুছে ফেলা বা নামকরণ করা হয় না। অতএব, ভবিষ্যতের ডিস্ক-পূর্ণ ত্রুটিগুলি এড়ানোর জন্য, এটিকে শূন্যের চেয়ে বৃহত্তর মান হিসাবে সেট করুন, বা পুরানো রক্ষণাবেক্ষণ লগ ফাইলগুলি শুদ্ধ করা বা সংরক্ষণাগারগুলির নিয়মিত, স্বয়ংক্রিয় সিস্টেম প্রয়োগ করুন।

BufferMessage

যদি আপনার প্রক্সিটির জন্য এইচটিটিপি স্ট্রিমিং সক্ষম করা থাকে তবে অনুরোধ/প্রতিক্রিয়া বার্তাগুলি বাফার না করা হয়। আপনি যদি এমন সামগ্রী লগ করতে চান যা প্রবাহের বার্তাটিকে পার্স করা প্রয়োজন, তবে বাফারমেসেজকে সত্যে সেট করুন। উদাহরণের জন্য "স্ট্রিম-সক্ষম" নমুনা ট্যাবটি দেখুন। ডিফল্ট: মিথ্যা

Syslog

একটি সিসলগ গন্তব্য। স্প্লঙ্ক, সুমো লজিক বা লগলিতে সিসলগ প্রেরণ করতে, তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাদি কনফিগার করা দেখুন।

Message

আপনি চান তথ্য ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্যের সংমিশ্রণ করে সিসলগে প্রেরণের জন্য বার্তাটি তৈরি করুন। নমুনাগুলি দেখুন।

দ্রষ্টব্য: ত্রুটি প্রবাহের পরে পোস্টক্লিয়েন্টফ্লোতে প্রতিক্রিয়া ভেরিয়েবলগুলি পাওয়া যাবে না। ত্রুটি এবং সাফল্যের পরিস্থিতি উভয়ের জন্য প্রতিক্রিয়া তথ্য লগ করতে বার্তা ভেরিয়েবলগুলি ব্যবহার করুন। ব্যবহারের নোটগুলিও দেখুন।

Host সার্ভারের হোস্টনাম বা আইপি ঠিকানা যেখানে সিসলগ পাঠানো উচিত। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্টটি লোকালহোস্ট।
Port পোর্ট যেখানে সিসলগ চলছে। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্টটি 514।
Protocol টিসিপি বা ইউডিপি (ডিফল্ট)। ইউডিপি আরও পারফরম্যান্স হলেও, টিসিপি প্রোটোকল সিসলগ সার্ভারে বার্তা লগ সরবরাহের গ্যারান্টি দেয়। টিএলএস/এসএসএল -এর মাধ্যমে সিসলগ বার্তা প্রেরণের জন্য, কেবল টিসিপি সমর্থিত।
FormatMessage

true বা false (ডিফল্ট)

Ption চ্ছিক, তবে <FormatMessage>true</FormatMessage> লগলির সাথে ব্যবহারের জন্য প্রয়োজনীয়।

এই উপাদানটি আপনাকে বার্তায় নির্ধারিত অ্যাপিগি-উত্পাদিত সামগ্রীর ফর্ম্যাটটি নিয়ন্ত্রণ করতে দেয়। যদি সত্যে সেট করা হয় তবে সিসলগ বার্তাটি একটি নির্দিষ্ট সংখ্যক অক্ষর দ্বারা প্রস্তুত করা হয়, যা আপনাকে বার্তাগুলি থেকে সেই তথ্য ফিল্টার করতে দেয়। স্থির ফর্ম্যাটের জন্য এখানে একটি উদাহরণ:

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

অ্যাপিগি-উত্পাদিত তথ্যের মধ্যে রয়েছে:

  • <14> - বার্তার লগ স্তর এবং সুবিধা স্তরের উপর ভিত্তি করে একটি অগ্রাধিকার স্কোর ( সিসলগ প্রোটোকল দেখুন)।
  • 1 - বর্তমান সিসলগ সংস্করণ।
  • একটি ইউটিসি অফসেটের সাথে তারিখ (ইউটিসি = +0000)।
  • বার্তা প্রসেসর ইউইড।
  • "অ্যাপিগি -এজ - - -"

যদি মিথ্যা (ডিফল্ট) এ সেট করা থাকে তবে বার্তাটি সেই স্থির অক্ষরগুলির সাথে প্রস্তুত করা হয় না।

PayloadOnly

true বা false (ডিফল্ট)

এই উপাদানটি ফর্ম্যাটমেসেজ দ্বারা নির্দিষ্ট নির্ধারিত অক্ষরগুলি ছাড়াই কেবলমাত্র সিসলগ বার্তার বডি ধারণ করতে অ্যাপিগি-উত্পাদিত বার্তাগুলির ফর্ম্যাটটি সেট করে।

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি রেখে না থাকেন তবে ডিফল্ট মানটি false

ফর্ম্যাটমেসেজ দেখুন।

DateFormat

ঐচ্ছিক।

প্রতিটি লগ বার্তার জন্য টাইমস্ট্যাম্প ফর্ম্যাট করতে ব্যবহার করার জন্য একটি ফর্ম্যাটিং টেম্পলেট স্ট্রিং। ডিফল্টরূপে, অ্যাপিগি yyyy-MM-dd'T'HH:mm:ss.SSSZ ব্যবহার করে। এই টেমপ্লেটের আচরণটি জাভার সিম্পলডেটফর্ম্যাট ক্লাসের ডকুমেন্টেশনে বর্ণিত হয়েছে।

SSLInfo

আপনাকে এসএসএল/টিএলএসের মাধ্যমে বার্তা লগ করতে দেয়। উপ-উপাদান <Enabled>true</Enabled> সহ ব্যবহার করুন।

আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন বা এটি খালি রেখে থাকেন তবে ডিফল্ট মানটি মিথ্যা (কোনও টিএলএস/এসএসএল নেই)।

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

আপনি এপিআই প্রক্সি কনফিগারেশন রেফারেন্সে বর্ণিত হিসাবে দ্বি-মুখী টিএলএস/এসএসএল সক্ষম করা সহ কোনও টার্গেটেন্ডপয়েন্টে <sslinfo> ট্যাগটি একইভাবে কনফিগার করতে পারেন। শুধুমাত্র টিসিপি প্রোটোকল সমর্থিত।

logLevel

ঐচ্ছিক।

বৈধ মান: INFO (ডিফল্ট), ALERT , WARN , ERROR

বার্তা লগটিতে অন্তর্ভুক্ত করার জন্য একটি নির্দিষ্ট স্তরের তথ্য সেট করুন।

আপনি যদি FormatMessage উপাদানটি ব্যবহার করছেন (এটি সত্যে সেট করে), আপনার logLevel সেটিংটি বার্তায় নির্ধারিত অ্যাপিগি-উত্পাদিত তথ্যে গণনা করা অগ্রাধিকার স্কোর (কোণ বন্ধনীর অভ্যন্তরের সংখ্যা) প্রভাবিত করে।

স্কিমাস


ব্যবহারের নোট

কোনও এপিআই প্রক্সি প্রবাহের সাথে কোনও মেসেজলগিং নীতি সংযুক্ত করার সময়, পোস্টক্লিয়েন্টফ্লো নামক একটি বিশেষ প্রবাহে এটি প্রক্সেন্ডপয়েন্টের প্রতিক্রিয়াতে রাখার বিষয়টি বিবেচনা করুন। পোস্টক্লিয়েন্টফ্লো অনুরোধকারী ক্লায়েন্টকে প্রতিক্রিয়া প্রেরণের পরে কার্যকর করে, যা নিশ্চিত করে যে সমস্ত মেট্রিক লগিংয়ের জন্য উপলব্ধ। পোস্টক্লিয়েন্টফ্লো ব্যবহারের বিশদগুলির জন্য, এপিআই প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।

পোস্টক্লিয়েন্টফ্লো দুটি উপায়ে বিশেষ:

  1. এটি কেবল প্রতিক্রিয়া প্রবাহের অংশ হিসাবে কার্যকর করা হয়েছে।
  2. প্রক্সি ত্রুটি অবস্থায় প্রবেশের পরে এটি একমাত্র প্রবাহ কার্যকর করা হয়।

কারণ প্রক্সি সফল হয়েছে বা ব্যর্থ হয়েছে তা নির্বিশেষে এটি কার্যকর করা হয়েছে, আপনি পোস্টক্লিয়েন্টফ্লোতে মেসেজলগিং নীতিগুলি রাখতে পারেন এবং গ্যারান্টিযুক্ত হতে পারেন যে তারা সর্বদা কার্যকর করে।

নিম্নলিখিত ট্রেস ইমেজটি ডিফল্টফাল্ট্রুল কার্যকর করার পরে পোস্টক্লিয়েন্টফ্লোর অংশ হিসাবে কার্যকর করা একটি মেসেজলগিং নীতি দেখায়:

এই উদাহরণে, যাচাই করা এপিআই কী নীতিটি একটি অবৈধ কী কারণে দোষের কারণ হয়েছিল।

নীচে দেখানো হয়েছে প্রক্সিেন্ডপয়েন্ট সংজ্ঞাটি যা পোস্টক্লিয়েন্টফ্লো অন্তর্ভুক্ত করে:

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

এজ বার্তাগুলি সহজ পাঠ্য হিসাবে লগ করে এবং আপনি ভেরিয়েবলগুলি অন্তর্ভুক্ত করতে লগিং কনফিগার করতে পারেন, যেমন অনুরোধ বা প্রতিক্রিয়া প্রাপ্ত তারিখ এবং সময়, অনুরোধে ব্যবহারকারীর পরিচয়, উত্স আইপি ঠিকানা যা থেকে অনুরোধটি প্রেরণ করা হয়েছিল এবং আরও অনেক কিছু। এজ লগ বার্তাটিকে অসাধারণভাবে লগ করে, যার অর্থ আপনার এপিআই -তে কলআউটগুলি অবরুদ্ধ করার কারণে ঘটতে পারে এমন কোনও বিলম্বতা প্রবর্তিত হয় না।

মেসেজলগিং নীতিটি কোনও বাফারে মেমরিতে লগ করা বার্তাগুলি লিখে। বার্তা লগার বাফার থেকে বার্তাগুলি পড়ে এবং তারপরে আপনি যে গন্তব্যটি কনফিগার করেন তা লিখে। প্রতিটি গন্তব্য নিজস্ব বাফার আছে।

যদি বাফারে লেখার হার পঠন হারের বাইরে বৃদ্ধি পায় তবে বাফার ওভারফ্লো এবং লগিং ব্যর্থ হবে। যদি এটি ঘটে থাকে তবে আপনি লগ ফাইলে নিম্নলিখিতগুলি সমন্বিত একটি বার্তা পেতে পারেন:

Log message size exceeded. Increase the max message size setting

আপনি যদি বেসরকারী ক্লাউড 4.15.07 এবং এর আগে এই সমস্যাটির মুখোমুখি হন তবে message-logging.properties ফাইলটি সনাক্ত করুন এবং এই সমাধানটি ব্যবহার করুন:

message-logging.properties ফাইলে max.log.message.size.in.kb সম্পত্তি (ডিফল্ট মান = 128 কেবি) বৃদ্ধি করুন।

প্রাইভেট ক্লাউড 4.16.01 এর জন্য প্রান্তের জন্য এবং পরে, conf/message-logging.properties+max. log.message.size.in.kb সম্পত্তি /ওপ্ট/ এপিজি/কোস্টোমার/অ্যাপলিকেশন/মেসেজ-প্রোসেসর.প্রোপার্টিগুলি ফাইল এবং বার্তা প্রসেসরটি পুনরায় চালু করুন। দয়া করে মনে রাখবেন যে এই সম্পত্তিটি প্রাথমিকভাবে ডিফল্টরূপে মন্তব্য করা হয়েছে।

দ্রষ্টব্য: প্রান্তে প্রতিক্রিয়া বার্তা ভেরিয়েবলগুলি ত্রুটি প্রবাহ থেকে পাওয়া যায় না। পূর্ববর্তী প্রবাহটি ত্রুটি প্রবাহ হলে এই ভেরিয়েবলগুলি পোস্টক্লিয়েন্টফ্লোতেও পাওয়া যায় না। আপনি যদি পোস্টক্লিয়েন্টফ্লো থেকে প্রতিক্রিয়া তথ্য লগ করতে চান তবে বার্তা অবজেক্টটি ব্যবহার করুন। কোনও ত্রুটি আছে কি না তা প্রতিক্রিয়া থেকে শিরোনাম এবং অন্যান্য তথ্য পেতে আপনি এই অবজেক্টটি ব্যবহার করতে পারেন। আরও তথ্য এবং একটি উদাহরণের জন্য বার্তা ভেরিয়েবলগুলি দেখুন।

ব্যক্তিগত মেঘের জন্য এজে লগ বার্তা টাইমস্ট্যাম্প নিয়ন্ত্রণ করা

ডিফল্টরূপে, সমস্ত লগ বার্তাগুলিতে টাইমস্ট্যাম্পের ফর্ম্যাটটি রয়েছে:

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

এই সিস্টেম-ওয়াইড ডিফল্টটি DateFormat উপাদান ব্যবহার করে সিসলগ গন্তব্যগুলির জন্য ওভাররাইড করা যেতে পারে। এই টেমপ্লেটের আচরণটি জাভার সিম্পলডেটফর্ম্যাট ক্লাসের ডকুমেন্টেশনে বর্ণিত হয়েছে। এই সংজ্ঞা অনুসারে, yyyy 4-অঙ্কের বছর দিয়ে প্রতিস্থাপন করা হবে, MM 2-অঙ্কের মাসের নম্বর সহ প্রতিস্থাপন করা হবে এবং আরও অনেক কিছু। উপরের ফর্ম্যাটটির ফলে এই ফর্মটির একটি স্ট্রিং হতে পারে:

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

আপনি সেই ফর্ম্যাটটি নিয়ন্ত্রণ করতে এজ বার্তা প্রসেসরের কনফ_সিস্টেম_পিজি.সিস্লোগার.ডেটফর্ম্যাট সম্পত্তি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, বার্তার ফর্ম্যাটটি পরিবর্তন করুন:

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

.. স্ল্যাশগুলির সাথে ড্যাশগুলি পুনরায় প্রতিস্থাপন করা এবং 2-অঙ্কের বছরে সংক্ষিপ্তকরণ, ফর্মটিতে একটি টাইমস্ট্যাম্প রেকর্ড করে:

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

ফর্ম্যাটটি পরিবর্তন করতে:

  1. কোনও সম্পাদকে বার্তা-প্রসেসর.প্রোপার্টি ফাইল খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দসই হিসাবে সম্পত্তি সেট করুন:
    কনফ_সিস্টেম_এপিজি.সিস্লোগার.ডেটফর্ম্যাট = ওয়াইওয়াই/মিমি/ডিডিটি'এইচএইচ: মিমি: এসএসএসএসজেড
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'অ্যাপিগি' ব্যবহারকারীর মালিকানাধীন:
    > ছাউন অ্যাপিগি: অ্যাপিগি/ওপ্ট/অ্যাপিগি/কাস্টোমার/অ্যাপলিকেশন/মেসেজ-প্রোসেসর.প্রোপার্টিগুলি
  5. প্রান্ত বার্তা প্রসেসর পুনরায় চালু করুন:
    >/অপ্ট/অ্যাপিগি/অ্যাপিগি-পরিষেবা/বিন/অ্যাপিগি-পরিষেবা প্রান্ত-মেসেজ-প্রসেসর পুনরায় চালু করুন

ব্যক্তিগত মেঘের জন্য এজে ফাইলের অবস্থান লগ করুন

বেসরকারী মেঘের জন্য প্রান্ত 4.16.01 এবং পরে

ডিফল্টরূপে, ব্যক্তিগত ক্লাউড বার্তা লগগুলি বার্তা প্রসেসর নোডগুলিতে নিম্নলিখিত ডিরেক্টরিতে অবস্থিত:

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

আপনি বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে বৈশিষ্ট্যগুলি সংশোধন করে ডিফল্ট লগের অবস্থানটি পরিবর্তন করতে পারেন: বার্তা প্রসেসরগুলিতে:

  • Bin_setenv_data_dir - লগ ফাইল স্টোরেজ জন্য মূল পথ সেট করে। উদাহরণস্বরূপ, bin_setenv_data_dir=/opt/apigee/var/log
  • কনফ_মেসেজ-লগিং_লগ.রোট.ডির -আপনি যদি এটিকে কোনও আপেক্ষিক পথে সেট করেন যেমন conf/message-logging.properties+log.root.dir=custom/folder/ , the path is appended to the bin_setenv_data_dir location.

    আপনি যদি এটিকে একটি নিখুঁত পথে সেট করেন, যেমন conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages , বার্তা লগগুলি /opt/apigee/var/log/messages/messagelog/ এ সংরক্ষণ করা হবে। একটি পরম পথ bin_setenv_data_dir চেয়ে অগ্রাধিকার গ্রহণ করে।

    নোট করুন যে আপনাকে সম্পত্তিটি কনফ/বার্তা-লগিং হিসাবে উল্লেখ করতে হবে PR একটি টোকেন সেট করা দেখুন যা বর্তমানে আরও মন্তব্য করা হয়েছে

আপনি যদি কোনও ফ্ল্যাট ফাইল স্ট্রাকচারে লগ ফাইলগুলি সঞ্চয় করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, তবে কনফ/বার্তা-লগিং সেট করুন PR বার্তাগুলি উপরের বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} রূপ নেয়}

এই বৈশিষ্ট্যগুলি সেট করতে:

  1. কোনও সম্পাদকে বার্তা-প্রসেসর.প্রোপার্টি ফাইল খুলুন। ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. পছন্দসই হিসাবে সম্পত্তি সেট করুন:
    কনফ/বার্তা-লগিং.প্রোপার্টিগুলি+লগ.রুট.ডির = /অপ্ট/এপিগি/ভিএআর/লগ/বার্তা
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে বৈশিষ্ট্য ফাইলটি 'অ্যাপিগি' ব্যবহারকারীর মালিকানাধীন:
    > ছাউন অ্যাপিগি: অ্যাপিগি/ওপ্ট/অ্যাপিগি/কাস্টোমার/অ্যাপলিকেশন/মেসেজ-প্রোসেসর.প্রোপার্টিগুলি
  5. প্রান্ত উপাদান পুনরায় চালু করুন:
    >/অপ্ট/অ্যাপিগি/অ্যাপিগি-পরিষেবা/বিন/অ্যাপিগি-পরিষেবা প্রান্ত-মেসেজ-প্রসেসর পুনরায় চালু করুন

প্রাইভেট ক্লাউড 4.15.07 এবং এর আগে প্রান্ত

ডিফল্টরূপে, বার্তা লগগুলি বার্তা প্রসেসরগুলিতে নিম্নলিখিত স্থানে অবস্থিত:

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

বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে নিম্নলিখিত বৈশিষ্ট্যগুলি সংশোধন করে আপনি ডিফল্ট লগের অবস্থান পরিবর্তন করতে পারেন: বার্তা প্রসেসরগুলিতে:

  • ডেটা.ডির - লগ ফাইল স্টোরেজের জন্য মূল পথ সেট করে। উদাহরণস্বরূপ, ডেটা.ডির =/অপ্ট/এপিগি 4/ভার/লগ
  • LOG.ROOT.DIR - আপনি যদি এটিকে কোনও আপেক্ষিক পথে সেট করেন, যেমন লগ.রুট.ডির = কাস্টম/ফোল্ডার/, পথটি ডেটা.ডির অবস্থানে যুক্ত করা হয়।

উদাহরণস্বরূপ, দুটি বৈশিষ্ট্যের সংমিশ্রণটি লগিং ডিরেক্টরিটি/অপ্ট/এপিআইজি 4/ভিএআর/লগ/কাস্টম/ফোল্ডার/মেসেজলগ/এ সেট করবে (নোট করুন যে/মেসেজলগটি স্বয়ংক্রিয়ভাবে যুক্ত হয়েছে)।

আপনি যদি এটিকে একটি নিখুঁত পথে সেট করেন, যেমন লগ.রুট.ডির =/অপ্ট/এপিআইজিআই 4/ভিএআর/লগ/বার্তা , বার্তা লগগুলি/অপ্ট/এপিআইজিআই 4/ভিএআর/লগ/বার্তা/মেসেজলগ/এ সংরক্ষণ করা হবে। লগ.রুট.ডিরের একটি পরম পথটি ডেটা.ডিরের চেয়ে বেশি অগ্রাধিকার নেয়।

আপনি যদি কোনও ফ্ল্যাট ফাইল স্ট্রাকচারে লগ ফাইলগুলি সঞ্চয় করতে চান যাতে সমস্ত লগ ফাইল একই ডিরেক্টরিতে রাখা হয়, তবে বার্তা-লগিং.প্রোপার্টি ফাইলগুলিতে বার্তার প্রসেসরে সক্ষম.ফ্ল্যাট.ডাইরেক্টরি.স্ট্রাকচার সম্পত্তিটি সত্যে সেট করুন। বার্তাগুলি উপরের বৈশিষ্ট্যগুলি দ্বারা নির্দিষ্ট করা ডিরেক্টরিতে সংরক্ষণ করা হয় এবং ফাইলের নামগুলি {org} _ {পরিবেশ} _ {এপিআই_প্রক্সি_নাম} _ {রিভিশন} _ {লগিং_পলিসি_নাম} _ {ফাইলের নাম} রূপ নেয়}

বার্তা টেমপ্লেটে ভেরিয়েবলের জন্য ডিফল্ট মান

ডিফল্ট মানগুলি পৃথকভাবে বার্তা টেমপ্লেটে প্রতিটি ভেরিয়েবলের জন্য নির্দিষ্ট করা যেতে পারে। উদাহরণস্বরূপ, যদি পরিবর্তনশীল request.header.id সমাধান করা যায় না, তবে এর মানটি unknown মান দিয়ে প্রতিস্থাপন করা হয়।

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

Message উপাদানটিতে defaultVariableValue অ্যাট্রিবিউট সেট করে সমস্ত অমীমাংসিত ভেরিয়েবলের জন্য একটি সাধারণ ডিফল্ট মান নির্দিষ্ট করা যেতে পারে:

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

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা

মেসেজলগিং নীতি আপনাকে স্প্লঙ্ক, সুমো লজিক এবং লগলির মতো তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলিতে সিসলগ বার্তা প্রেরণ করতে দেয়। আপনি যদি সেই পরিষেবাগুলির মধ্যে একটিতে সিসলগ প্রেরণ করতে চান তবে পরিষেবার হোস্ট, পোর্ট এবং প্রোটোকলটি কনফিগার করতে সেই পরিষেবার ডকুমেন্টেশন দেখুন, তারপরে সেই অনুযায়ী এই নীতিমালায় সিসলগ উপাদান সেট করুন।

তৃতীয় পক্ষের লগ ম্যানেজমেন্ট কনফিগারেশনের জন্য নিম্নলিখিত ডকুমেন্টেশন দেখুন:

  • স্প্লঙ্ক (পণ্য সংস্করণ নির্বাচন করুন)
    এছাড়াও এই অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন: https://community.apigee.com/content/kbentry/13298/log-messages-into-plunk.html
  • সুমো লজিক
    • এছাড়াও এই অ্যাপিগি সম্প্রদায়ের পোস্টটি দেখুন: https://community.apigee.com/questions/5226/setting- আপ-লগিং-উইথ-সুমো-লোগিক-যা-হোস্ট-shou.html
    • লগিং পরিষেবা হিসাবে সুমো লজিক ব্যবহার করে একটি সম্পূর্ণ উদাহরণের জন্য, নিম্নলিখিত অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন। সমাধানটি সুমো লজিককে এইচটিটিপি পোস্টের অনুরোধগুলি তৈরি করতে একটি একক জাভাস্ক্রিপ্ট নীতি ব্যবহার করে H
  • লগে লগে
    লগলি ব্যবহার করার সময়, <Syslog> উপাদানটির সন্তান হিসাবে নীতিমালায় <FormatMessage>true</FormatMessage> প্রয়োজন।
    লগলিতে লগিং বার্তা সম্পর্কে আরও তথ্যের জন্য এই অ্যাপিগি সম্প্রদায় পোস্টটি দেখুন: https://community.apigee.com/content/kbentry/14798/log-messages-into-loggly.html

ত্রুটি উল্লেখ

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ
steps.messagelogging.StepDefinitionExecutionFailed 500 ফল্ট স্ট্রিং দেখুন।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidProtocol মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Protocol> উপাদানের মধ্যে নির্দিষ্ট করা প্রোটোকল বৈধ না হয়। বৈধ প্রোটোকল হল TCP এবং UDP। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
InvalidPort মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Port> উপাদানের মধ্যে পোর্ট নম্বর নির্দিষ্ট করা না থাকে বা এটি বৈধ না হয়। পোর্ট নম্বর অবশ্যই শূন্যের চেয়ে বড় একটি পূর্ণসংখ্যা হতে হবে।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name Matches "StepDefinitionExecutionFailed"
messagelogging. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। messagelogging.ML-LogMessages.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

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

উদাহরণ দোষ নিয়ম

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


ফ্লো ভেরিয়েবল

নিম্নলিখিত ভেরিয়েবলগুলি নীতি ব্যর্থতার উপর জনবহুল।

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

সম্পর্কিত বিষয়

,

আপনি অ্যাপিগি এজ ডকুমেন্টেশন দেখছেন।
অ্যাপিগি এক্স ডকুমেন্টেশনে যান
তথ্য

কি

এপিআই রানটাইম পরিবেশে সমস্যাগুলি ট্র্যাক করার অন্যতম সেরা উপায় হ'ল বার্তা লগ করা। স্থানীয় ডিস্কে (কেবলমাত্র ব্যক্তিগত মেঘের জন্য প্রান্ত) বা সিসলগে কাস্টম বার্তা লগ করতে আপনি আপনার এপিআইতে একটি মেসেজলগিং নীতি সংযুক্ত করতে এবং কনফিগার করতে পারেন।

নমুনা

সিসলগ

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

মেসেজলগিং নীতি প্রকারের একটি সাধারণ ব্যবহার হ'ল একটি সিসলগ অ্যাকাউন্টে লগ ইন করা। সিসলগের জন্য কনফিগার করা হলে, একটি এপিআই প্রক্সি অ্যাপিগি এজ থেকে রিমোট সিসলগ সার্ভারে লগ বার্তাগুলি ফরোয়ার্ড করবে। আপনার ইতিমধ্যে একটি সিসলগ সার্ভার উপলব্ধ থাকতে হবে। যদি তা না হয় তবে পাবলিক লগ ম্যানেজমেন্ট পরিষেবাগুলি, এই জাতীয় স্প্লঙ্ক, সুমো লজিক এবং লগলি উপলব্ধ। তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাগুলি কনফিগার করা দেখুন।

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার এপিআই গ্রাহক অ্যাপ্লিকেশনগুলি থেকে প্রাপ্ত প্রতিটি অনুরোধ বার্তা সম্পর্কে তথ্য লগ করতে হবে। মান 3f509b58 লগগি পরিষেবার জন্য নির্দিষ্ট একটি মূল মান উপস্থাপন করে। আপনার যদি লগগি অ্যাকাউন্ট থাকে তবে আপনার লগলি কীটি বিকল্প দিন। উত্পন্ন লগ বার্তাটি চারটি মান দিয়ে পপুলেট করা হবে: অনুরোধ বার্তায় একটি ক্যোয়ারী প্যারামিটারের মান সহ লেনদেনের সাথে সম্পর্কিত সংস্থা, এপিআই প্রক্সি এবং পরিবেশের নাম।

আপনার যদি ব্যক্তিগত ক্লাউড মোতায়েনের জন্য প্রান্ত থাকে তবে আপনি কোনও ফাইলে লগ বার্তাও লিখতে পারেন।

টিএলএস/এসএসএল ওভার সিসলগ

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

আপনি <SSLInfo> ব্লক যুক্ত করে টিএলএস/এসএসএলে তৃতীয় পক্ষের বার্তা লগিং সরবরাহকারীদের বার্তা প্রেরণ করতে পারেন।

ফাইল ঘূর্ণন: আকার

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

ফাইলের আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময়

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

সময়ের উপর ভিত্তি করে ফাইল ঘূর্ণন।

ফাইল ঘূর্ণন: সময় এবং আকার

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

সময় এবং আকারের উপর ভিত্তি করে ফাইল ঘূর্ণন।

স্ট্রিম-সক্ষম

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

স্ট্রিম-সক্ষম করা বার্তা লগিং


উপাদান রেফারেন্স

মেসেজলগিং নীতি প্রকারটি কনফিগার করতে নিম্নলিখিত উপাদানগুলি ব্যবহার করুন।

ক্ষেত্রের নাম ক্ষেত্রের বিবরণ

File

স্থানীয় ফাইল গন্তব্য। (ফাইল লগিং কেবল ব্যক্তিগত ক্লাউড মোতায়েনের জন্য প্রান্তে সমর্থিত)) ফাইলগুলি যেখানে সংরক্ষণ করা হয় সে সম্পর্কিত তথ্যের জন্য, ব্যক্তিগত ক্লাউডের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

Message আপনার পছন্দসই তথ্য ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্যের সংমিশ্রণে লগ ফাইলে প্রেরণের জন্য বার্তাটি তৈরি করুন। নমুনাগুলি দেখুন।
FileName লগ ফাইলের বেস নাম। কোনও ফাইল পাথ নির্দিষ্ট করবেন না। উদাহরণস্বরূপ, এই FileName উপাদানটি একটি ফাইল পাথ নির্দিষ্ট করে এবং অবৈধ:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName>

এই কোডটি কেবল একটি ফাইলের নাম নির্দিষ্ট করে এবং বৈধ:

<FileName>mylog.log</FileName>

ফাইলটি কোথায় সংরক্ষণ করা হয়েছে সে সম্পর্কিত তথ্যের জন্য, ব্যক্তিগত মেঘের জন্য এজে লগ ফাইলের অবস্থান দেখুন।

FileRotationOptions
rotateFileOnStartup

বৈশিষ্ট্য বৈধ মান: true / false

যদি সত্যে সেট করা হয়, তবে প্রতিবার মেসেজিং ইঞ্জিনটি পুনরায় আরম্ভ হওয়ার সময় লগ ফাইলটি ঘোরানো হয়।

FileRotationType লগ ফাইলের ঘূর্ণন নীতি ( size বা time ) নির্দিষ্ট করে।
MaxFileSizeInMB (রোটেশন টাইপ হিসাবে size নির্বাচন করার ক্ষেত্রে) লগ ফাইলের আকার নির্দিষ্ট করে যা সার্ভারকে পৃথক ফাইলে স্থানান্তর করতে ট্রিগার করে। লগ ফাইলটি নির্দিষ্ট আকারে পৌঁছানোর পরে, সার্ভারটি বর্তমান লগ ফাইলটির নামকরণ করে।
RotationFrequency ( time হিসাবে সময় বাছাইয়ের সময়) কয়েক মিনিটের মধ্যে সময় নির্দিষ্ট করে যা সার্ভারকে লগ বার্তাগুলিকে পৃথক ফাইলে সরাতে ট্রিগার করে। নির্দিষ্ট ব্যবধান শেষ হওয়ার পরে, বর্তমান লগ ফাইলটির নামকরণ করা হয়েছে।
MaxFilesToRetain

আপনার ঘূর্ণন সেটিংসের প্রসঙ্গে বজায় রাখতে সর্বাধিক সংখ্যক ফাইল নির্দিষ্ট করে। ডিফল্ট মান হল 8

আপনি যদি শূন্য (0) নির্দিষ্ট করেন তবে লগ ফাইলগুলি অনির্দিষ্টকালের জন্য ধরে রাখা হয় তবে আপনার ফাইলের ঘূর্ণন সেটিংসের সাপেক্ষে, যদিও ফাইলগুলির কোনওটি মুছে ফেলা বা নামকরণ করা হয় না। অতএব, ভবিষ্যতের ডিস্ক-পূর্ণ ত্রুটিগুলি এড়ানোর জন্য, এটিকে শূন্যের চেয়ে বৃহত্তর মান হিসাবে সেট করুন, বা পুরানো রক্ষণাবেক্ষণ লগ ফাইলগুলি শুদ্ধ করা বা সংরক্ষণাগারগুলির নিয়মিত, স্বয়ংক্রিয় সিস্টেম প্রয়োগ করুন।

BufferMessage

যদি আপনার প্রক্সিটির জন্য এইচটিটিপি স্ট্রিমিং সক্ষম করা থাকে তবে অনুরোধ/প্রতিক্রিয়া বার্তাগুলি বাফার না করা হয়। আপনি যদি এমন সামগ্রী লগ করতে চান যা প্রবাহের বার্তাটিকে পার্স করা প্রয়োজন, তবে বাফারমেসেজকে সত্যে সেট করুন। উদাহরণের জন্য "স্ট্রিম-সক্ষম" নমুনা ট্যাবটি দেখুন। ডিফল্ট: মিথ্যা

Syslog

একটি সিসলগ গন্তব্য। স্প্লঙ্ক, সুমো লজিক বা লগলিতে সিসলগ প্রেরণ করতে, তৃতীয় পক্ষের লগ ম্যানেজমেন্ট পরিষেবাদি কনফিগার করা দেখুন।

Message

আপনি চান তথ্য ক্যাপচার করতে ভেরিয়েবলের সাথে পাঠ্যের সংমিশ্রণ করে সিসলগে প্রেরণের জন্য বার্তাটি তৈরি করুন। নমুনাগুলি দেখুন।

দ্রষ্টব্য: ত্রুটি প্রবাহের পরে পোস্টক্লিয়েন্টফ্লোতে প্রতিক্রিয়া ভেরিয়েবলগুলি পাওয়া যাবে না। ত্রুটি এবং সাফল্যের পরিস্থিতি উভয়ের জন্য প্রতিক্রিয়া তথ্য লগ করতে বার্তা ভেরিয়েবলগুলি ব্যবহার করুন। ব্যবহারের নোটগুলিও দেখুন।

Host সার্ভারের হোস্টনাম বা আইপি ঠিকানা যেখানে সিসলগ পাঠানো উচিত। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্টটি লোকালহোস্ট।
Port পোর্ট যেখানে সিসলগ চলছে। আপনি যদি এই উপাদানটি অন্তর্ভুক্ত না করেন তবে ডিফল্টটি 514।
Protocol টিসিপি বা ইউডিপি (ডিফল্ট)। ইউডিপি আরও পারফরম্যান্স হলেও, টিসিপি প্রোটোকল সিসলগ সার্ভারে বার্তা লগ সরবরাহের গ্যারান্টি দেয়। টিএলএস/এসএসএল -এর মাধ্যমে সিসলগ বার্তা প্রেরণের জন্য, কেবল টিসিপি সমর্থিত।
FormatMessage

true বা false (ডিফল্ট)

Ption চ্ছিক, তবে <FormatMessage>true</FormatMessage> লগলির সাথে ব্যবহারের জন্য প্রয়োজনীয়।

এই উপাদানটি আপনাকে বার্তায় নির্ধারিত অ্যাপিগি-উত্পাদিত সামগ্রীর ফর্ম্যাটটি নিয়ন্ত্রণ করতে দেয়। যদি সত্যে সেট করা হয় তবে সিসলগ বার্তাটি একটি নির্দিষ্ট সংখ্যক অক্ষর দ্বারা প্রস্তুত করা হয়, যা আপনাকে বার্তাগুলি থেকে সেই তথ্য ফিল্টার করতে দেয়। স্থির ফর্ম্যাটের জন্য এখানে একটি উদাহরণ:

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

অ্যাপিগি-উত্পাদিত তথ্যের মধ্যে রয়েছে:

  • <14> - বার্তার লগ স্তর এবং সুবিধা স্তরের উপর ভিত্তি করে একটি অগ্রাধিকার স্কোর ( সিসলগ প্রোটোকল দেখুন)।
  • 1 - বর্তমান সিসলগ সংস্করণ।
  • একটি ইউটিসি অফসেটের সাথে তারিখ (ইউটিসি = +0000)।
  • বার্তা প্রসেসর ইউইড।
  • "অ্যাপিগি -এজ - - -"

যদি মিথ্যা (ডিফল্ট) এ সেট করা থাকে তবে বার্তাটি সেই স্থির অক্ষরগুলির সাথে প্রস্তুত করা হয় না।

PayloadOnly

true বা false (ডিফল্ট)

This element sets the format of Apigee-generated messages to contain only the body of the syslog message, without the prepended characters specified by FormatMessage .

If you don't include this element or leave it empty, the default value is false .

See FormatMessage .

DateFormat

ঐচ্ছিক।

A formatting template string to use to format the timestamp for each log message. By default, Apigee uses yyyy-MM-dd'T'HH:mm:ss.SSSZ . The behavior of this template is described in the documentation for Java's SimpleDateFormat class .

SSLInfo

Lets you log messages through SSL/TLS. Use with sub-element <Enabled>true</Enabled> .

If you don't include this element or leave it empty, the default value is false (no TLS/SSL).

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

You can configure the <SSLInfo> tag the same as you can on a TargetEndpoint, including enabling two-way TLS/SSL, as described in API proxy configuration reference . Only the TCP protocol is supported.

logLevel

ঐচ্ছিক।

Valid values: INFO (default), ALERT , WARN , ERROR

Set a specific level of information to be included in the message log.

If you're using the FormatMessage element (setting it to true), your logLevel setting affects the calculated priority score (the number inside the angle brackets) in the Apigee-generated information prepended to the message.

স্কিমাস


ব্যবহারের নোট

When attaching a MessageLogging policy to an API proxy flow, consider placing it in the ProxyEndpoint response, in a special flow called PostClientFlow. The PostClientFlow executes after the response is sent to the requesting client, which ensures that all metrics are available for logging. For details on using PostClientFlow, see API proxy configuration reference .

The PostClientFlow is special in two ways:

  1. It only executed as part of the response flow.
  2. It is the only flow executed after the proxy enters the error state.

Because it is executed regardless of whether the proxy succeeded or failed, you can put MessageLogging policies in the PostClientFlow and be guaranteed that they always execute.

The following Trace image shows a MessageLogging policy executing as part of the PostClientFlow, after the DefaultFaultRule executes:

In this example, the Verify API Key policy caused the fault because of an invalid key.

Shown below is the ProxyEndpoint definition that includes the PostClientFlow:

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

Edge logs messages as simple text, and you can configure logging to include variables, such as the date and time when the request or response was received, the user identity on the request, the source IP address from which the request was sent, and so on. Edge logs message asynchronously, meaning that no latency that might be caused by blocking callouts is introduced to your API.

The MessageLogging policy writes logged messages in memory to a buffer. The message logger reads messages from the buffer and then writes to the destination that you configure. Each destination has its own buffer.

If the write rate to the buffer increases beyond the read rate, the buffer overflows and logging will fail. If this happens, you might find a message containing the following in the log file:

Log message size exceeded. Increase the max message size setting

If you encounter this issue in Edge for Private Cloud 4.15.07 and earlier, locate the message-logging.properties file and use this solution:

Increase the max.log.message.size.in.kb property (default value = 128 KB) in the message-logging.properties file.

For Edge for Private Cloud 4.16.01 and later, set the conf/message-logging.properties+max. log.message.size.in.kb property in the /opt/apigee/customer/application/message-processor.properties file and restart the Message Processor. Please note that this property is initially commented out by default.

Note: The response message variables in Edge are not available from the Error Flow. These variables are also not available in PostClientFlow if the preceding flow was the Error Flow. If you want to log response information from the PostClientFlow, use the message object. You can use this object to get at headers and other information from the response whether or not there was an error. See Message variables for more information and an example.

Controlling log message timestamp in Edge for Private Cloud

By default, the timestamp in all log messages has the format:

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

This system-wide default can be overridden for syslog destinations using the DateFormat element. The behavior of this template is described in the documentation for Java's SimpleDateFormat class . According to that definition, yyyy will be replaced with a 4-digit year, MM will be replaced with a 2-digit month number, and so on. The above format might result in a string of this form:

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

You can use the conf_system_apigee.syslogger.dateFormat property on the Edge Message Processor to control that format. For example, changing the message format to:

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

..replacing the dashes with slashes, and shortening to a 2-digit year, records a timestamp in the form:

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

To change the format:

  1. Open the message-processor.properties file in an editor. ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Set the properties as desired:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. Make sure the properties file is owned by the 'apigee' user:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Restart the Edge Message Processor:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Log file location in Edge for Private Cloud

Edge for Private Cloud 4.16.01 and later

By default, Private Cloud message logs are located in the following directory on Message Processor nodes:

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

You can change the default log location by modifying properties in the message-logging.properties file on the Message Processors:

  • bin_setenv_data_dir - Sets the root path for log file storage. For example, bin_setenv_data_dir=/opt/apigee/var/log
  • conf_message-logging_log.root.dir - If you set this to a relative path, such as conf/message-logging.properties+log.root.dir=custom/folder/ , the path is appended to the bin_setenv_data_dir location.

    If you set this to an absolute path, such as conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages , message logs will be stored in /opt/apigee/var/log/messages/messagelog/ . An absolute path takes precedence over bin_setenv_data_dir .

    Note that you have to reference the property as conf/message-logging.properties+log.root.dir because it is commented out by default. See Setting a token that is currently commented out for more.

If you want to store log files in a flat file structure so that all log files are put in the same directory, set the conf/message-logging.properties+enable.flat.directory.structure to true in the message-logging.properties file. Messages are stored in the directory specified by the properties above, and the file names take the form of {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} .

To set these properties:

  1. Open the message-processor.properties file in an editor. ফাইলটি বিদ্যমান না থাকলে, এটি তৈরি করুন:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Set the properties as desired:
    conf/message-logging.properties+log.root.dir= /opt/apigee/var/log/messages
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. Make sure the properties file is owned by the 'apigee' user:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Restart the Edge component:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Edge for Private Cloud 4.15.07 and earlier

By default, message logs are located in the following location on message processors:

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

You can change the default log location by modifying the following properties in the message-logging.properties file on the message processors:

  • data.dir - Sets the root path for log file storage. For example, data.dir=/opt/apigee4/var/log
  • log.root.dir - If you set this to a relative path, such as log.root.dir=custom/folder/, the path is appended to the data.dir location.

For example, the combination of the two properties would set the logging directory at /opt/apigee4/var/log/custom/folder/messagelog/ (note that /messagelog is added automatically).

If you set this to an absolute path, such as log.root.dir=/opt/apigee4/var/log/messages , message logs will be stored in /opt/apigee4/var/log/messages/messagelog/. An absolute path in log.root.dir takes precedence over data.dir .

If you want to store log files in a flat file structure so that all log files are put in the same directory, set the enable.flat.directory.structure property to true in the message-logging.properties file on Message Processors. Messages are stored in the directory specified by the properties above, and the file names take the form of {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} .

Default values for variables in message template

Default values can be specified for each variable in message template separately. For example, if the variable request.header.id cannot be resolved, then its value is replaced with the value unknown .

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

A common default value can be specified for all the unresolved variables by setting the defaultVariableValue attribute on the Message element:

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

Configuring third-party log management services

The MessageLogging policy lets you send syslog messages to third-party log management services, such as Splunk, Sumo Logic, and Loggly. If you want to send syslog to one of those services, see that service's documentation to configure the service's host, port, and protocol, then set the Syslog element on this policy accordingly.

See the following documentation for third-party log management configuration:

ত্রুটি উল্লেখ

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ
steps.messagelogging.StepDefinitionExecutionFailed 500 ফল্ট স্ট্রিং দেখুন।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidProtocol মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Protocol> উপাদানের মধ্যে নির্দিষ্ট করা প্রোটোকল বৈধ না হয়। বৈধ প্রোটোকল হল TCP এবং UDP। TLS/SSL এর মাধ্যমে syslog বার্তা পাঠানোর জন্য, শুধুমাত্র TCP সমর্থিত।
InvalidPort মেসেজলগিং নীতির স্থাপনা এই ত্রুটির সাথে ব্যর্থ হতে পারে যদি <Port> উপাদানের মধ্যে পোর্ট নম্বর নির্দিষ্ট করা না থাকে বা এটি বৈধ না হয়। পোর্ট নম্বর অবশ্যই শূন্যের চেয়ে বড় একটি পূর্ণসংখ্যা হতে হবে।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name Matches "StepDefinitionExecutionFailed"
messagelogging. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। messagelogging.ML-LogMessages.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

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

উদাহরণ দোষ নিয়ম

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


ফ্লো ভেরিয়েবল

The following variables are populated on policy failure.

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

সম্পর্কিত বিষয়