ฉันจะแก้ไขผลลัพธ์“ (การตรวจสอบบริการไม่ออกอย่างถูกต้อง)” และ“ (null)” กับบริการของฉันได้อย่างไร


10

ฉันใช้สคริปต์ที่ใช้ Perl สำหรับตรวจสอบบริการใน Nagios และฉันได้รับ(Service check did not exit properly)และ(null)เป็นผลลัพธ์ใน Nagios แต่สคริปต์ทำงานได้ดีบนบรรทัดคำสั่ง

ฉันได้เห็นวิธีแก้ปัญหาออนไลน์ที่แนะนำให้ปิดการใช้งานล่าม Perl ภายในโดยการตั้งค่าenable_embedded_perl=0ในการกำหนดค่า Nagios หรือโดยการระบุเส้นทางไปยังล่ามอย่างชัดเจน สิ่งนี้ไม่ได้ช่วยแก้ไขปัญหา

มันจะเป็นอะไรอีก?


คุณสามารถแสดงตัวอย่างว่า "ใช้งานได้ดี" ผ่าน CLI ได้อย่างไร
Keith

คำตอบ:


11

Nagios ประกอบด้วยตัวแปลภาษา Perl ของตัวเอง ปลั๊กอินของคุณอาจไม่สอดคล้องกับ epn

คุณอาจต้องการที่จะปิดการใช้งานทั่วโลกหรือเพียงแค่ปิดการใช้งานสำหรับสคริปต์ของคุณ ด้านล่างของหน้าเอกสารนั้นแสดงวิธีการทำเช่นนี้

โดยทั่วไปให้เพิ่ม# nagios: -epnบรรทัดของตัวเองลงในสคริปต์ของคุณสิบบรรทัดแรก สิ่งนี้จะแก้ไขปัญหาของคุณ

คุณสามารถทำให้มันเข้ากันได้ แต่มันก็ไม่คุ้มกับปัญหาเลย


ใช่ขอบคุณสำหรับคำแนะนำ แม้ว่าฉันจะระบุอย่างชัดเจนว่าสิ่งนี้ไม่ได้มีผลกระทบต่อปัญหาเฉพาะที่ฉันกำลังเผชิญ
Der Hochstapler

นี่คือการแก้ไขที่แท้จริงสำหรับ nagios หากไม่มี -epn ปลั๊กอินจะรวมและดำเนินการภายในโดย nagios ด้วย -epn มันถูกโหลดเป็นไฟล์เรียกทำงานภายนอกคล้ายกับไบนารีหรือสคริปต์ทุบตี ดูหน้า: nagios.sourceforge.net/docs/3_0/embeddedperl.html และพิจารณาการร้องเรียนของ
epn

1
จำเป็นต้องใช้โคลอนใน# nagios: -epnตามเอกสารและต่อการทดสอบของฉัน
idupree

1
น่าประหลาดใจที่ Ubuntu รุ่น LTS (18.04) ปัจจุบันของ nagios-plugins-standard (2.2-3ubuntu2) มีปัญหานี้ สิ่งที่ใช้งานได้หากฉันแก้ไขปลั๊กอินที่ได้รับผลกระทบเช่นcheck_disk_smbและcheck_file_ageหรือถ้าฉันตั้งค่าไว้use_embedded_perl_implicitly=0
Akom

แก้ไขให้ฉัน! ขอบคุณ ...
Oscar Bravo

3

สคริปต์ Perl บางตัวจาก Nagios Exchange จะพยายามรวมutils.pmโมดูล Perl ไว้ด้วย คุณจะพบบรรทัดเช่นนี้ที่ใดที่หนึ่งในนั้น:

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

เมื่อติดตั้ง Nagios ใน Debian ตำแหน่งเริ่มต้นของไฟล์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)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.