SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Այս հոդվածը նվիրված է SNMPv3 պրոտոկոլի միջոցով ցանցային սարքերի մոնիթորինգի առանձնահատկություններին: Մենք կքննարկենք SNMPv3-ը, կկիսվիմ իմ փորձով Zabbix-ում ամբողջական տEMPLATE-ներ ստեղծելու վերաբերյալ և ցույց կտամ, թե ինչ կարելի է ձեռք բերել լայն ցանցում բաժանված նախազգուշացման կազմակերպման ժամանակ: SNMP պրոտոկոլը հիմնականն է ցանցային սարքերի մոնիթորինգի համար, իսկ Zabbix-ը միանշանակ հարմար է շատ օբյեկտների մոնիթորինգի և մեծ մետրիկաների հավաքման համար:

Ամենապոքր խոսքեր SNMPv3-ի մասին

Սկզբից սկսենք SNMPv3 պրոտոկոլի նշանակությունից և դրա օգտագործման առանձնահատկություններից: SNMP-ի խնդիրներն են ցանցային սարքերի մոնիթորինգը և էլեմենտար կառավարման իրականացումը՝ շնորհիվ նրանց վրա պարզ հրամաններ ուղարկելու (օրինակ, ցանցային ինտերֆեյսների միացմանը կամ անջատմանը կամ սարքի վերագործարկմանը):

SNMPv3 պրոտոկոլի հիմնական տարբերությունն անցյալ տարբերություններից նրա դասական անվտանգության ֆունկցիաներն են [1-3], սակայն, մասնավորապես:

  • վավերացում (Authentication), որը սահմանում է, որ հարցումը ստացվել է վստահելի աղբյուրից;
  • Encryption (Encryption), որի միջոցով կանխարգելվում է տվյալների բացահայտումը՝ նրանց երրորդ կողմերի կողմից բռնակալելու ժամանակ;
  • ինտեգրություն (Integrity), այսինքն, երաշխիք այդ պիտակը փոխանցման ընթացքում չի եղել կեղծված:

SNMPv3-ն ենթադրում է անվտանգության մոդելի օգտագործումը, որի ընթացքում վավերացման ռազմավարությունը սահմանվում է տեղի օգտվողի և նրա հետ համայնքի վարչության համար (SNMP-ի անցյալ տարբերություններում հարցումը դիտարկվել է էլեկտրոնային հանրույթի հետ, գրական նախադասությունով «паролем», որն անցնում է բաց տեսքով (plain text)):

SNMPv3-ը կներդնի անվտանգության մակարդակների հասկացությունը՝ թույլատրելի անվտանգության մակարդակների, որոնք սահմանում են սարքի կարգավորումներն ու SNMP-գործակալի վարքագիծը մոնիթորինգի օբյեկտի: Ապահովման մոդալի համադրությունը և անվտանգության մակարդակը որոշելու, թե ինչպես է անվտանգությունը մշակվում SNMP բեռի (packet) ընթացակարգի ժամանակ [4].

Այս աղյուսակում նկարագրված են SNMPv3-ի մոդալների և անվտանգության մակարդակների համադրությունները (առաջին երեք սյուները որոշեցի թողնել օրիգինալ տեսքով):

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Մեզանում, համապատասխանաբար, SNMPv3-ը կիրառում ենք վավերացումի ռեժիմում՝ օգտագործելով Encryption:

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-server group - որոշում է SNMPv3 օգտվողների խումբ (snmpv3group), ընթերցման ռեժիմ (read) և snmpv3group խմբի թույլտվությունը դիտելու որոշակի MIB ծառի ճյուղեր (snmpv3name կոնֆիգուրացիայում որոշում է, թե որոնց MIB ծառի ճյուղերին կարող է մուտք ունենալ snmpv3group խումբը):

Երկրորդ տողը snmp-server user - որոշում է snmpv3user օգտվողին, նրա պատկանելությունը snmpv3group խմբին, ինչպես նաև md5 վավերականացման կիրառումը (md5 գաղտնաբառը՝ md5v3v3v3) և des շիֆրումը (des գաղտնաբառը՝ des56v3v3v3): Իհարկե, des-ի փոխարեն լավ կլիներ օգտագործել aes, այստեղ ես այն բերեցի պարզապես օրինակ համար: Եթե օգտվողը սահմանվում է, կարելի է ավելացնել մուտքի ցուցակ (ACL), որը կարգավորում է դիտման սարքերի IP հասցեները, որոնք իրավունք ունեն մոնիտորինգ անել այս սարքը՝ սա նույնպես լավագույն պրակտիկայի մասն է, բայց չեմ ուզում բարդացնել մեր օրինակը:

Երրորդ տողը snmp-server view որոշում է ֆունկցիոնալ անվանումը, որը սահմանում է snmpv3name MIB ծառի ճյուղերը, որպեսզի 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

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Հստակակիռ գործիք կոնկրետ OID օբյեկտների հարցումների համար՝ օգտագործելով MIB ֆայլեր – snmpget:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Ա maintenant, ամենակենցի տանելու համար SNMPv3 կամենի տվյալների տեսակ որոշելու ռեժիմ Zabbix-ին, ես կիրառում եմ թվային OID-ներ:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Ներդրում եմ հիմնական դաշտերում օգտագործողի մաքսանքներ, քանզի դրանք նույնական են ձևի բոլոր տվյալների համար: Դրանք հնարավոր է սահմանել ձևի շրջանակներում, եթե ձեր ցանցում բոլոր ցանցական սարքերի SNMPv3 պարամետրերը նույնական են, կամ ցանցի հանգույցի շրջանակներում, եթե SNMPv3 պարամետրերը տարբեր մոնիտորինգ օբյեկտների համար տարբերվում են:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Խնդրում եմ նկատի ունենալ, որ մոնիտորինգի համակարգը տրամադրում է միայն օգտվողի անունը և վավերացման ու շիֆրման գաղտնաբառերը: Օգտվողների խումբը և MIB օբյեկտների ոլորտը, որոնց մուտք ունի, սահմանվում է մոնիտորինգի օբյեկտի վրա:
Այժմ անցնենք ձևի լրացմանը:

Zabbix-ում հարցման ձևը

Նախագծել ցանկացած հարցման ձևի ժամանակ պարզ օրենք է՝ անել դրանք հնարավորինս մանրամասն:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Ես նշանակալի ուշադրություն եմ դարձնում ներդրումային գործիքներին, որպեսզի մեծ ցանցով ավելի հարմար դառնա աշխատելը: Այդ մասին մի քիչ ավելի ուշ, իսկ այժմ՝ եռանկյուններ:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Հարմարավետության համար, հրահրողների տեսողականացումում դրանց անուններին ներառված են համակարգային մակրոբները {HOST.CONN}, որպեսզի դաշտում ցուցադրվեն ոչ միայն սարքերի անունները, այլ նաև IP հասցեները: Թեև սա ավելի շատ հարմարավետության հարց է, քան անհրաժեշտության: Սարքի հասանելիությունը որոշելու համար, սովորական echo հարցման հետ միասին, ես օգտագործում եմ SNMP պրոտոկոլով узла պիտանիության ստուգում, երբ ունկնդիրը հասանելի է ICMP-ի միջոցով, բայց չի արձագանքում SNMP հարցումներին: Այսպիսի իրավիճակ կարող է առաջանալ, օրինակ, IP հասցեների կրկնության պատճառով տարբեր սարքերում, սխալ կազմաձևված firewall-ների պատճառով կամ SNMP ենթարկվող սարքերի սխալ կարգավորմամբ: Եթե ստուգանշանքի հասանելիությունը իրականացվի միայն ICMP-ի միջոցով, կրթության ընթացքում կազմված տվյալները կարող են բացակայել, ուստի դրանց գալը պետք է վերահսկվի:

Հիալենք ցանցային հանձնումների հայտնաբերմանը. ցանցային սարքերի համար սա չափազանց կարևոր մոնիտորինգի գործառույթ է: Որպեսզի ցանցային սարքում կարող են լինել հարյուրավոր հանձնումներ, անհրաժեշտ է զտել ավելորդները, որպեսզի չեն ծանրաբեռնում տեսողականացումը և բանադatabase-ն:

Ես օգտագործում եմ ստանդարտ հայտնաբերման գործառույթը 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]

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Այս հայտնաբերման ժամանակ կարելի է զտել ցանցային հանձնումները, ըստ դրանց տեսակների, օգտատիրոջ նկարագրությունների «description» և այն պորտերի վարչական կարգավիճակի: Զտումները և կանոնային արտահայտությունները իմ դեպքում թվակազմում են հետևյալ կերպ:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Հայտնաբերման ժամանակ բացակայելու են հետեւյալ հանձնումները:

  • արհեստականորեն отключенные (adminstatus<>1), շնորհիվ IFADMINSTATUS-ի;
  • որը չունի տեքստային նկարագիր, շնորհիվ IFALIAS-ի;
  • որը ունի տեքստային նկարագրի մեջ * նշանը, շնորհիվ IFALIAS-ի;
  • որոնք հանդիսանում են ծառայողական կամ տեխնիկական, շնորհիվ IFDESCR-ի (իմ դեպքում, կանոնային արտահայտություններ IFALIAS և IFDESCR-ն ստուգվում են մեկ կանոնային արտահայտությամբ alias):

SNMPv3 պրոտոկոլով տվյալների հավաքման շաբլոնը գրեթե պատրաստ է: Չենք խորանա ցանցային հանձնումների տվյալների էлементների նախատիպերին, անցնենք արդյունքներին:

Մոնիտորինգի արդյունքներ

Նախ՝ փոքր ցանցի ինվենտարիզացիան:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Եթե պատրաստենք շաբլոններ յուրաքանչյուր ցանցային սարքի շարքի համար՝ կարելի է հասնել վերլուծության համար հարմարավետ կառուցվածքի ամփոփ տվյալների ներկայիս ծրագրային ապահովման, սերիական համարների և սպասարկման անձի ծանուցման վերաբերյալ (քանի որ սակավ Uptime): Իմ շաբլոնների ցանկը ներքևում:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Այժմ՝ հիմնական մոնիտորինգի վահանակը, խստագրված կարևորության մակարդակներով հրահրողներով:

SNMPv3-ով ցանցային սարքերի մոնիտորինգը Zabbix-ում

Device models in the network can achieve a comprehensive approach to templates, allowing a tool for predicting failures and emergencies (provided there are appropriate sensors and metrics) to be organized within one monitoring system. Zabbix is well-suited for monitoring network, server, and service infrastructures, and the task of maintaining network equipment clearly demonstrates its capabilities.

Օգտագործված աղբյուրների ցանկ՝1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

Ընտանիք: habr.com

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster