Erlang 21 - 1. Introduction (OAM)

1। परिचय




erlang

1। परिचय

OTP में ऑपरेशन और रखरखाव (OAM) समर्थन में OTP में प्रबंधन सबसिस्टम के लिए एक सामान्य मॉडल होता है, और इन सबसिस्टम में उपयोग किए जाने वाले कुछ घटक होते हैं। यह खंड मॉडल का वर्णन करता है।

मॉडल में मुख्य विचार यह है कि यह किसी विशिष्ट प्रबंधन प्रोटोकॉल से बंधा नहीं है। एक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) परिभाषित किया गया है, जिसका उपयोग विशिष्ट प्रबंधन प्रोटोकॉल के लिए अनुकूलन लिखने के लिए किया जा सकता है।

OTP में प्रत्येक OAM घटक को एक उप-अनुप्रयोग के रूप में कार्यान्वित किया जाता है, जिसे सिस्टम के लिए प्रबंधन अनुप्रयोग में शामिल किया जा सकता है। ध्यान दें कि इस तरह का पूरा प्रबंधन अनुप्रयोग इस सामान्य कार्यक्षमता के दायरे में नहीं है। हालाँकि, इस खंड में उदाहरण शामिल हैं कि इस तरह के अनुप्रयोग का निर्माण कैसे किया जा सकता है।

१.१ शब्दावली

नेटवर्क स्तर पर प्रोटोकॉल-स्वतंत्र वास्तुशिल्प मॉडल प्रबंधन कार्यों के लिए प्रसिद्ध क्लाइंट-सर्वर मॉडल है। यह मॉडल क्लाइंट-सर्वर सिद्धांत पर आधारित है, जहां प्रबंधक (क्लाइंट) प्रबंधक से एक एजेंट (सर्वर) को एक अनुरोध भेजता है जब वह प्रबंधन की जानकारी एक्सेस करता है। एजेंट प्रबंधक को वापस उत्तर भेजता है। सामान्य क्लाइंट-सर्वर मॉडल के दो मुख्य अंतर हैं:

  • आमतौर पर कुछ प्रबंधक कई एजेंटों के साथ संवाद करते हैं।

  • एजेंट अनायास एक सूचना भेज सकता है, उदाहरण के लिए, एक अलार्म, प्रबंधक को।

निम्नलिखित चित्र विचार दिखाता है:

चित्र 1.1: शब्दावली

प्रबंधक को अक्सर नेटवर्क प्रबंधन प्रणाली (एनएमएस) के रूप में संदर्भित किया जाता है, इस बात पर जोर देने के लिए कि इसे आमतौर पर एक प्रोग्राम के रूप में महसूस किया जाता है जो एक ऑपरेटर को डेटा प्रस्तुत करता है।

एजेंट एक इकाई है जो एक नेटवर्क तत्व (NE) के भीतर निष्पादित होती है। ओटीपी में, एनई एक वितरित प्रणाली हो सकती है, जिसका अर्थ है कि वितरित प्रणाली को एक इकाई के रूप में प्रबंधित किया जाता है। बेशक, एजेंट को कई नोड्स में से एक पर चलने में सक्षम होने के लिए कॉन्फ़िगर किया जा सकता है, जिससे यह एक वितरित ओटीपी एप्लिकेशन बन जाता है।

प्रबंधन सूचना प्रबंधन सूचना बेस (MIB) में परिभाषित की गई है। यह एक औपचारिक परिभाषा है कि एजेंट किस जानकारी को प्रबंधक को उपलब्ध कराता है। प्रबंधक एक प्रबंधन प्रोटोकॉल, जैसे SNMP, CMIP, HTTP या CORBA के माध्यम से MIB को एक्सेस करता है। प्रत्येक प्रोटोकॉल की अपनी MIB परिभाषा भाषा होती है। एसएनएमपी में, यह ASN.1 का सबसेट है, CMIP में यह GDMO है, HTTP में यह निहित है, और CORBA का उपयोग करते हुए, यह IDL है।

आमतौर पर, MIB में परिभाषित संस्थाओं को प्रबंधित ऑब्जेक्ट (MOs) कहा जाता है, हालांकि उन्हें ऑब्जेक्ट-ओरिएंटेड तरीके से ऑब्जेक्ट नहीं होना है। उदाहरण के लिए, MIB में परिभाषित एक साधारण स्केलर चर को MO कहा जाता है। एमओ तार्किक ऑब्जेक्ट हैं, जरूरी नहीं कि संसाधनों के लिए एक-से-एक मैपिंग के साथ।

1.2 मॉडल

यह खंड ओटीपी-आधारित एनई के भीतर उपयोग के लिए सामान्य प्रोटोकॉल-स्वतंत्र मॉडल प्रस्तुत करता है। यह मॉडल सभी OAM घटकों द्वारा उपयोग किया जाता है और अनुप्रयोगों द्वारा उपयोग किया जा सकता है। मॉडल का लाभ यह है कि यह प्रबंधन प्रोटोकॉल से संसाधनों को स्पष्ट रूप से अलग करता है। सिस्टम को प्रबंधित करने के लिए प्रबंधन प्रोटोकॉल का उपयोग करने के लिए संसाधनों की आवश्यकता नहीं है। इसलिए समान संसाधनों को विभिन्न प्रोटोकॉल के साथ प्रबंधित किया जा सकता है।

इस मॉडल में शामिल इकाइयाँ एजेंट हैं, जो प्रबंधन प्रोटोकॉल और संसाधनों को समाप्त करती है, जिसे प्रबंधित किया जाना है, अर्थात वास्तविक अनुप्रयोग संस्थाएँ। संसाधनों में सामान्य रूप से उपयोग किए गए प्रबंधन प्रोटोकॉल का कोई ज्ञान नहीं होना चाहिए, और एजेंट को प्रबंधित संसाधनों का कोई ज्ञान नहीं होना चाहिए। इसका तात्पर्य यह है कि संसाधनों पर संचालन के लिए प्रबंधन कार्यों का अनुवाद करने के लिए अनुवाद तंत्र की आवश्यकता है। इस अनुवाद तंत्र को आमतौर पर इंस्ट्रूमेंटेशन कहा जाता है और जो फ़ंक्शन इसे लागू करता है उसे इंस्ट्रूमेंटेशन फ़ंक्शन कहा जाता है । इंस्ट्रूमेंटेशन फ़ंक्शन प्रबंधन प्रोटोकॉल और संसाधन के प्रत्येक संयोजन के लिए लिखे जाते हैं। उदाहरण के लिए, यदि किसी एप्लिकेशन को एसएनएमपी और एचटीटीपी द्वारा प्रबंधित किया जाना है, तो इंस्ट्रूमेंटेशन फ़ंक्शन के दो सेट परिभाषित हैं; एक जो संसाधनों के लिए एसएनएमपी अनुरोधों को मैप करता है, और एक, उदाहरण के लिए, कुछ संसाधनों के लिए एक HTML पृष्ठ उत्पन्न करता है।

जब कोई प्रबंधक एजेंट से अनुरोध करता है, तो निम्न स्थिति का चित्रण होता है:

चित्र 1.2: प्रबंधक द्वारा एक एजेंट से अनुरोध

एक इंस्ट्रूमेंटेशन फ़ंक्शन और एक संसाधन के बीच मानचित्रण आवश्यक रूप से 1-1 नहीं है। प्रत्येक संसाधन के लिए एक इंस्ट्रूमेंटेशन फ़ंक्शन लिखना और विभिन्न प्रोटोकॉल से उस फ़ंक्शन का उपयोग करना भी संभव है।

एजेंट एक अनुरोध प्राप्त करता है और इसे एक या अधिक इंस्ट्रूमेंटेशन कार्यों के लिए कहता है। ये कार्य एमओ से जुड़े शब्दार्थ को कार्यान्वित करने के लिए संसाधनों पर कार्य करते हैं।

उदाहरण के लिए, SNMP और HTTP के साथ प्रबंधित एक सिस्टम को निम्नानुसार संरचित किया जा सकता है:

चित्र 1.3: SNMP और HTTP के साथ प्रबंधित एक सिस्टम की संरचना

संसाधन प्रबंधक को सूचनाएं भी भेज सकते हैं। सूचनाओं के उदाहरण घटनाओं और अलार्म हैं। संसाधन को प्रोटोकॉल-स्वतंत्र सूचनाएँ उत्पन्न करने की आवश्यकता है। निम्न चित्र दिखाता है कि यह कैसे हासिल किया गया है:

चित्रा 1.4: अधिसूचना हैंडलिंग

मुख्य विचार यह है कि संसाधन एक समर्पित gen_event प्रक्रिया को Erlang शर्तों के रूप में सूचनाएं भेजता है। इस प्रक्रिया में, विभिन्न प्रबंधन प्रोटोकॉल के लिए हैंडलर स्थापित किए जाते हैं। जब कोई घटना इस प्रक्रिया से प्राप्त होती है, तो इसे प्रत्येक स्थापित हैंडलर को भेज दिया जाता है। प्रबंधन प्रोटोकॉल पर भेजे जाने के लिए ईवेंट को एक अधिसूचना में बदलने के लिए हैंडलर जिम्मेदार हैं। उदाहरण के लिए, एसएनएमपी के लिए एक हैंडलर प्रत्येक घटना को एसएनएमपी जाल में बदल देता है।

1.3 एसएनएमपी आधारित ओएएम

सभी OAM घटकों के लिए, SNMP अनुकूलन प्रदान किए जाते हैं। अन्य अनुकूलन भविष्य में परिभाषित किए जा सकते हैं।

OAM घटक और कुछ अन्य OTP अनुप्रयोग, SNMP MIB को परिभाषित करते हैं। ये MIBs SNMPv2 SMI सिंटैक्स में लिखे गए हैं, जैसा कि RFC 1902 में परिभाषित किया गया है। सुविधा के लिए हम SNMPv1 SMI समकक्ष भी प्रदान करते हैं। सभी MIBs को v1 / v2 के अनुकूल बनाया गया है, अर्थात v2 MIB किसी भी निर्माण का उपयोग नहीं करता है जो कि v1 में उपलब्ध नहीं है।

MIB संरचना

शीर्ष-स्तरीय OTP MIB को OTP-REG कहा जाता है और इसे SASL एप्लिकेशन में शामिल किया जाता है। अन्य सभी OTP MIB इस MIB से कुछ ऑब्जेक्ट आयात करते हैं।

प्रत्येक MIB एक अनुप्रयोग में निहित है। MIB पाठ फ़ाइलों को अनुप्रयोग निर्देशिका में mibs/<MIB>.mib अंतर्गत संग्रहीत किया जाता है। निरंतर घोषणाओं के साथ उत्पन्न .hrl फ़ाइलों include/<MIB>.hrl , और संकलित priv/mibs/<MIB>.bin को priv/mibs/<MIB>.bin तहत संग्रहीत किया जाता है। उदाहरण के लिए, OTP-MIB को एसएएसएल एप्लिकेशन में शामिल किया गया है:

sasl-1.3/mibs/OTP-MIB.mib
include/OTP-MIB.hrl
priv/mibs/OTP-MIB.bin

इस MIB को दूसरे MIB में आयात करने के लिए एक एप्लिकेशन को SNMP MIB कंपाइलर के लिए il विकल्प का उपयोग करना है:

snmp:c("MY-MIB", [{il, ["sasl/priv/mibs"]}]).

यदि एप्लिकेशन को उत्पन्न .hrl फ़ाइल को शामिल करने की आवश्यकता है, तो इसका उपयोग Erlang संकलक के लिए .hrl निर्देश का उपयोग करना है:

-module(my_mib).
-include_lib("sasl/include/OTP-MIB.hrl").

निम्न MIB को OTP सिस्टम में परिभाषित किया गया है:

  • OTP-REG (SASL में) शीर्ष-स्तरीय OTP पंजीकरण ऑब्जेक्ट हैं, जिनका उपयोग अन्य सभी MIB द्वारा किया जाता है।

  • OTP-TC (एसएएसएल में) में सामान्य टेक्स्टुअल कन्वेंशन शामिल हैं, जो किसी अन्य एमआईबी द्वारा उपयोग किया जा सकता है।

  • OTP-MIB (एसएएसएल में) एरलांग नोड्स, एरलंग मशीनों और सिस्टम में अनुप्रयोगों के इंस्ट्रूमेंटेशन के लिए ऑब्जेक्ट शामिल हैं।

  • OTP-OS-MON-MIB ( oc_mon ) सिस्टम में नोड्स के डिस्क, मेमोरी और सीपीयू उपयोग के लिए ऑब्जेक्ट हैं।

  • OTP-SNMPEA-MIB ( OTP-SNMPEA-MIB में) OTP-SNMPEA-MIB एसएनएमपी एजेंट के इंस्ट्रूमेंटेशन और कंट्रोल के लिए ऑब्जेक्ट्स होते हैं। एजेंट मानक SNMPv2-MIB (या MIB-II का v1 भाग, यदि SNMPv1 का उपयोग किया जाता है) को लागू करता है।

  • OTP-EVA-MIB ( eva ) सिस्टम में घटनाओं और अलार्म के इंस्ट्रूमेंटेशन और नियंत्रण के लिए ऑब्जेक्ट शामिल हैं।

  • OTP-LOG-MIB ( eva ) लॉग्स के इंस्ट्रूमेंटेशन और कंट्रोल और एफटीपी ट्रांसफर के लिए ऑब्जेक्ट होते हैं।

  • OTP-EVA-LOG-MIB ( eva ) सिस्टम में घटनाओं और अलार्म लॉग के इंस्ट्रूमेंटेशन और नियंत्रण के लिए ऑब्जेक्ट शामिल हैं।

  • OTP-SNMPEA-LOG-MIB ( eva ) सिस्टम में एसएनएमपी ऑडिट ट्रेल लॉग के इंस्ट्रूमेंटेशन और कंट्रोल के लिए ऑब्जेक्ट होते हैं।

अलग-अलग एप्लिकेशन MIB को एजेंट में लोड करने के लिए अलग-अलग रणनीतियों का उपयोग करते हैं। कुछ MIB कार्यान्वयन केवल कोड होते हैं, जबकि अन्य को सर्वर की आवश्यकता होती है। एक तरह से, कोड-केवल एमआईबी कार्यान्वयन द्वारा उपयोग किया जाता है, उपयोगकर्ता को एमआईबी को लोड करने के लिए otp_mib:load(Agent) जैसे एक फ़ंक्शन को कॉल करने के लिए है, और एमआईबी को उतारने के लिए otp_mib:unload(Agent) । प्रत्येक MIB को कैसे लोड किया जाए, इसके विवरण के लिए प्रत्येक एप्लिकेशन के लिए मैनुअल पेज देखें।