এনগিনেক্স মুনিন প্লাগইন কোনও ডেটা দেখায় না


9

আমি মুনিনের মাধ্যমে এনজিঞ্জের পরিসংখ্যানগুলি পর্যবেক্ষণ করতে চাই তবে এনগিনেক্স প্লাগইনগুলি কোনও ডেটা দেখায় না। কেবল মুনিন এনগিনেক্স প্লাগইনগুলির মধ্যে একটির কেন কাজ করছে বলে মনে করা সম্ভব?

nginx মুনিন

সার্ভারটি সেন্টস 5.3 এ চলেছে

উত্তর:


14

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

আশাকরি এটা সাহায্য করবে.


1
পার্শ্ব দ্রষ্টব্য: এখানে নথিভুক্ত হিসাবে উবুন্টু 16.04 চালানো এনগিনেক্সকে সক্ষম করা আমার ক্ষেত্রে যথেষ্ট ছিল না। এছাড়াও আমাকে apt install libwww-perl timeম্যাগিন নোডগুলিতে এনগিনেক্স Use of uninitialized value $LWP::VERSIONপ্লাগইনগুলির সাথে এর লগ সম্পর্কিত ইস্যুগুলির জন্য ছিল ।
টমাস আরবান

অন্য পক্ষের নোট: যেহেতু আজ সার্ভারগুলিতে আইপিভি 6 সমর্থনযোগ্য তাই এনগিনেক্স_ * প্লাগইন ব্যবহারের ডিফল্ট ইউআরএল সম্ভবত আইভিভি http://localhost/6 পছন্দ করে এবং এইভাবে এনজিএনএক্স কনফিগারেশনটি মেলে যা কেবলমাত্র আইভিভি 4 লোকালহোস্টের অনুমতি দিচ্ছে। ইউআরএল স্থির /etc/munin/plugin-conf.d/munin-nodeকরে http://127.0.0.1/nginx_statusশেষ পর্যন্ত প্লাগইনটি কাজ করে।
টমাস আরবান

4

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

1. nginx ইনস্টলেশন পরীক্ষা করুন

এনজিনেক্সকে অবশ্যই এইচটিটিপিস্টাবস্ট্যাটাসমডুল মডিউল দিয়ে সংকলন করতে হবে । নিম্নলিখিত কমান্ডটি চালিয়ে আপনি এটি পরীক্ষা করতে পারেন (সুডো বা মূলের অধীনে):

nginx -V 2>&1 | grep -o with-http_stub_status_module

আপনি যদি নিম্নলিখিত ফলাফলগুলি দেখেন, আপনি এগিয়ে যেতে ভাল।

with-http_stub_status_module

অন্যথায়, আপনাকে প্রয়োজনীয় মডিউলটি সক্ষম করে বিভিন্ন উত্স থেকে ইনস্টল করতে হবে বা বিভিন্ন উত্স থেকে ইনস্টল করতে হবে (আমার ক্ষেত্রে, ডিফল্ট ডেবিয়ান রেপোর সঠিক সংস্করণ ছিল)।

2. এনগিনেক্স কনফিগারেশন পরীক্ষা করুন

আমি ধরে নিচ্ছি যে আপনি প্রয়োজনীয় কনফিগারটি স্থাপন করেছেন এবং সক্ষম করেছেন । এটি কাজ করছে কিনা তা দেখার 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অনুপস্থিত তা খুঁজে পেতে আমি কয়েক বছর ধরে অনুসন্ধান করতে পারতাম । এই বিস্তৃত উত্তরের জন্য অনেক ধন্যবাদ।
বার্নিনলিও

2

সম্ভবত সহায়ক:

cd /etc/munin/plugins
munin-run PLUGINNAME

মুনিন-রান করার জন্য অতিরিক্তভাবে ডিবাগ বিকল্পটি ব্যবহার করুন।

যে কোনও হার্ড কোডড পাথের জন্য প্লাগইন ফাইলটি পরীক্ষা করে দেখুন এবং এটি আপনার সিস্টেমে সঠিক কিনা তা যাচাই করুন:

grep '/' PLUGINNAME

Nginx প্লাগইন একটি নির্দিষ্ট ফর্ম্যাটে নির্দিষ্ট মডিউল বা লগ আউটপুট দ্বারা সংকলিত Nginx উপর নির্ভর করতে পারে। প্লাগইনগুলির জন্য কোনও ডকুমেন্টেশন পৃষ্ঠা রয়েছে?


2

মূল বিষয় হ'ল মুনিন কনফিগারেশনের url।

আপনার প্রয়োজন হবে

[nginx*]
env.url http://localhost/nginx_status

বিঃদ্রঃ

nginx_status

না

nginx-status

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.