บทความนี้เกี่ยวข้องกับคุณสมบัติของการตรวจสอบอุปกรณ์เครือข่ายโดยใช้โปรโตคอล SNMPv3 เราจะพูดถึง SNMPv3 ฉันจะแบ่งปันประสบการณ์ของฉันในการสร้างเทมเพลตเต็มรูปแบบใน Zabbix และฉันจะแสดงสิ่งที่สามารถทำได้เมื่อจัดระเบียบการแจ้งเตือนแบบกระจายในเครือข่ายขนาดใหญ่ โปรโตคอล SNMP เป็นโปรโตคอลหลักในการตรวจสอบอุปกรณ์เครือข่ายและ Zabbix เหมาะอย่างยิ่งสำหรับการตรวจสอบอ็อบเจ็กต์จำนวนมากและสรุปเมตริกขาเข้าจำนวนมาก
คำไม่กี่คำเกี่ยวกับ SNMPv3
เริ่มจากวัตถุประสงค์ของโปรโตคอล SNMPv3 และคุณสมบัติการใช้งานกันก่อน งานของ SNMP คือการตรวจสอบอุปกรณ์เครือข่ายและการจัดการขั้นพื้นฐานโดยการส่งคำสั่งง่ายๆ ไปให้พวกเขา (เช่น การเปิดใช้งานและปิดใช้งานอินเทอร์เฟซเครือข่าย หรือการรีบูตอุปกรณ์)
ข้อแตกต่างที่สำคัญระหว่างโปรโตคอล SNMPv3 และเวอร์ชันก่อนหน้าคือฟังก์ชันความปลอดภัยแบบคลาสสิก [1-3] กล่าวคือ:
- การรับรองความถูกต้องซึ่งกำหนดว่าได้รับคำขอจากแหล่งที่เชื่อถือได้
- การเข้ารหัส (Encryption) เพื่อป้องกันการเปิดเผยข้อมูลที่ส่งเมื่อถูกดักจับโดยบุคคลที่สาม
- ความสมบูรณ์ นั่นคือการรับประกันว่าแพ็กเก็ตจะไม่ถูกดัดแปลงระหว่างการส่ง
SNMPv3 หมายถึงการใช้โมเดลความปลอดภัยซึ่งมีการตั้งค่ากลยุทธ์การตรวจสอบสิทธิ์สำหรับผู้ใช้ที่กำหนดและกลุ่มที่เขาเป็นสมาชิก (ใน SNMP เวอร์ชันก่อนหน้า คำขอจากเซิร์ฟเวอร์ไปยังออบเจ็กต์การตรวจสอบจะเปรียบเทียบเฉพาะ "ชุมชน" ซึ่งเป็นข้อความ สตริงที่มี "รหัสผ่าน" ส่งเป็นข้อความที่ชัดเจน (ข้อความธรรมดา)
SNMPv3 แนะนำแนวคิดของระดับความปลอดภัย - ระดับความปลอดภัยที่ยอมรับได้ซึ่งกำหนดการกำหนดค่าของอุปกรณ์และลักษณะการทำงานของเอเจนต์ SNMP ของอ็อบเจ็กต์การตรวจสอบ การรวมกันของโมเดลความปลอดภัยและระดับความปลอดภัยจะกำหนดกลไกความปลอดภัยที่จะใช้เมื่อประมวลผลแพ็กเก็ต SNMP [4]
ตารางอธิบายการรวมกันของรุ่นและระดับความปลอดภัย SNMPv3 (ฉันตัดสินใจทิ้งสามคอลัมน์แรกไว้เหมือนต้นฉบับ):
ดังนั้น เราจะใช้ SNMPv3 ในโหมดการรับรองความถูกต้องโดยใช้การเข้ารหัส
การกำหนดค่า SNMPv3
การมอนิเตอร์อุปกรณ์เครือข่ายจำเป็นต้องมีการกำหนดค่าโปรโตคอล SNMPv3 เหมือนกันทั้งบนเซิร์ฟเวอร์การมอนิเตอร์และอ็อบเจ็กต์ที่ถูกมอนิเตอร์
เริ่มต้นด้วยการตั้งค่าอุปกรณ์เครือข่าย Cisco การกำหนดค่าขั้นต่ำที่จำเป็นมีดังนี้ (สำหรับการกำหนดค่าที่เราใช้ CLI ฉันทำให้ชื่อและรหัสผ่านง่ายขึ้นเพื่อหลีกเลี่ยงความสับสน):
snmp-server group snmpv3group v3 priv read snmpv3name
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included
กลุ่มเซิร์ฟเวอร์ snmp บรรทัดแรก - กำหนดกลุ่มของผู้ใช้ SNMPv3 (snmpv3group), โหมดการอ่าน (อ่าน) และสิทธิ์การเข้าถึงของกลุ่ม snmpv3group เพื่อดูสาขาบางสาขาของแผนผัง MIB ของอ็อบเจ็กต์การตรวจสอบ (snmpv3name จากนั้นใน การกำหนดค่าระบุว่าสาขาใดของแผนผัง MIB ที่กลุ่มสามารถเข้าถึง snmpv3group จะสามารถเข้าถึงได้)
ผู้ใช้เซิร์ฟเวอร์ snmp บรรทัดที่สอง - กำหนดผู้ใช้ snmpv3user ความเป็นสมาชิกของเขาในกลุ่ม snmpv3group รวมถึงการใช้การตรวจสอบสิทธิ์ md5 (รหัสผ่านสำหรับ md5 คือ md5v3v3v3) และการเข้ารหัส des (รหัสผ่านสำหรับ des คือ des56v3v3v3) แน่นอนว่า ควรใช้ aes แทน des จะดีกว่า ฉันยกตัวอย่างไว้ที่นี่เท่านั้น นอกจากนี้ เมื่อกำหนดผู้ใช้ คุณสามารถเพิ่มรายการเข้าถึง (ACL) ที่ควบคุมที่อยู่ IP ของเซิร์ฟเวอร์การตรวจสอบที่มีสิทธิ์ในการตรวจสอบอุปกรณ์นี้ - นี่เป็นแนวทางปฏิบัติที่ดีที่สุดเช่นกัน แต่ฉันจะไม่ทำให้ตัวอย่างของเราซับซ้อน
มุมมองเซิร์ฟเวอร์ snmp บรรทัดที่สามกำหนดชื่อโค้ดที่ระบุสาขาของแผนผัง MIB ของ snmpv3name เพื่อให้สามารถสอบถามโดยกลุ่มผู้ใช้ snmpv3group ISO แทนที่จะกำหนดสาขาเดียวอย่างเคร่งครัด อนุญาตให้กลุ่มผู้ใช้ snmpv3group เข้าถึงอ็อบเจ็กต์ทั้งหมดในแผนผัง MIB ของอ็อบเจ็กต์การมอนิเตอร์
การตั้งค่าที่คล้ายกันสำหรับอุปกรณ์ Huawei (รวมถึงใน CLI) มีลักษณะดังนี้:
snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5
md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
des56v3v3v3
หลังจากตั้งค่าอุปกรณ์เครือข่าย คุณต้องตรวจสอบการเข้าถึงจากเซิร์ฟเวอร์การตรวจสอบผ่านโปรโตคอล SNMPv3 ฉันจะใช้ snmpwalk:
snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252
เครื่องมือที่มองเห็นได้เพิ่มเติมสำหรับการร้องขอออบเจ็กต์ OID เฉพาะโดยใช้ไฟล์ MIB คือ snmpget:
ตอนนี้เรามาดูการตั้งค่าองค์ประกอบข้อมูลทั่วไปสำหรับ SNMPv3 ภายในเทมเพลต Zabbix กัน เพื่อความเรียบง่ายและความเป็นอิสระของ MIB ฉันใช้ OID ดิจิทัล:
ฉันใช้มาโครที่กำหนดเองในช่องหลักเนื่องจากจะเหมือนกันสำหรับองค์ประกอบข้อมูลทั้งหมดในเทมเพลต คุณสามารถตั้งค่าได้ภายในเทมเพลต หากอุปกรณ์เครือข่ายทั้งหมดในเครือข่ายของคุณมีพารามิเตอร์ SNMPv3 เหมือนกัน หรือภายในโหนดเครือข่าย หากพารามิเตอร์ SNMPv3 สำหรับออบเจ็กต์การตรวจสอบที่แตกต่างกันแตกต่างกัน:
โปรดทราบว่าระบบตรวจสอบมีเพียงชื่อผู้ใช้และรหัสผ่านสำหรับการตรวจสอบและการเข้ารหัสเท่านั้น กลุ่มผู้ใช้และขอบเขตของอ็อบเจ็กต์ MIB ที่อนุญาตให้เข้าถึงได้ระบุไว้ในอ็อบเจ็กต์การมอนิเตอร์
ตอนนี้เรามาดูการกรอกเทมเพลตกันดีกว่า
เทมเพลตการสำรวจความคิดเห็นของ Zabbix
กฎง่ายๆ เมื่อสร้างเทมเพลตแบบสำรวจคือการทำให้มีรายละเอียดมากที่สุดเท่าที่จะเป็นไปได้:
ฉันใส่ใจอย่างมากกับสินค้าคงคลังเพื่อให้ง่ายต่อการทำงานกับเครือข่ายขนาดใหญ่ เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง แต่สำหรับตอนนี้ – ทริกเกอร์:
เพื่อความสะดวกในการมองเห็นทริกเกอร์ มาโครของระบบ {HOST.CONN} จะรวมอยู่ในชื่อ ดังนั้นไม่เพียงแต่ชื่ออุปกรณ์เท่านั้น แต่ยังรวมถึงที่อยู่ IP ที่แสดงบนแดชบอร์ดในส่วนการแจ้งเตือน แม้ว่านี่จะเป็นเรื่องของความสะดวกมากกว่าความจำเป็นก็ตาม . เพื่อตรวจสอบว่าอุปกรณ์ไม่พร้อมใช้งาน นอกเหนือจากคำขอ echo ปกติแล้ว ฉันใช้การตรวจสอบความไม่พร้อมใช้งานของโฮสต์โดยใช้โปรโตคอล SNMP เมื่อเข้าถึงออบเจ็กต์ผ่าน ICMP แต่ไม่ตอบสนองต่อคำขอ SNMP - สถานการณ์นี้เป็นไปได้ เช่น เมื่อมีการทำซ้ำที่อยู่ IP บนอุปกรณ์ที่แตกต่างกัน เนื่องจากไฟร์วอลล์ที่กำหนดค่าไม่ถูกต้อง หรือการตั้งค่า SNMP ไม่ถูกต้องบนออบเจ็กต์การตรวจสอบ หากคุณใช้การตรวจสอบความพร้อมใช้งานของโฮสต์ผ่าน ICMP เท่านั้น ในขณะที่ตรวจสอบเหตุการณ์บนเครือข่าย ข้อมูลการตรวจสอบอาจไม่พร้อมใช้งาน ดังนั้นจึงต้องตรวจสอบการรับข้อมูล
มาดูการตรวจจับอินเทอร์เฟซเครือข่ายกัน - สำหรับอุปกรณ์เครือข่ายนี่คือฟังก์ชันการตรวจสอบที่สำคัญที่สุด เนื่องจากอาจมีอินเทอร์เฟซหลายร้อยอินเทอร์เฟซบนอุปกรณ์เครือข่าย จึงจำเป็นต้องกรองอินเทอร์เฟซที่ไม่จำเป็นออกเพื่อไม่ให้เกะกะการแสดงภาพหรือทำให้ฐานข้อมูลเกะกะ
ฉันใช้ฟังก์ชันการค้นพบ SNMP มาตรฐาน พร้อมด้วยพารามิเตอร์ที่ค้นพบได้มากขึ้น เพื่อการกรองที่ยืดหยุ่นมากขึ้น:
discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]
ด้วยการค้นพบนี้ คุณสามารถกรองอินเทอร์เฟซเครือข่ายตามประเภท คำอธิบายที่กำหนดเอง และสถานะพอร์ตการดูแลระบบ ตัวกรองและนิพจน์ทั่วไปสำหรับการกรองในกรณีของฉันมีลักษณะดังนี้:
หากตรวจพบ อินเทอร์เฟซต่อไปนี้จะถูกแยกออก:
- ปิดการใช้งานด้วยตนเอง (สถานะผู้ดูแลระบบ<>1) ขอบคุณ IFADMINSTATUS;
- ไม่มีคำอธิบายข้อความขอบคุณ IFALIAS
- มีสัญลักษณ์ * ในคำอธิบายข้อความ ขอบคุณ IFALIAS
- ที่เป็นบริการหรือด้านเทคนิค ต้องขอบคุณ IFDESCR (ในกรณีของฉัน ในนิพจน์ทั่วไป IFALIAS และ IFDESCR จะถูกตรวจสอบโดยนามแฝงนิพจน์ทั่วไปหนึ่งรายการ)
เทมเพลตสำหรับการรวบรวมข้อมูลโดยใช้โปรโตคอล SNMPv3 ใกล้จะพร้อมแล้ว เราจะไม่ลงรายละเอียดเพิ่มเติมเกี่ยวกับต้นแบบขององค์ประกอบข้อมูลสำหรับอินเทอร์เฟซเครือข่าย มาดูผลลัพธ์กันดีกว่า
ผลการตรวจติดตาม
ขั้นแรก ให้พิจารณารายการเครือข่ายขนาดเล็ก:
หากคุณเตรียมเทมเพลตสำหรับอุปกรณ์เครือข่ายแต่ละซีรีส์ คุณสามารถจัดวางข้อมูลสรุปที่วิเคราะห์ได้ง่ายเกี่ยวกับซอฟต์แวร์ปัจจุบัน หมายเลขซีเรียล และการแจ้งเตือนว่ามีตัวล้างข้อมูลมาที่เซิร์ฟเวอร์ (เนื่องจากเวลาทำงานต่ำ) ข้อความที่ตัดตอนมาจากรายการเทมเพลตของฉันอยู่ด้านล่าง:
และตอนนี้ - แผงตรวจสอบหลักพร้อมทริกเกอร์ที่กระจายตามระดับความรุนแรง:
ด้วยแนวทางแบบบูรณาการสำหรับเทมเพลตสำหรับอุปกรณ์แต่ละรุ่นในเครือข่าย จึงเป็นไปได้ที่จะมั่นใจได้ว่าภายในกรอบของระบบการตรวจสอบเดียว จะมีการจัดระเบียบเครื่องมือสำหรับการทำนายข้อผิดพลาดและอุบัติเหตุ (หากมีเซ็นเซอร์และหน่วยวัดที่เหมาะสม) Zabbix เหมาะอย่างยิ่งสำหรับการตรวจสอบเครือข่าย เซิร์ฟเวอร์ และโครงสร้างพื้นฐานการบริการ และงานบำรุงรักษาอุปกรณ์เครือข่ายแสดงให้เห็นอย่างชัดเจนถึงความสามารถของมัน
รายการแหล่งที่มาที่ใช้:1. การกำหนดเส้นทาง Hucaby D. CCNP และการสลับสวิตช์ 300-115 คู่มือใบรับรองอย่างเป็นทางการ Cisco Press, 2014. หน้า. 325-329.
2. อาร์เอฟซี 3410.
3. อาร์เอฟซี 3415.
4. คู่มือการกำหนดค่า SNMP, Cisco IOS XE Release 3SE บทที่: SNMP เวอร์ชัน 3
ที่มา: will.com