मैं अपनी सेवाओं के साथ "(सेवा की जांच ठीक से बाहर नहीं हुई)" और "(अशक्त)" परिणामों को कैसे हल कर सकता हूं?


10

मैं Nagios में सेवा जांच के लिए कुछ पर्ल आधारित स्क्रिप्ट का उपयोग कर रहा हूँ और मैं (Service check did not exit properly)और (null)Nagios में परिणाम के रूप में है, लेकिन स्क्रिप्ट कमांड लाइन पर अच्छा काम करता है।

मैंने ऑनलाइन समाधानों को देखा है enable_embedded_perl=0जो कि Nagios कॉन्फ़िगरेशन में सेटिंग द्वारा या आंतरिक रूप से दुभाषिया के लिए पथ निर्दिष्ट करके आंतरिक पर्ल इंटरप्रेटर को निष्क्रिय करने का सुझाव देता है । इस मुद्दे के साथ मदद नहीं की।

यह और क्या हो सकता है?


क्या आप एक उदाहरण दिखा सकते हैं कि यह CLI के माध्यम से "कैसे महान काम करता है"?
कीथ

जवाबों:


11

नागियोस में अपने स्वयं के एम्बेडेड पर्ल दुभाषिया शामिल हैं। आपका प्लगइन शायद नहीं है आज्ञाकारी।

आप इसे विश्व स्तर पर अक्षम करना चाहते हैं, या बस इसे अपनी स्क्रिप्ट के लिए अक्षम कर सकते हैं। उस डॉक्स पृष्ठ का निचला भाग आपको दिखाता है कि यह कैसे करना है।

मूल रूप से, # nagios: -epnअपनी लिपि की पहली दस पंक्तियों के भीतर कहीं अपनी ही लाइन पर जोड़ें । इससे आपकी समस्या ठीक होनी चाहिए।

आप इसे अनुपालन भी कर सकते हैं , लेकिन यह निश्चित रूप से परेशानी के लायक नहीं है।


हाँ, सुझाव के लिए धन्यवाद। हालांकि मैंने स्पष्ट रूप से कहा कि इससे उस विशिष्ट समस्या पर कोई प्रभाव नहीं पड़ा जो मैं झेल रहा था।
डेर होकस्टापलर

यह नागों के लिए वास्तविक संकल्प है। बिना -nn, प्लगइन शामिल है और आंतरिक रूप से nagios द्वारा निष्पादित किया जाता है। -epn के साथ, इसे बायनेरी या बैश स्क्रिप्ट के समान बाहरी निष्पादन योग्य के रूप में लोड किया जाता है। पृष्ठ देखें: nagios.sourceforge.net/docs/3_0/embeddedperl.html और epn शिकायत पर विचार करें
Znik

1
# nagios: -epnडॉक्स और मेरे परीक्षणों के अनुसार कोलन की आवश्यकता होती है ।
इडुप्री

1
अजीब तरह से पर्याप्त, वर्तमान उबंटू LTS (18.04) संस्करण नगियोस-प्लगइन्स-मानक (2.2-3ubuntu2) का मुद्दा है। चीजें काम करता है, तो मैं या तो प्रभावित प्लगइन्स, जैसे संशोधित check_disk_smbऔर check_file_age, या अगर मैं सेटuse_embedded_perl_implicitly=0
Akom

मेरे लिए यह तय! धन्यवाद ...
ऑस्कर ब्रावो

3

नागोस एक्सचेंज की कुछ पर्ल स्क्रिप्ट्स में utils.pmपर्ल मॉड्यूल को शामिल करने की कोशिश की जाएगी । आपको इसमें कहीं एक लाइन मिलेगी:

use lib "/usr/local/nagios/libexec";

डेबियन पर Nagios स्थापित करते समय, utils.pmफ़ाइल का डिफ़ॉल्ट स्थान है /usr/lib/nagios/plugins/utils.pm। तो use libनिर्देश होना चाहिए:

use lib "/usr/lib/nagios/plugins";

कमांड लाइन से कमांड को निष्पादित करने की संभावना सबसे अधिक काम करती है क्योंकि आप /usr/lib/nagios/plugins/अपने प्लगइन का संपादन कर रहे थे ।


2

के साथ कमांड उपसर्ग करें /usr/bin/perl

यह समाधान वर्कअराउंड का अधिक है, ऐसा करना शायद अच्छा विचार नहीं है, लेकिन कम से कम आपके प्लगइन को उसी तरह काम करना चाहिए जब आप इसे टर्मिनल से लॉन्च करते हैं।

नोट: मेरे अनुभव में # nagios -epnअक्सर काम करता है, लेकिन कभी-कभी यह पर्याप्त नहीं लगता है। मैंने देखा कि जब ऐसा होता है, तो दोषपूर्ण प्लगइन्स कई चेतावनियों की सूचना देते हैं (जब स्क्रिप्ट को लागू किया जाता है perl -w)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.