กลุ่มโฮสต์และแม่แบบ
เทมเพลตช่วยให้คุณกำหนดคลาสสำหรับโฮสต์และบริการของคุณเช่น "บริการปกติ", "บริการที่สำคัญ", "โฮสต์ที่มีลำดับความสำคัญต่ำ" พวกเขายังเป็นวิธีที่มีประโยชน์ในการแบ่งความรับผิดชอบหากคุณมีหลายทีมที่มีความรับผิดชอบแตกต่างกันดังนั้นคุณสามารถมีแม่แบบ "linux host" และแม่แบบ "windows host" โดยแต่ละคนจะกำหนดข้อมูลการติดต่อที่เหมาะสม
คุณสามารถใช้หลายแม่แบบบนทรัพยากรเดียวเพื่อให้คุณสามารถเขียนแม่แบบมุมฉากที่เหมาะสม ตัวอย่างเช่นคุณสามารถมี
host foo {
use windows-host,normal-priority-host
...
}
ซึ่งจะดึงข้อมูลผู้ติดต่อ (และการเพิ่ม) สำหรับทีม Windows และอัตราการสำรวจและเกณฑ์สำหรับโฮสต์ "ปกติ"
กลุ่มโฮสต์ให้คุณจัดกลุ่มการตรวจสอบทั้งหมดสำหรับชุดย่อยของโฮสต์ของคุณ มีสิ่งต่าง ๆ เช่น "baseline-linux-hosts" ที่ตรวจสอบโหลดพื้นที่ดิสก์ssh
ความสามารถและสิ่งอื่น ๆ ที่ควรอยู่ในโฮสต์ทุกตัวที่คุณตรวจสอบ เพิ่มกลุ่มเช่น "https-servers" ด้วยการตรวจสอบการเชื่อมต่อ HTTP, การเชื่อมต่อ HTTPS และวันหมดอายุใบรับรอง SSL; "fileservers" พร้อมการตรวจสอบการเข้าถึง NFS และ SMB และการตรวจสอบดิสก์ที่รุนแรงกว่าเดิม หรือ "เครื่องเสมือน" ที่มีการตรวจสอบว่าเครื่องมือช่วยการเข้าถึง VM ทำงานอย่างถูกต้องหรือไม่
วางแต่ละโฮสต์และกลุ่มโฮสต์ในไฟล์ของตัวเอง ไฟล์นั้นควรมีข้อกำหนดของโฮสต์หรือกลุ่มโฮสต์ก่อนตามด้วยคำจำกัดความของบริการที่ใช้กับมัน
หากคุณใช้cfg_dir
คำสั่งในnagios.cfg
ไฟล์ของคุณNagios จะค้นหาซ้ำผ่านไดเรกทอรีนั้น ใช้ประโยชน์จากสิ่งนั้น สำหรับการตั้งค่าของcfg_dir=/etc/nagios/conf.d
คุณสามารถมีต้นไม้ไดเรกทอรีดังต่อไปนี้:
- /etc/nagios/conf.d/
- commands.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
ฉันมักจะสร้างไดเรกทอรีสำหรับทรัพยากรแต่ละประเภท (คำสั่งกลุ่มผู้ติดต่อผู้ติดต่อกลุ่มโฮสต์โฮสต์กลุ่มบริการ timeperiods) ยกเว้นบริการที่ได้รับการจัดกลุ่มกับโฮสต์หรือกลุ่มโฮสต์ที่ใช้พวกเขา
โครงสร้างที่แม่นยำสามารถเปลี่ยนแปลงได้ตามความต้องการขององค์กรของคุณ ที่งานที่ผ่านมาฉันใช้ไดเรกทอรีย่อยภายใต้hosts.d
สำหรับแต่ละไซต์ที่แตกต่างกัน ที่งานปัจจุบันของฉันคำจำกัดความโฮสต์ Nagios ส่วนใหญ่ได้รับการจัดการโดย Puppet ดังนั้นจึงมีไดเรกทอรีหนึ่งรายการสำหรับโฮสต์ที่จัดการโดย Puppet และอีกไดเรกทอรีหนึ่งสำหรับโฮสต์ที่จัดการด้วยมือ
โปรดทราบว่าคำสั่งด้านบนยังแบ่งคำสั่งออกเป็นหลายไฟล์โดยทั่วไปคือโปรโตคอล ดังนั้นnrpe.cfg
ไฟล์จะมีคำสั่งcheck_nrpe
และcheck_nrpe_1arg
ในขณะที่http.cfg
อาจมีcheck_http
, check_http_port
, check_https
, และcheck_https_port
1check_https_cert
โดยทั่วไปแล้วฉันไม่มีเทมเพลตจำนวนมากดังนั้นโดยปกติฉันจะมีhosts.d/templates.cfg
ไฟล์และservices.d/templates.cfg
ไฟล์ หากคุณใช้งานอย่างหนักพวกเขาสามารถเข้าไปในไฟล์ที่มีชื่อเหมาะสมในtemplates.d
ไดเรกทอรี
1ฉันชอบที่จะมีcheck_http_blindly
คำสั่งซึ่งโดยพื้นฐานแล้วcheck_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; มันจะส่งคืนตกลงแม้ว่าจะได้รับรหัสตอบกลับ 403