ฉันจะเรียกใช้การตรวจสอบ nagios ด้วยตนเองจากบรรทัดคำสั่งได้อย่างไร


24

เมื่อกำหนดและทดสอบบริการใหม่ใน nagios ฉันได้เริ่มต้น nagios ใหม่จากนั้นคลิกบริการและกำหนดเวลาตรวจสอบใหม่โดยเร็วที่สุดจากนั้นรอจนกว่าการตรวจสอบจะเกิดขึ้น

มีวิธีที่มีประสิทธิภาพมากกว่านี้ไหม ฉันต้องการใช้บรรทัดคำสั่งเพื่อเรียกใช้การตรวจสอบเฉพาะนั้นและรับผลลัพธ์

คำตอบ:


31

บางครั้งฉันคิดว่ามันยากที่จะเข้าใจว่าปลั๊กอินกำลังทำอะไรอยู่ ในการคิดออกนี้ฉันตั้ง nagios เข้าสู่โหมดแก้ไขข้อบกพร่องด้วยการกำหนดค่าเช่นนี้ debug_level=2048 ด้วย nagios ในโหมดการแก้ปัญหาผมหางเพียงไฟล์debug_log debug_file=/var/log/nagios3/nagios.debugบังคับให้มีการตรวจสอบแล้วคุณจะเห็นว่าคำสั่งนั้นถูกเรียกใช้อย่างไร ฉันจะไม่เปิดใช้งานการตั้งค่านี้ตามปกติแม้ว่าจะเป็น verbose และเติมไฟล์บันทึกของคุณในอัตราที่รวดเร็ว


น่ากลัว นี่เป็นสิ่งที่ฉันต้องการ เพียงเพราะฉันได้ดูในไฟล์ command.cfg เพื่อหาว่าคำสั่งใดกำลังทำงานอยู่ แต่ฉันต้องการทราบว่ามีการตั้งค่าสถานะใด ขอบคุณ! :)
cwd

2
ฉันยังจะกล่าวถึงผู้ใช้ใหม่ที่ใช้tail -fจะช่วยให้คุณสามารถดูการปรับปรุงไฟล์ในเวลาจริงและcontrol+cจะยกเลิกสิ่งนี้
cwd

2
debug_levels เป็นแบบไบนารี - 2048 จะเปิดเฉพาะข้อความจากมาโครเท่านั้น หากต้องการเปิดทุกสิ่งที่คุณต้องการตั้งค่า debug_level = 4095 (1 + 2 + ... + 2048)
jwg

18

มันค่อนข้างง่าย เพียง cd (หรือไม่) ลงในไดเรกทอรีปลั๊กอิน (ตำแหน่งไดเรกทอรีนี้จะแตกต่างกันไปขึ้นอยู่กับวิธีที่คุณติดตั้ง แต่ตรวจสอบ / usr / local / nagios หรือ / usr / lib / nagios)

ค้นหาปลั๊กอินที่คุณต้องการเรียกใช้ (หากคุณไม่แน่ใจให้เปรียบเทียบสิ่งที่คุณเห็นในไดเรกทอรีปลั๊กอินของคุณบนกล่อง Linux กับปลั๊กอินที่อยู่ที่นี่: http://exchange.nagios.org/directory/Pluginsหรือลองเรียกใช้ "./plugin-name -h" เพื่อรับข้อมูลช่วยเหลือเกี่ยวกับปลั๊กอิน)

วิธีการใช้ "ปลั๊กอิน" เหล่านี้จากบรรทัดคำสั่งเหมือนกับสคริปต์ Linux อื่น ๆ : เพียงแค่รัน "./plugin-name" ด้วยแฟล็กที่เหมาะสมที่คุณต้องการตรวจสอบและ voila!


1
+1 ... และหากดูเหมือนว่ามีปัญหามากเกินไปคุณสามารถดูไฟล์กำหนดค่า Nagios เพื่อดูคำสั่งและพารามิเตอร์ที่ต้องรัน แม้แต่ตำแหน่งของไดเรกทอรีปลั๊กอินก็ยังอยู่ในนั้น
John Gardeniers

5
และระลึกไว้เสมอว่าทำกับnagiosผู้ใช้su - nagios -s /bin/bashเสมอ
quanta

ดี และ-โหลดตัวแปรสภาพแวดล้อมสำหรับผู้ใช้นั้นหรือไม่
cwd

ใช่เช่นเดียวกับลินุกซ์ธงอื่น ๆ "-" พร้อมกับสิ่งที่คุณใช้ธงจะโหลดธง (ถ้าฉันใช้ df -h บน linux CLI ฉันใช้แฟล็ก "h" - ในกรณีของคำสั่ง df h หมายถึง "มนุษย์อ่านได้") ดังนั้นหากคุณต้องการเรียกใช้เช็ค check_http จาก CLI คุณจะเรียกใช้. /check_http -I ซึ่งแฟล็ก I หมายถึงที่อยู่ IP ( nagiosplugins.org/man/check_http ) nagiosplugins.org/manอาจเป็นประโยชน์เช่นเดียวกับไดเรกทอรีปลั๊กอินที่ฉันลิงค์ไปก่อนหน้านี้
David W

ตัวเลือกความช่วยเหลือควรเป็น - ช่วย nagios-plugins.org/doc/guidelines.html
dmourati

5

ฉันใช้ทิศทางที่โหดร้ายมากกว่า @Zoredache เล็กน้อยฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ nagios และทำ "ในขณะที่ทำจริงทำ ps awwlx | grep NAGIOS_CHECK_NAME เสร็จแล้ว" ในขณะที่ฉันบังคับให้ตรวจสอบบริการอีกครั้งโดยที่ NAGIOS_CHECK_NAME ส่วนหนึ่งของชื่อตรวจสอบหรือ IP ของเซิร์ฟเวอร์ที่ฉันกำลังมองหา โดยปกติภายในไม่กี่วินาทีคำสั่งตรวจสอบเต็มจะปรากฏขึ้นแล้วฉันจะฆ่าขณะที่วนรอบและเรียกใช้คำสั่งตรวจสอบ

ใช่มันเป็นสัตว์ที่ดุร้าย แต่ <shrug> มันใช้งานได้สำหรับฉัน


ลอง "ดู" แทนห่วงในขณะที่ linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati

3

คุณอาจต้องการลองปลั๊กอิน 'จับ' โดยพื้นฐานแล้วมันทำสิ่งเดียวกันกับระดับการดีบักที่ 2048 แต่สามารถใช้แบบต่อปลั๊กอินได้ นี่ให้ผลผลิตน้อยกว่าในการขุดผ่าน

http://www.waggy.at/nagios/capture_plugin.htm


1
ฉันพยายามทำให้เรื่องนี้ทำงานไม่แน่ใจว่าฉันทำอะไรผิด (noob) แต่เคล็ดลับ debug_level นั้นเหมาะกับฉัน :)
sbditto85

2

ไปที่ไดเรกทอรีปลั๊กอินของคุณ - ในตัวอย่างของฉันมันเป็น

/usr/lib64/nagios/plugins/

พิมพ์ชื่อปลั๊กอินของคุณ - ในตัวอย่างของฉันมันคือ

check_tcp

ตอนนี้รันคำสั่งแบบเต็ม - (ชื่อปลั๊กอิน) -H (ชื่อโฮสต์) -p (หมายเลขพอร์ต)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

เอาท์พุต

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

อย่างไรก็ตามในตัวอย่างนี้หมายเลขพอร์ตเป็นตัวเลือก

ตัวอย่างอื่น -

ในไฟล์ปรับแต่งของคุณซึ่งมีลักษณะดังนี้ด้านล่าง (myserver.cfg) และคุณต้องการเรียกใช้ check_cpu จากบรรทัดคำสั่ง

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

เพื่อตรวจสอบทันที (ไม่มี GUI สีเขียวหรือสีแดง)

ลองใช้วิธีนี้ - (เส้นทางแบบเต็มของปลั๊กอิน) - H (ชื่อเซิร์ฟเวอร์) -c (เครื่องหมายถูก)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

เอาท์พุท -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

แค่นั้นแหละ

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