অ্যান্ড্রয়েড

Nginx ত্রুটি এবং অ্যাক্সেস লগ কনফিগার করা

লগিং | nginx

লগিং | nginx

সুচিপত্র:

Anonim

এনগিনেক্স একটি ওপেন-সোর্স, উচ্চ-পারফরম্যান্স এইচটিটিপি এবং বিপরীত প্রক্সি সার্ভার যা ইন্টারনেটের বৃহত্তম কিছু সাইটের লোড পরিচালনার জন্য দায়ী। এনজিআইএনএক্স ওয়েব সার্ভার পরিচালনা করার সময়, আপনি যে সবচেয়ে ঘন ঘন কাজটি সম্পাদন করেন তা হ'ল লগ ফাইলগুলি পরীক্ষা করা।

সার্ভার বা অ্যাপ্লিকেশন সমস্যাগুলির সমাধান করার সময় লগগুলি কীভাবে কনফিগার করতে এবং পড়তে হয় তা কার্যকরভাবে দরকারী যখন তারা বিস্তারিত ডিবাগিং তথ্য সরবরাহ করে।

এনগিনেক্স দুটি ইভেন্টের লগগুলিতে এর ইভেন্টগুলির রেকর্ড লিখেছেন: অ্যাক্সেস লগ এবং ত্রুটি লগ। অ্যাক্সেস লগগুলি ক্লায়েন্টের অনুরোধগুলি সম্পর্কে তথ্য লিখতে পারে এবং ত্রুটিযুক্ত লগগুলি সার্ভার এবং অ্যাপ্লিকেশন সম্পর্কিত সমস্যাগুলি সম্পর্কে তথ্য লেখায়।

এই নিবন্ধটি এনগিনেক্স অ্যাক্সেস এবং ত্রুটি লগগুলি কীভাবে কনফিগার করতে এবং পড়তে হবে তার রূপরেখা দেয়।

অ্যাক্সেস লগটি কনফিগার করা হচ্ছে

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

log_format নির্দেশ আপনাকে লগ করা বার্তাগুলির ফর্ম্যাট নির্ধারণ করতে দেয়। access_log নির্দেশটি লগ ফাইল এবং ব্যবহৃত ফর্ম্যাটটির অবস্থান সক্ষম করে এবং সেট করে।

access_log নির্দেশিকার সর্বাধিক প্রাথমিক বাক্য access_log নিম্নরূপ:

access_log log_file log_format;

যেখানে লগ-ফাইল log_format লগ ফাইলের সম্পূর্ণ পথ এবং লগ-ফর্ম্যাটটি লগ ফাইল দ্বারা ব্যবহৃত বিন্যাস।

অ্যাক্সেস লগটি http , server বা location নির্দেশাবলী ব্লকে সক্ষম হতে পারে।

ডিফল্টরূপে, অ্যাক্সেস লগটি মূল এনগিনেক্স কনফিগারেশন ফাইলের অভ্যন্তরে http নির্দেশিকায় বিশ্বব্যাপী সক্ষম হয়।

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

আরও ভাল রক্ষণাবেক্ষণের জন্য, প্রতিটি সার্ভার ব্লকের জন্য পৃথক অ্যাক্সেস লগ ফাইল সেট করার পরামর্শ দেওয়া হয়। server নির্দেশিকায় access_log নির্দেশিকাটি access_log (উচ্চ স্তরের) নির্দেশিকার একটি সেটকে ওভাররাইড করে।

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

যদি কোনও লগ ফর্ম্যাট নির্দিষ্ট না করা থাকে তবে এনগিনেক্স পূর্বনির্ধারিত সম্মিলিত ফর্ম্যাট ব্যবহার করে যা এর মতো দেখায়:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

লগিং ফর্ম্যাটটি পরিবর্তন করতে হয় ডিফল্ট সেটিংস ওভাররাইড করে অথবা একটি নতুন সংজ্ঞা দেয়। উদাহরণস্বরূপ মূল নামের একটি নতুন লগিং ফর্ম্যাট সংজ্ঞায়িত করতে যা X-Forwarded-For শিরোনামের মান সহ সম্মিলিত ফর্ম্যাটটি প্রসারিত করবে http বা server নির্দেশিকায় নিম্নলিখিত সংজ্ঞাটি যুক্ত করবে:

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

নতুন ফর্ম্যাটটি ব্যবহার করতে, নীচের মত লগ ফাইলের পরে এর নামটি উল্লেখ করুন:

access_log /var/log/nginx/access.log custom;

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

access_log off;

ত্রুটি লগ কনফিগার করা হচ্ছে

এনগিনেক্স ত্রুটি লগ ফাইলে অ্যাপ্লিকেশন এবং সাধারণ সার্ভার ত্রুটি সম্পর্কে বার্তা লেখেন। আপনি যদি আপনার ওয়েব অ্যাপ্লিকেশনটিতে ত্রুটি অনুভব করছেন, সমস্যা সমাধানের সমস্যার জন্য ত্রুটি লগই প্রথম স্থান।

error_log নির্দেশটি ত্রুটি লগের অবস্থান এবং তীব্রতার স্তরটিকে সক্ষম করে এবং সেট করে। এটি নিম্নলিখিত ফর্মটি গ্রহণ করে এবং এটি কোনও http , server বা location ব্লকের মধ্যে সেট করা যেতে পারে:

error_log log_file log_level

লগ-লেভেল পরামিতি লগিংয়ের স্তর নির্ধারণ করে। নীচে তাদের তীব্রতার দ্বারা নীচে স্তরের তালিকা দেওয়া হয়েছে (নিম্ন থেকে উচ্চে):

  • debug - ডিবাগিং বার্তাগুলি। info - তথ্যমূলক বার্তা। notice - বিজ্ঞপ্তি warn - সতর্কতা। error - একটি অনুরোধ প্রক্রিয়া করার সময় ত্রুটি। crit - সমালোচনামূলক সমস্যা। একটি তাত্ক্ষণিক পদক্ষেপ প্রয়োজন। alert - সতর্কতা অবিলম্বে ব্যবস্থা নেওয়া উচিত। emerg - জরুরী অবস্থা। সিস্টেমটি অকেজো অবস্থায় রয়েছে।

প্রতিটি লগ স্তর উচ্চ স্তরের অন্তর্ভুক্ত। উদাহরণস্বরূপ, আপনি warn করার জন্য লগ স্তরটি সেট করা থাকলে, crit error , crit , alert এবং emerg বার্তাগুলিও লগ করবে।

log_level প্যারামিটারটি নির্দিষ্ট না করা হলে এটি error ডিফল্ট হয়।

ডিফল্টরূপে, ত্রুটি_লগ নির্দেশকে মূল এনজিনএক্স.কনফ ফাইলের ভিতরে http নির্দেশিকায় সংজ্ঞায়িত করা হয়:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

অ্যাক্সেস লগগুলির মতোই, প্রতিটি সার্ভার ব্লকের জন্য পৃথক ত্রুটি লগ ফাইল সেট করার পরামর্শ দেওয়া হয়, যা উচ্চ স্তর থেকে উত্তরাধিকার সূত্রে প্রাপ্ত সেটিংসকে ওভাররাইড করে।

উদাহরণস্বরূপ, ডোমেন ডট কমকে ত্রুটিযুক্ত লগ সেট করতে আপনি warn করতে ব্যবহার করবেন:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

আপনি যখনই কনফিগারেশন ফাইলটি পরিবর্তন করেন, পরিবর্তনগুলি কার্যকর করতে আপনাকে Nginx পরিষেবাটি পুনরায় চালু করতে হবে।

লগ ফাইলগুলির অবস্থান

বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনের উপর যেমন উবুন্টু, সেন্টোস এবং ডেবিয়ান, অ্যাক্সেস এবং ত্রুটি লগগুলি /var/log/nginx ডিরেক্টরিতে অবস্থিত।

এনগিনেক্স লগ ফাইলগুলি পড়া এবং বোঝা

আপনি cat , less , grep , cut , awk মতো স্ট্যান্ডার্ড কমান্ড ব্যবহার করে লগ ফাইলগুলি খুলতে এবং পার্স করতে পারেন।

অ্যাক্সেস লগ ফাইলের একটি উদাহরণ রেকর্ড যা ডিফল্ট সংযুক্ত Nginx লগ ফর্ম্যাটটি ব্যবহার করে:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

আসুন রেকর্ডের প্রতিটি ক্ষেত্রের অর্থটি ভেঙে দেওয়া যাক:

  • $remote_addr - 192.168.33.1 - অনুরোধ করা ক্লায়েন্টের আইপি ঠিকানা। $remote_user - - - HTTP প্রমাণীকরণকারী ব্যবহারকারী। যখন ব্যবহারকারীর নাম সেট করা থাকে না, তখন এই ক্ষেত্রটি দেখায় - । - - স্থানীয় সার্ভার সময়। "$request" - "GET / - অনুরোধের ধরণ, পথ এবং প্রোটোকল। $status - 200 - সার্ভারের প্রতিক্রিয়া কোড। $body_bytes_sent - 396 - বাইটে সার্ভারের প্রতিক্রিয়ার আকার। "$http_referer" - "-" - রেফারেলের URL। "$http_user_agent" - Mozilla/5.0… - ক্লায়েন্টের ব্যবহারকারী এজেন্ট (ওয়েব ব্রাউজার)।

রিয়েল-টাইমে লগ ফাইলটি দেখতে tail কমান্ডটি ব্যবহার করুন:

tail -f access.log

উপসংহার

লগ ফাইলগুলি আপনাকে সার্ভার সমস্যা এবং দর্শকদের কীভাবে আপনার ওয়েবসাইটের সাথে ইন্টারঅ্যাক্ট করে সে সম্পর্কে দরকারী তথ্য সরবরাহ করে।

Nginx আপনাকে আপনার প্রয়োজন অনুসারে অ্যাক্সেস এবং ত্রুটি লগগুলি কনফিগার করতে দেয়।

nginx