উত্তর:
Nginx প্লাগইনগুলি স্থিতির তথ্য পেতে নিম্নলিখিত URL- এ নির্ভর করে:
http://127.0.0.1/nginx_status
সাধারণত, এনজিঙ্ক্সের স্থিতির ডেটা দেখানোর জন্য এই URL টি কনফিগার করা থাকে না।
প্লাগইনগুলির ডকুমেন্টেশন থেকে, আমি দেখতে পাচ্ছি যে একটি উত্সাহী ইউআরএলগুলিতে স্থিতির ডেটা দেখানোর জন্য এনগিনেক্স কনফিগার করা দরকার।
আপনাকে সাইটের কনফিগারেশনে নিম্নলিখিত লাইনগুলি যুক্ত করে nginx স্থিতি সক্ষম করতে হবে:
server {
listen 127.0.0.1;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
এই কনফিগারেশনটি যুক্ত করার পরে সার্ভারটি পুনরায় চালু করতে ভুলবেন না এবং stus ইউআরএল স্থিতির ডেটা ফেরায় তা নিশ্চিত করুন।
প্রতিটি প্লাগইনের সম্পূর্ণ ডকুমেন্টেশনের জন্য, আপনি চালাতে পারেন:
munindoc nginx_request
আশাকরি এটা সাহায্য করবে.
http://localhost/
6 পছন্দ করে এবং এইভাবে এনজিএনএক্স কনফিগারেশনটি মেলে যা কেবলমাত্র আইভিভি 4 লোকালহোস্টের অনুমতি দিচ্ছে। ইউআরএল স্থির /etc/munin/plugin-conf.d/munin-node
করে http://127.0.0.1/nginx_status
শেষ পর্যন্ত প্লাগইনটি কাজ করে।
আমার অভিজ্ঞতায়, এই প্লাগইনগুলি সম্ভবত এনজিনেক্সের ভুল কনফিগারেশনের কারণে কাজ করছে না। এই ক্ষেত্রে কী করবেন তার একটি সংক্ষিপ্ত তালিকা এখানে রয়েছে:
এনজিনেক্সকে অবশ্যই এইচটিটিপিস্টাবস্ট্যাটাসমডুল মডিউল দিয়ে সংকলন করতে হবে । নিম্নলিখিত কমান্ডটি চালিয়ে আপনি এটি পরীক্ষা করতে পারেন (সুডো বা মূলের অধীনে):
nginx -V 2>&1 | grep -o with-http_stub_status_module
আপনি যদি নিম্নলিখিত ফলাফলগুলি দেখেন, আপনি এগিয়ে যেতে ভাল।
with-http_stub_status_module
অন্যথায়, আপনাকে প্রয়োজনীয় মডিউলটি সক্ষম করে বিভিন্ন উত্স থেকে ইনস্টল করতে হবে বা বিভিন্ন উত্স থেকে ইনস্টল করতে হবে (আমার ক্ষেত্রে, ডিফল্ট ডেবিয়ান রেপোর সঠিক সংস্করণ ছিল)।
আমি ধরে নিচ্ছি যে আপনি প্রয়োজনীয় কনফিগারটি স্থাপন করেছেন এবং সক্ষম করেছেন । এটি কাজ করছে কিনা তা দেখার ssh
জন্য আপনি নিজের সার্ভারে গিয়ে রান করতে পারেন
wget http://localhost/nginx_status
আপনি যদি এখানে কোনও ত্রুটি না পান তবে সমস্যাটি প্লাগইন কনফিগারেশন। সার্ভার যদি এখানে ত্রুটি ফেরায়, আপনি কনফিগারেশনটি সংশোধন করে ডিবাগ করতে পারেন:
location /nginx_status {
stub_status on;
access_log off;
error_log /var/log/nginx/status.error.log;
allow 127.0.0.1;
deny all;
}
এর পরে, ফাইলটিতে /var/log/nginx/status.error.log
আপনি সার্ভার ত্রুটি ফিরিয়ে দেওয়ার সঠিক কারণটি দেখতে পাবেন:
[error] 2203#0: *1442 access forbidden by rule, client: ::1, server: localhost, request: "GET /nginx_status HTTP/1.1", host: "localhost"
আমার ক্ষেত্রে (যেমন আপনি লগ থেকে দেখতে পাচ্ছেন) সমস্যাটি ছিল client: ::1
, যখন কনফিগারেশনের দ্বারা কেবল অ্যাক্সেসের অনুমতি দেওয়া হয়েছিল127.0.0.1
সমস্যাটি সমাধান করতে আপনি হয় সিফারামের পরামর্শ অনুসরণ করতে পারেন বা ভার্চুয়াল হোস্ট কনফিগারেশনটি সংশোধন করতে পারেন :
server {
listen 80;
listen [::]:80;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
(লক্ষ্য করুন যে আমি listen: 127.0.0.1
পোর্ট ৮০ (ipv4 + ipv6) এর সাথেও প্রতিস্থাপন করেছি কারণ পূর্ববর্তীটিও কাজ করেনি)
প্লাগইন নিজে কাজ করছে কিনা তা পরীক্ষা করতে, চালান
munin-run nginx_status
(নোট করুন যে প্লাগইন অবশ্যই "চালু" করতে হবে - একটি সিমিলিংক অবশ্যই উপস্থিত থাকতে হবে /etc/munin/plugins
- ম্যানুয়ালটি পড়তে হবে না তবে)
আপনি যদি LWP
লাইব্রেরিতে (যেমন LWP::UserAgent
বা LWP::VERSION
) ত্রুটি পান তবে আপনার সিস্টেমে nginx_status
প্লাগইন দ্বারা প্রয়োজনীয় একটি প্যাকেজ অনুপস্থিত ।
দেবিয়ান / উবুন্টুতে, চালান
apt install libwww-perl
CentOS এ
yum install perl-libwww-perl
সেই পরীক্ষার পরে আবার প্লাগইন ব্যবহার করে munin-run
। প্রত্যাশিত আউটপুট (সংখ্যাগুলি পৃথক হবে):
total.value 1
reading.value 0
writing.value 1
waiting.value 0
/var/log/munin-update.log
সার্ভারনেম / 127.0.0.1 এ পরিষেবা nginx_status: 4949 এর ত্রুটি বার্তাগুলির উপর ভিত্তি করে 49 বছর লেবেল অপেক্ষার জন্য কোনও ডেটা ফেরত পাঠানো হয়নি), যে libwww-perl
অনুপস্থিত তা খুঁজে পেতে আমি কয়েক বছর ধরে অনুসন্ধান করতে পারতাম । এই বিস্তৃত উত্তরের জন্য অনেক ধন্যবাদ।
সম্ভবত সহায়ক:
cd /etc/munin/plugins
munin-run PLUGINNAME
মুনিন-রান করার জন্য অতিরিক্তভাবে ডিবাগ বিকল্পটি ব্যবহার করুন।
যে কোনও হার্ড কোডড পাথের জন্য প্লাগইন ফাইলটি পরীক্ষা করে দেখুন এবং এটি আপনার সিস্টেমে সঠিক কিনা তা যাচাই করুন:
grep '/' PLUGINNAME
Nginx প্লাগইন একটি নির্দিষ্ট ফর্ম্যাটে নির্দিষ্ট মডিউল বা লগ আউটপুট দ্বারা সংকলিত Nginx উপর নির্ভর করতে পারে। প্লাগইনগুলির জন্য কোনও ডকুমেন্টেশন পৃষ্ঠা রয়েছে?
মূল বিষয় হ'ল মুনিন কনফিগারেশনের url।
আপনার প্রয়োজন হবে
[nginx*]
env.url http://localhost/nginx_status
বিঃদ্রঃ
nginx_status
না
nginx-status
Libwww-perl ইনস্টল করুন তারপর munin-run nginx_status
পরিসংখ্যান দেখতে কমান্ড চালান ।
মুনি-নোড পরিষেবা পুনরায় চালু করুন।
apt install libwww-perl time
ম্যাগিন নোডগুলিতে এনগিনেক্সUse of uninitialized value $LWP::VERSION
প্লাগইনগুলির সাথে এর লগ সম্পর্কিত ইস্যুগুলির জন্য ছিল ।