Erlang 21 - 5. Running the application

5 आवेदन को चलाना




erlang

5 आवेदन को चलाना

एप्लिकेशन को चलाने वाला अध्याय बताता है कि आवेदन कैसे कॉन्फ़िगर और शुरू किया गया है। विषयों में शामिल हैं:

  • कॉन्फ़िगरेशन निर्देशिका और पैरामीटर
  • कॉन्फ़िगरेशन फ़ाइलों को संशोधित करना
  • एप्लिकेशन शुरू करना (एजेंट और / या प्रबंधक)
  • डिबगिंग एप्लिकेशन (एजेंट और / या प्रबंधक)

Definition of Agent Configuration Files Definition of Manager Configuration Files अध्याय के लिए भी देखें जिसमें एजेंट और प्रबंधक कॉन्फ़िगरेशन फ़ाइलों के बारे में अधिक विस्तृत जानकारी है।

5.1 आवेदन को कॉन्फ़िगर करना

एजेंट को चलाने के लिए सिस्टम में निम्नलिखित दो निर्देशिकाएं मौजूद होनी चाहिए:

  • कॉन्फ़िगरेशन निर्देशिका एजेंट द्वारा उपयोग की जाने वाली सभी कॉन्फ़िगरेशन फ़ाइलों को संग्रहीत करती है (अधिक जानकारी के लिए Definition of Agent Configuration Files की अध्याय Definition of Agent Configuration Files देखें)।

  • डेटाबेस निर्देशिका आंतरिक डेटाबेस फ़ाइलों को संग्रहीत करता है।

प्रबंधक को चलाने के लिए सिस्टम में निम्नलिखित निर्देशिका मौजूद होनी चाहिए:

  • कॉन्फ़िगरेशन निर्देशिका प्रबंधक द्वारा उपयोग की जाने वाली सभी कॉन्फ़िगरेशन फ़ाइलों को संग्रहीत करती है (अधिक जानकारी के लिए Definition of Manager Configuration Files की अध्याय Definition of Manager Configuration Files देखें)।

  • डेटाबेस निर्देशिका आंतरिक डेटाबेस फ़ाइलों को संग्रहीत करता है।

एजेंट और प्रबंधक इन निर्देशिकाओं के स्थित होने का पता लगाने के लिए (एप्लिकेशन) कॉन्फ़िगरेशन मापदंडों का उपयोग करता है। मापदंडों को एर्लांग सिस्टम कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया जाना चाहिए। निम्न कॉन्फ़िगरेशन पैरामीटर SNMP अनुप्रयोग के लिए परिभाषित किए गए हैं:

agent_options() = [agent_option()]
agent_option() = {restart_type,     restart_type()}     | 
                 {agent_type,       agent_type()}       |  
                 {agent_verbosity,  verbosity()}        |  
                 {versions,         versions()}         |  
                 {discovery,        agent_discovery()}  |  
                 {gb_max_vbs,       gb_max_vbs()}       |  
                 {priority,         priority()}         |  
                 {multi_threaded,   multi_threaded()}   |  
                 {db_dir,           db_dir()}           |  
                 {db_init_error,    db_init_error()}    |  
                 {local_db,         local_db()}         |  
                 {net_if,           agent_net_if()}     |  
                 {mibs,             mibs()}             |  
                 {mib_storage,      mib_storage()}      |  
                 {mib_server,       mib_server()}       |  
                 {audit_trail_log,  audit_trail_log()}  |  
                 {error_report_mod, error_report_mod()} |  
                 {note_store,       note_store()}       |  
                 {symbolic_store,   symbolic_store()}   |  
                 {target_cache,     target_cache()}     |  
                 {config,           agent_config()}
manager_options() = [manager_option()]
manager_option() = {restart_type,             restart_type()}    | 
                   {net_if,                   manager_net_if()}  |  
                   {server,                   server()}          | 
                   {note_store,               note_store()}      | 
                   {config,                   manager_config()}  |  
                   {inform_request_behaviour, manager_irb()}     | 
                   {mibs,                     manager_mibs()}    | 
                   {priority,                 priority()}        |  
                   {audit_trail_log,          audit_trail_log()} | 
                   {versions,                 versions()}        | 
                   {def_user_mod,             def_user_module()  | 
                   {def_user_data,            def_user_data()}
    

एजेंट विशिष्ट विन्यास विकल्प और प्रकार:

agent_type() = master | sub <optional>

यदि master , एक मास्टर एजेंट शुरू किया जाता है। अन्यथा, कोई एजेंट प्रारंभ नहीं किए जाते हैं।

डिफ़ॉल्ट master

agent_discovery() = [agent_discovery_opt()] <optional>

agent_discovery_opt() = {terminating, agent_terminating_discovery_opts()} | {originating, agent_originating_discovery_opts()}

एक प्रबंधक द्वारा शुरू की गई terminating विकल्प प्रभाव खोज।

इस एजेंट द्वारा शुरू की गई originating विकल्प प्रभाव खोज।

डिफॉल्ट के लिए agent_discovery_opt() में विकल्प देखें।

agent_terminating_discovery_opts() = [agent_terminating_discovery_opt()] <optional>

agent_terminating_discovery_opt() = {enable, boolean()} | {stage2, discovery | plain} | {trigger_username, string()}

यह इस एजेंट में terminating खोज को प्रभावित करने वाले विकल्प हैं (अर्थात एक प्रबंधक द्वारा शुरू किया गया)।

terminating खोज विकल्पों के लिए डिफ़ॉल्ट मान हैं:

  • सक्षम: true
  • स्टेज 2: discovery
  • ट्रिगर_सर्नाम: ""
agent_originating_discovery_opts() = [agent_originating_discovery_opt()] <optional>

agent_originating_discovery_opt() = {enable, boolean()}

ये इस एजेंट में originating होने वाली खोज को प्रभावित करने वाले विकल्प हैं।

originating खोज विकल्पों के लिए डिफ़ॉल्ट मान हैं:

  • सक्षम: true
multi_threaded() = bool() <optional>

यदि true , तो एजेंट बहु-थ्रेडेड है, जिसमें प्रत्येक के लिए एक धागा अनुरोध है।

डिफ़ॉल्ट false

db_dir() = string() <mandatory>

परिभाषित करता है कि एसएनएमपी एजेंट आंतरिक डीबी फाइलें कहां संग्रहीत की जाती हैं।

gb_max_vbs() = pos_integer() | infinity <optional>

Get-BULK प्रतिक्रिया में अनुमत अधिकतम संख्या में भिन्न प्रकार को परिभाषित करता है।

डिफ़ॉल्ट 1000

local_db() = [local_db_opt()] <optional>

local_db_opt() = {repair, agent_repair()} | {auto_save, agent_auto_save()} | {verbosity, verbosity()}

SNMP एजेंट स्थानीय डेटाबेस के लिए विशिष्ट विकल्पों को परिभाषित करता है।

डिफॉल्ट के लिए local_db_opt() में विकल्प देखें।

agent_repair() = false | true | force <optional>

Snmpa_local_db शुरू करते समय यह हमेशा एक मौजूदा डेटाबेस खोलने की कोशिश करता है। यदि false , और कुछ त्रुटियां होती हैं, तो इसके बजाय एक नया डेटाबेस बनाया जाता है। यदि true , तो एक मौजूदा फ़ाइल की मरम्मत की जाएगी। यदि force , टेबल ठीक से बंद था, तो भी मरम्मत की जाएगी।

डिफ़ॉल्ट true

agent_auto_save() = integer() | infinity <optional>

ऑटो अंतराल बचाने के लिए। जब भी समय की इस राशि तक नहीं पहुँचा जाता है, तो तालिका को डिस्क में प्रवाहित किया जाता है।

डिफ़ॉल्ट 5000

agent_net_if() = [agent_net_if_opt()] <optional>

agent_net_if_option() = {module, agent_net_if_module()} | {verbosity, verbosity()} | {options, agent_net_if_options()}

SNMP एजेंट नेटवर्क इंटरफ़ेस इकाई के लिए विशिष्ट विकल्पों को परिभाषित करता है।

डिफॉल्ट के लिए agent_net_if_opt() में विकल्प देखें।

agent_net_if_module() = atom() <optional>

मॉड्यूल जो SNMP एजेंट के लिए नेटवर्क इंटरफ़ेस भाग को संभालता है। snmpa_network_interface व्यवहार को लागू करना चाहिए।

डिफ़ॉल्ट snmpa_net_if

agent_net_if_options() = [agent_net_if_option()] <optional>

agent_net_if_option() = {bind_to, bind_to()} | {sndbuf, sndbuf()} | {recbuf, recbuf()} | {no_reuse, no_reuse()} | {req_limit, req_limit()} | {filter, agent_net_if_filter_options()}

ये विकल्प वास्तव में उपयोग किए गए मॉड्यूल के लिए विशिष्ट हैं। यहाँ दिखाए गए डिफ़ॉल्ट agent_net_if_module() लागू होते हैं।

डिफॉल्ट के लिए agent_net_if_option() में विकल्प देखें।

req_limit() = integer() | infinity <optional>

एजेंट द्वारा नियंत्रित एक साथ अनुरोधों की अधिकतम संख्या।

डिफ़ॉल्ट infinity

agent_net_if_filter_options() = [agent_net_if_filter_option()] <optional>

agent_net_if_filter_option() = {module, agent_net_if_filter_module()}

ये विकल्प वास्तव में उपयोग किए गए मॉड्यूल के लिए विशिष्ट हैं। यहां दिखाए गए डिफ़ॉल्ट agent_net_if_filter_module() लागू होते हैं।

चूक के लिए agent_net_if_filter_option() में विकल्प देखें।

agent_net_if_filter_module() = atom() <optional>

मॉड्यूल जो SNMP एजेंट के लिए नेटवर्क इंटरफ़ेस फ़िल्टर भाग को संभालता है। snmpa_network_interface_filter व्यवहार को लागू करना चाहिए।

डिफ़ॉल्ट snmpa_net_if_filter

agent_mibs() = [string()] <optional>

MIBs (पथ सहित) की एक सूची निर्दिष्ट करता है जो MIBs को शुरू में SNMP मास्टर एजेंट में लोड करता है।

ध्यान दें कि निम्नलिखित हमेशा लोड किया जाएगा:

  • संस्करण v1: STANDARD-MIB
  • संस्करण v2: SNMPv2
  • संस्करण v3: SNMPv2 , SNMP-FRAMEWORK-MIB और SNMP-MPD-MIB

डिफ़ॉल्ट []

mib_storage() = [mib_storage_opt()] <optional>

mib_storage_opt() = {module, mib_storage_module()} | {options, mib_storage_options()}

यह विकल्प निर्दिष्ट करता है कि मूल mib डेटा कैसे संग्रहीत किया जाता है। इस विकल्प का उपयोग snmp एजेंट के दो भागों द्वारा किया जाता है: mib- सर्वर और प्रतीकात्मक-स्टोर।

डिफ़ॉल्ट [{module, snmpa_mib_storage_ets}]

mib_storage_module() = snmpa_mib_data_ets | snmpa_mib_data_dets | snmpa_mib_data_mnesia | module()

SNMP एजेंट के mib भंडारण मॉड्यूल को परिभाषित करता है जैसा कि snmpa_mib_storage व्यवहार द्वारा परिभाषित किया गया है।

कई इकाइयाँ ( mib-server इसके डेटा मॉड्यूल और symbolic-store ), जो एक mib को लोड करते समय डेटा से संबंधित डेटालेब्रिटेड mibelaneous mib के संग्रहण के लिए इसका उपयोग करती है।

एजेंट के साथ कई कार्यान्वयन प्रदान किए जाते हैं: snmpa_mib_storage_ets , snmpa_mib_storage_dets और snmpa_mib_storage_mnesia

डिफ़ॉल्ट मॉड्यूल snmpa_mib_storage_ets

mib_storage_options() = list() <optional>

यह कार्यान्वित निर्भर है। यही है, यह मॉड्यूल पर निर्भर करता है। प्रत्येक मॉड्यूल के लिए विकल्पों का एक विशिष्ट सेट मान्य है। एप्लिकेशन के साथ प्रदान किए गए मॉड्यूल के लिए, ये विकल्प समर्थित हैं:

  • snmpa_mib_storage_ets : {dir, filename()} | {action, keep | clear}, {checksum, boolean()} {dir, filename()} | {action, keep | clear}, {checksum, boolean()}

    • dir - यदि मौजूद है, तो एक डायरेक्टरी की ओर इशारा करता है, जहाँ एक फाइल जिसके लिए ets टेबल का सारा डेटा "सिंक किया गया" है।

      इसके अलावा, जब एक टेबल खोली जाती है तो यह फाइल पढ़ी जाती है, अगर यह मौजूद है।

      डिफ़ॉल्ट रूप से, इसका उपयोग नहीं किया जाएगा।

    • action - गैर-रिक्त फ़ाइल मिलने पर व्यवहार निर्दिष्ट करता है: इसकी सामग्री रखें या इसे साफ़ करें।

      डिफ़ॉल्ट keep

    • checksum - परिभाषित करता है कि फाइल चेकसमेड है या नहीं।

      डिफ़ॉल्ट false

  • snmpa_mib_storage_dets : {dir, filename()} | {action, keep | clear}, {auto_save, default | pos_integer()} | {repair, force | boolean()} {dir, filename()} | {action, keep | clear}, {auto_save, default | pos_integer()} | {repair, force | boolean()}

    • dir - यह अनिवार्य विकल्प एक डायरेक्टरी की ओर इशारा करता है, जहां एक डाइट टेबल की फाइल को रखना है।

    • action - गैर-रिक्त फ़ाइल मिलने पर व्यवहार निर्दिष्ट करता है: इसकी सामग्री रखें या इसे साफ़ करें।

      डिफ़ॉल्ट keep

    • auto_save - dets ऑटो-सेव फ़्रीक्वेंसी को परिभाषित करता है।

      डिफ़ॉल्ट default

    • repair - dets मरम्मत व्यवहार को परिभाषित करता है।

      डिफ़ॉल्ट false

  • snmpa_mib_storage_mnesia : {action, keep | clear}, {nodes, [node()]} {action, keep | clear}, {nodes, [node()]}

    • action - व्यवहार को निर्दिष्ट करता है जब एक गैर-खाली, पहले से ही मौजूद, तालिका: इसकी सामग्री रखें या इसे खाली करें।

      डिफ़ॉल्ट keep

    • nodes - नोड नामों की एक सूची (या नोड्स की एक सूची का वर्णन करने वाला परमाणु) को परिभाषित करने के लिए कि तालिका कहाँ खोली जाए। यह सुनिश्चित करने के लिए उपयोगकर्ता तक कि मानेसिया वास्तव में निर्दिष्ट नोड्स पर चल रहा है।

      निम्नलिखित अलग-अलग मूल्य पहचाने जाते हैं:

      • [] - स्वयं नोड की सूची में अनुवादित: [node()]

      • all - erlang:nodes()

      • visible - erlang:nodes(visible)

      • connected - erlang:nodes(connected)

      • db_nodes - mnesia:system_info(db_nodes)

      डिफ़ॉल्ट कॉल का परिणाम है: erlang:nodes()

mib_server() = [mib_server_opt()] <optional>

mib_server_opt() = {mibentry_override, mibentry_override()} | {trapentry_override, trapentry_override()} | {verbosity, verbosity()} | {cache, mibs_cache()} | {data_module, mib_server_data_module()}

SNMP एजेंट mib सर्वर के लिए विशिष्ट विकल्पों को परिभाषित करता है।

चूक के लिए mib_server_opt() में विकल्प देखें।

mibentry_override() = bool() <optional>

यदि यह मान गलत है, तो एक mib लोड करते समय प्रत्येक mib- प्रविष्टि को mib की स्थापना से पहले जांचा जाता है। चेक का उद्देश्य यह है कि एक ही प्रतीकात्मक mibentry नाम का उपयोग विभिन्न ओआईडी के लिए किया जाए।

डिफ़ॉल्ट false

trapentry_override() = bool() <optional>

यदि यह मान गलत है, तो mib को लोड करते समय प्रत्येक जाल mib की स्थापना से पहले जांचा जाता है। चेक का उद्देश्य यह है कि एक ही प्रतीकात्मक जाल नाम का उपयोग विभिन्न जाल के लिए किया जाता है।

डिफ़ॉल्ट false

mib_server_data_module() = snmpa_mib_data_tttn | module() <optional>

snmpa_mib_data व्यवहार द्वारा परिभाषित SNMP एजेंट snmpa_mib_data सर्वर के बैकेंड डेटा मॉड्यूल को परिभाषित करता है।

वर्तमान में केवल डिफ़ॉल्ट मॉड्यूल एजेंट के साथ प्रदान किया जाता है, snmpa_mib_data_tttn

डिफ़ॉल्ट मॉड्यूल snmpa_mib_data_tttn

mibs_cache() = bool() | mibs_cache_opts() <optional>

एजेंट mib सर्वर लुकअप कैश का उपयोग करेगा या नहीं।

डिफ़ॉल्ट true (जिस स्थिति में mibs_cache_opts() डिफ़ॉल्ट मान लागू होते हैं)।

mibs_cache_opts() = [mibs_cache_opt()] <optional>

mibs_cache_opt() = {autogc, mibs_cache_autogc()} | {gclimit, mibs_cache_gclimit()} | {age, mibs_cache_age()}

SNMP एजेंट mib सर्वर कैश के लिए विशिष्ट विकल्पों को परिभाषित करता है।

चूक के लिए mibs_cache_opt() में विकल्प देखें।

mibs_cache_autogc() = bool() <optional>

परिभाषित करता है कि mib सर्वर कैश gc को स्वचालित रूप से करेगा या उपयोगकर्ता के लिए छोड़ देगा (देखें gc_mibs_cache/0,1,2,3 )।

डिफ़ॉल्ट true

mibs_cache_age() = integer() > 0 <optional>

परिभाषित करता है कि कैश में पुरानी प्रविष्टियों को GC'ed (GC प्रदर्शन किया जाता है) मानने से पहले बनने दिया जाएगा। जब भी एक्सेस किया जाता है तब कैश में प्रत्येक प्रविष्टि "टच" होती है।

आयु को मिलीसेकंड में परिभाषित किया गया है।

डिफ़ॉल्ट 10 timutes

mibs_cache_gclimit() = integer() > 0 | infinity <optional>

जीसी प्रदर्शन करते समय, यह कैश प्रविष्टियों की अधिकतम संख्या है जिसे कैश से हटा दिया जाएगा।

इस सीमा के होने का कारण यह है कि यदि कैश बड़ा है, तो जीसी संभावित रूप से लंबा समय ले सकता है, जिसके दौरान एजेंट लॉक हो जाता है।

डिफ़ॉल्ट 100

error_report_mod() = atom() <optional>

एक त्रुटि रिपोर्ट मॉड्यूल को परिभाषित करता है, जो snmpa_error_report व्यवहार को लागू करता है। टूलकिट के साथ दो मॉड्यूल प्रदान किए जाते हैं: snmpa_error_logger और snmpa_error_io

डिफ़ॉल्ट snmpa_error_logger

symbolic_store() = [symbolic_store_opt()]

symbolic_store_opt() = {verbosity, verbosity()}

SNMP एजेंट प्रतीकात्मक स्टोर के लिए विशिष्ट विकल्पों को परिभाषित करता है।

चूक के लिए symbolic_store_opt() में विकल्प symbolic_store_opt()

target_cache() = [target_cache_opt()]

target_cache_opt() = {verbosity, verbosity()}

SNMP एजेंट लक्ष्य कैश के लिए विशिष्ट विकल्पों को परिभाषित करता है।

चूक के लिए target_cache_opt() में विकल्प देखें।

agent_config() = [agent_config_opt()] <mandatory>

agent_config_opt() = {dir, agent_config_dir()} | {force_load, force_load()} | {verbosity, verbosity()}

एसएनएमपी एजेंट के लिए विशिष्ट विन्यास संबंधी विकल्पों को परिभाषित करता है।

चूक के लिए agent_config_opt() में विकल्प देखें।

agent_config_dir = dir() <mandatory>

परिभाषित करता है कि एसएनएमपी एजेंट कॉन्फ़िगरेशन फ़ाइलों को कहाँ संग्रहीत किया जाता है।

force_load() = bool() <optional>

यदि true कॉन्फ़िगरेशन फ़ाइलें स्टार्ट-अप के दौरान फिर से पढ़ी जाती हैं, और कॉन्फ़िगरेशन डेटाबेस की सामग्री को अनदेखा कर दिया जाता है। इस प्रकार, यदि true , तो कॉन्फ़िगरेशन डेटाबेस में परिवर्तन एजेंट के रिबूट पर खो जाते हैं।

डिफ़ॉल्ट false

प्रबंधक विशिष्ट कॉन्फ़िगरेशन विकल्प और प्रकार:

server() = [server_opt()] <optional>

server_opt() = {timeout, server_timeout()} | {verbosity, verbosity()}

प्रबंधक सर्वर प्रक्रिया के लिए विकल्प निर्दिष्ट करता है।

डिफ़ॉल्ट silence

server_timeout() = integer() <optional>

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

मिलि-सेकंड में समय।

डिफ़ॉल्ट 30000

manager_config() = [manager_config_opt()] <mandatory>

manager_config_opt() = {dir, manager_config_dir()} | {db_dir, manager_db_dir()} | {db_init_error, db_init_error()} | {repair, manager_repair()} | {auto_save, manager_auto_save()} | {verbosity, verbosity()}

एसएनएमपी प्रबंधक के लिए विशिष्ट विन्यास संबंधी विकल्पों को परिभाषित करता है।

चूक के लिए manager_config_opt() में विकल्प देखें।

manager_config_dir = dir() <mandatory>

परिभाषित करता है कि एसएनएमपी प्रबंधक कॉन्फ़िगरेशन फ़ाइलों को कहाँ संग्रहीत किया जाता है।

manager_db_dir = dir() <mandatory>

परिभाषित करता है कि कहाँ SNMP प्रबंधक लगातार डेटा संग्रहीत करता है।

manager_repair() = false | true | force <optional>

लगातार डेटाबेस के लिए मरम्मत विकल्प को परिभाषित करता है (यदि खोला गया तो मेज की मरम्मत कैसे और कैसे की जाती है)।

डिफ़ॉल्ट true

manager_auto_save() = integer() | infinity <optional>

ऑटो अंतराल बचाने के लिए। जब भी समय की इस राशि तक नहीं पहुँचा जाता है, तो तालिका को डिस्क में प्रवाहित किया जाता है।

डिफ़ॉल्ट 5000

manager_irb() = auto | user | {user, integer()} <optional>

यह विकल्प परिभाषित करता है कि प्रबंधक सूचित-अनुरोधों पर प्रतिक्रिया (पावती) भेजने से कैसे निपटेगा।

  • auto - प्रबंधक स्वायत्तता से संदेश भेजने के लिए प्रतिक्रिया (पावती) भेजेगा।

  • {user, integer()} - handle_inform - handle_inform फ़ंक्शन के पूर्ण होने पर handle_inform संदेशों को सूचित करने का अनुरोध करने के लिए प्रतिक्रिया (पावती) handle_inform । पूर्णांक वह समय है, मिली-सेकंड में, प्रबंधक संग्रहीत सूचना-अनुरोध की जानकारी को मान्य मान लेगा।

  • user - समान {user, integer()} , को छोड़कर, डिफ़ॉल्ट समय, 15000 मिली-सेकंड का उपयोग किया जाता है।

definition of the manager net if अधिक जानकारी के लिए snmpm_network_interface , handle_inform और definition of the manager net if देखें।

डिफ़ॉल्ट auto

manager_mibs() = [string()] <optional>

MIBs (पथ सहित) की एक सूची निर्दिष्ट करता है और परिभाषित करता है कि MIBs को शुरू में SNMP प्रबंधक में लोड किया गया है।

डिफ़ॉल्ट []

manager_net_if() = [manager_net_if_opt()] <optional>

manager_net_if_opt() = {module, manager_net_if_module()} | {verbosity, verbosity()} | {options, manager_net_if_options()}

SNMP प्रबंधक नेटवर्क इंटरफ़ेस इकाई के लिए विशिष्ट विकल्पों को परिभाषित करता है।

चूक के लिए manager_net_if_opt() में विकल्प देखें।

manager_net_if_options() = [manager_net_if_option()] <optional>

manager_net_if_option() = {bind_to, bind_to()} | {sndbuf, sndbuf()} | {recbuf, recbuf()} | {no_reuse, no_reuse()} | {filter, manager_net_if_filter_options()}

ये विकल्प वास्तव में उपयोग किए गए मॉड्यूल के लिए विशिष्ट हैं। यहां दिखाए गए लोग डिफ़ॉल्ट manager_net_if_module() लागू होते हैं।

चूक के लिए manager_net_if_option() में विकल्प देखें।

manager_net_if_module() = atom() <optional>

मॉड्यूल जो SNMP प्रबंधक के लिए नेटवर्क इंटरफ़ेस भाग को संभालता है। यह snmpm_network_interface व्यवहार को लागू करना चाहिए।

डिफ़ॉल्ट snmpm_net_if

manager_net_if_filter_options() = [manager_net_if_filter_option()] <optional>

manager_net_if_filter_option() = {module, manager_net_if_filter_module()}

ये विकल्प वास्तव में उपयोग किए गए मॉड्यूल के लिए विशिष्ट हैं। यहाँ दिखाए गए डिफ़ॉल्ट manager_net_if_filter_module() लागू होते हैं।

चूक के लिए manager_net_if_filter_option() में विकल्प देखें।

manager_net_if_filter_module() = atom() <optional>

मॉड्यूल जो SNMP प्रबंधक के लिए नेटवर्क इंटरफ़ेस फ़िल्टर भाग को संभालता है। snmpm_network_interface_filter व्यवहार को लागू करना चाहिए।

डिफ़ॉल्ट snmpm_net_if_filter

def_user_module() = atom() <optional>

डिफ़ॉल्ट उपयोगकर्ता को लागू करने वाला मॉड्यूल। handle_inform व्यवहार देखें।

डिफ़ॉल्ट snmpm_user_default

def_user_data() = term() <optional>

डिफ़ॉल्ट उपयोगकर्ता के लिए डेटा। कॉलबैक फ़ंक्शन को कॉल करते समय उपयोगकर्ता को दिया गया।

डिफ़ॉल्ट undefined

सामान्य कॉन्फ़िगरेशन प्रकार:

restart_type() = permanent | transient | temporary

अधिक जानकारी के लिए supervisor प्रलेखन देखें।

डिफ़ॉल्ट एजेंट के लिए permanent और प्रबंधक के लिए transient

db_init_error() = terminate | create | create_db_and_dir

परिभाषित करता है कि एजेंट मौजूदा डेटाबेस फ़ाइल को खोलने में असमर्थ है तो क्या करें। terminate अर्थ है कि एजेंट / प्रबंधक समाप्त हो जाएगा, इसका मतलब है कि एजेंट / प्रबंधक दोषपूर्ण फ़ाइल को हटा देगा और नए बना देगा, और create_db_and_dir अर्थ है कि एजेंट / प्रबंधक डेटाबेस फ़ाइल को किसी भी लापता माता-पिता निर्देशिका के लिए बनाएगा डेटाबेस फ़ाइल।

डिफ़ॉल्ट terminate

priority() = atom() <optional>

सभी SNMP प्रक्रियाओं के लिए एरलंग प्राथमिकता को परिभाषित करता है।

डिफ़ॉल्ट normal

versions() = [version()] <optional>

version() = v1 | v2 | v3

कौन सा SNMP संस्करण स्वीकार / उपयोग किया जाएगा।

डिफ़ॉल्ट [v1,v2,v3]

verbosity() = silence | info | log | debug | trace <optional>

एक SNMP प्रक्रिया के लिए शब्दशः। यह निर्दिष्ट करता है कि अब बहुत डिबग जानकारी मुद्रित है।

डिफ़ॉल्ट silence

bind_to() = bool() <optional>

यदि true , तो net_if IP पते से जुड़ता है। यदि false , net_if मेजबान पर किसी भी IP पते पर सुनता है जहां वह चल रहा है।

डिफ़ॉल्ट false

no_reuse() = bool() <optional>

यदि true , तो net_if यह निर्दिष्ट नहीं करता है कि IP और पोर्ट पता पुन: प्रयोज्य होना चाहिए। यदि false , तो पता पुन: प्रयोज्य पर सेट किया गया है।

डिफ़ॉल्ट false

recbuf() = integer() <optional>

बफर आकार प्राप्त करें।

डिफ़ॉल्ट मान gen_udp द्वारा परिभाषित किया gen_udp

sndbuf() = integer() <optional>

बफर आकार भेजें।

डिफ़ॉल्ट मान gen_udp द्वारा परिभाषित किया gen_udp

note_store() = [note_store_opt()] <optional>

note_store_opt() = {timeout, note_store_timeout()} | {verbosity, verbosity()}

SNMP नोट स्टोर के लिए विकल्प निर्दिष्ट करता है।

note_store_opt() में विकल्प देखें।

note_store_timeout() = integer() <optional>

नोट सफाई समय। नोट स्टोर में नोट स्टोर करते समय, प्रत्येक नोट को आजीवन दिया जाता है। हर बार जब नोट की दुकान प्रक्रिया समाप्त हो चुकी नोट को हटाने के लिए GC करती है। मिलि-सेकंड में समय।

डिफ़ॉल्ट 30000

audit_trail_log() [audit_trail_log_opt()] <optional>

audit_trail_log_opt() = {type, atl_type()} | {dir, atl_dir()} | {size, atl_size()} | {repair, atl_repair()} | {seqno, atl_seqno()}

यदि मौजूद है, तो यह विकल्प ऑडिट ट्रेल लॉगिंग के विकल्पों को निर्दिष्ट करता है। disk_log मॉड्यूल का उपयोग रैप लॉग को बनाए रखने के लिए किया जाता है। यदि मौजूद है, तो dir और size विकल्प अनिवार्य हैं।

यदि मौजूद नहीं है, तो ऑडिट ट्रेल लॉगिंग का उपयोग नहीं किया जाता है।

atl_type() = read | write | read_write <optional>

निर्दिष्ट करता है कि किस प्रकार के ऑडिट ट्रेल लॉग का उपयोग किया जाना चाहिए। एजेंट और प्रबंधक के प्रकार का प्रभाव वास्तव में भिन्न होता है।

एजेंट के लिए:

  • यदि write निर्दिष्ट किया जाता है, तो केवल सेट अनुरोध लॉग किए जाते हैं।
  • यदि read निर्दिष्ट है, तो केवल अनुरोध लॉग किए जाते हैं।
  • यदि read_write , तो सभी अनुरोध लॉग इन हैं।

प्रबंधक के लिए:

  • यदि write निर्दिष्ट है, तो केवल भेजे गए संदेश लॉग किए गए हैं।
  • यदि read निर्दिष्ट है, तो केवल प्राप्त संदेश लॉग किए गए हैं।
  • यदि read_write , दोनों आउटगोइंग और इनकमिंग संदेश लॉग होते हैं।

डिफ़ॉल्ट read_write

atl_dir = dir() <mandatory>

निर्दिष्ट करता है कि ऑडिट ट्रेल लॉग कहाँ संग्रहीत किया जाना चाहिए।

यदि audit_trail_log निर्दिष्ट करता है कि लॉगिंग होनी चाहिए, तो इस पैरामीटर को परिभाषित किया जाना चाहिए।

atl_size() = {integer(), integer()} <mandatory>

ऑडिट ट्रेल लॉग के आकार को निर्दिष्ट करता है। यह पैरामीटर disk_log को भेजा जाता है।

यदि audit_trail_log निर्दिष्ट करता है कि लॉगिंग होनी चाहिए, तो इस पैरामीटर को परिभाषित किया जाना चाहिए।

atl_repair() = true | false | truncate | snmp_repair <optional>

निर्दिष्ट करता है कि क्या और कैसे ऑडिट ट्रेल लॉग खोले जाने पर मरम्मत की जाएगी। जब तक इस पैरामीटर का मान snmp_repair नहीं है, तब तक इसे snmp_repair पर भेजा जाता है। यदि, दूसरी ओर, मूल्य snmp_repair , तो snmp अपने आप ही कुछ दोषों को संभालने का प्रयास करता है। और यहां तक ​​कि अगर यह फ़ाइल की मरम्मत नहीं कर सकता है, तो यह सीधे इसे छोटा नहीं करता है, बल्कि बाद में ऑफ-लाइन विश्लेषण के लिए इसे एक तरफ ले जाता है

डिफ़ॉल्ट true

atl_seqno() = true | false <optional>

निर्दिष्ट करता है कि ऑडिट ट्रेल लॉग प्रविष्टियाँ क्रमांकित होंगी या नहीं। अनुक्रम संख्या की सीमा RFC 5424 के अनुसार होती है, अर्थात 2147483647 के माध्यम से 1।

डिफ़ॉल्ट false

5.2 विन्यास फाइल को संशोधित करना

एप्लिकेशन (एजेंट और / या प्रबंधक) शुरू करने के लिए, कॉन्फ़िगरेशन फ़ाइलों को संशोधित किया जाना चाहिए और ऐसा करने के दो तरीके हैं। या तो फ़ाइलों को मैन्युअल रूप से संपादित करें, या निम्नानुसार कॉन्फ़िगरेशन उपकरण चलाएं।

यदि प्रमाणीकरण या एन्क्रिप्शन का उपयोग किया जाता है (केवल SNMPv3), तो crypto एप्लिकेशन शुरू करें।

1> snmp:config().

Simple SNMP configuration tool (version 4.0)
------------------------------------------------
Note: Non-trivial configurations still has to be
      done manually. IP addresses may be entered 
      as dront.ericsson.se (UNIX only) or
      123.12.13.23
------------------------------------------------

Configure an agent (y/n)? [y] 

Agent system config: 
--------------------
1. Agent process priority (low/normal/high) [normal] 
2. What SNMP version(s) should be used (1,2,3,1&2,1&2&3,2&3)? [3] 1&2&3
3. Configuration directory (absolute path)? [/ldisk/snmp] /ldisk/snmp/agent/conf
4. Config verbosity (silence/info/log/debug/trace)? [silence] 
5. Database directory (absolute path)? [/ldisk/snmp] /ldisk/snmp/agent/db
6. Mib storage type (ets/dets/mnesia)? [ets] 
7. Target cache verbosity (silence/info/log/debug/trace)? [silence] 
8. Symbolic store verbosity (silence/info/log/debug/trace)? [silence] 
9. Local DB verbosity (silence/info/log/debug/trace)? [silence] 
10. Local DB repair (true/false/force)? [true] 
11. Local DB auto save (infinity/milli seconds)? [5000] 
12. Error report module? [snmpa_error_logger] 
13. Agent type (master/sub)? [master] 
14. Master-agent verbosity (silence/info/log/debug/trace)? [silence] log
15. Shall the agent re-read the configuration files during startup 
    (and ignore the configuration database) (true/false)? [true] 
16. Multi threaded agent (true/false)? [false] true
17. Check for duplicate mib entries when installing a mib (true/false)? [false] 
18. Check for duplicate trap names when installing a mib (true/false)? [false] 
19. Mib server verbosity (silence/info/log/debug/trace)? [silence] 
20. Mib server cache (true/false)? [true]
21. Note store verbosity (silence/info/log/debug/trace)? [silence] 
22. Note store GC timeout? [30000] 
23. Shall the agent use an audit trail log (y/n)? [n] y
23b. Audit trail log type (write/read_write)? [read_write] 
23c. Where to store the audit trail log? [/ldisk/snmp] /ldisk/snmp/agent/log
23d. Max number of files? [10] 
23e. Max size (in bytes) of each file? [10240] 
23f. Audit trail log repair (true/false/truncate)? [true] 
24. Which network interface module shall be used? [snmpa_net_if] 
25. Network interface verbosity (silence/info/log/debug/trace)? [silence] log
25a. Bind the agent IP address (true/false)? [false] 
25b. Shall the agents IP address and port be not reusable (true/false)? [false] 
25c. Agent request limit (used for flow control) (infinity/pos integer)? [infinity] 32
25d. Receive buffer size of the agent (in bytes) (default/pos integer)? [default] 
25e. Send buffer size of the agent (in bytes) (default/pos integer)? [default]
25f. Do you wish to specify a network interface filter module (or use default) [default] 

Agent snmp config: 
------------------
1. System name (sysName standard variable) [bmk's agent] 
2. Engine ID (snmpEngineID standard variable) [bmk's engine] 
3. Max message size? [484] 
4. The UDP port the agent listens to. (standard 161) [4000] 
5. IP address for the agent (only used as id 
   when sending traps) [127.0.0.1] 
6. IP address for the manager (only this manager 
   will have access to the agent, traps are sent 
   to this one) [127.0.0.1] 
7. To what UDP port at the manager should traps 
   be sent (standard 162)? [5000] 
8. Do you want a none- minimum- or semi-secure configuration? 
   Note that if you chose v1 or v2, you won't get any security for these
   requests (none, minimum, semi_des, semi_aes) [minimum] 
making sure crypto server is started...
8b. Give a password of at least length 8. It is used to generate 
    private keys for the configuration:  kalle-anka
9. Current configuration files will now be overwritten. Ok (y/n)? [y] 

- - - - - - - - - - - - -
Info: 1. SecurityName "initial" has noAuthNoPriv read access
         and authenticated write access to the "restricted"
         subtree.
      2. SecurityName "all-rights" has noAuthNoPriv read/write
         access to the "internet" subtree.
      3. Standard traps are sent to the manager.
      4. Community "public" is mapped to security name "initial".
      5. Community "all-rights" is mapped to security name "all-rights".
The following agent files were written: agent.conf, community.conf,
standard.conf, target_addr.conf, target_params.conf, 
notify.conf, vacm.conf and usm.conf
- - - - - - - - - - - - -

Configure a manager (y/n)? [y] 

Manager system config: 
----------------------
1. Manager process priority (low/normal/high) [normal] 
2. What SNMP version(s) should be used (1,2,3,1&2,1&2&3,2&3)? [3] 1&2&3
3. Configuration directory (absolute path)? [/ldisk/snmp] /ldisk/snmp/manager/conf
4. Config verbosity (silence/info/log/debug/trace)? [silence] log
5. Database directory (absolute path)? [/ldisk/snmp] /ldisk/snmp/manager/db
6. Database repair (true/false/force)? [true] 
7. Database auto save (infinity/milli seconds)? [5000] 
8. Inform request behaviour (auto/user)? [auto] 
9. Server verbosity (silence/info/log/debug/trace)? [silence] log
10. Server GC timeout? [30000] 
11. Note store verbosity (silence/info/log/debug/trace)? [silence] 
12. Note store GC timeout? [30000] 
13. Which network interface module shall be used? [snmpm_net_if] 
14. Network interface verbosity (silence/info/log/debug/trace)? [silence] log
15. Bind the manager IP address (true/false)? [false] 
16. Shall the manager IP address and port be not reusable (true/false)? [false] 
17. Receive buffer size of the manager (in bytes) (default/pos integer)? [default] 
18. Send buffer size of the manager (in bytes) (default/pos integer)? [default] 
19. Shall the manager use an audit trail log (y/n)? [n] y
19b. Where to store the audit trail log? [/ldisk/snmp] /ldisk/snmp/manager/log
19c. Max number of files? [10] 
19d. Max size (in bytes) of each file? [10240] 
19e. Audit trail log repair (true/false/truncate)? [true] 
20. Do you wish to assign a default user [yes] or use
    the default settings [no] (y/n)? [n] 

Manager snmp config: 
--------------------
1. Engine ID (snmpEngineID standard variable) [bmk's engine] 
2. Max message size? [484] 
3. IP address for the manager (only used as id 
   when sending requests) [127.0.0.1] 
4. Port number (standard 162)? [5000] 
5. Configure a user of this manager (y/n)? [y] 
5b. User id? kalle
5c. User callback module? snmpm_user_default
5d. User (callback) data? [undefined] 
5. Configure a user of this manager (y/n)? [y] n
6. Configure an agent handled by this manager (y/n)? [y] 
6b. User id? kalle
6c. Target name? [bmk's agent] 
6d. Version (1/2/3)? [1] 3
6e. Community string ? [public] 
6f. Engine ID (snmpEngineID standard variable) [bmk's engine] 
6g. IP address for the agent [127.0.0.1] 
6h. The UDP port the agent listens to. (standard 161) [4000] 
6i. Retransmission timeout (infinity/pos integer)? [infinity] 
6j. Max message size? [484] 
6k. Security model (any/v1/v2c/usm)? [any] usm
6l. Security name? ["initial"] 
6m. Security level (noAuthNoPriv/authNoPriv/authPriv)? [noAuthNoPriv] authPriv
6. Configure an agent handled by this manager (y/n)? [y] n
7. Configure an usm user handled by this manager (y/n)? [y] 
7a. Engine ID [bmk's engine] 
7b. User name? hobbes
7c. Security name? [hobbes] 
7d. Authentication protocol (no/sha/md5)? [no] sha
7e  Authentication [sha] key (length 0 or 20)? [""] [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, \
    17,18,19,20]
7d. Priv protocol (no/des/aes)? [no] des
7f  Priv [des] key (length 0 or 16)? [""] 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25
7. Configure an usm user handled by this manager (y/n)? [y] n
8. Current configuration files will now be overwritten. Ok (y/n)? [y] 

- - - - - - - - - - - - -
The following manager files were written: manager.conf, agents.conf , users.conf and usm.conf
- - - - - - - - - - - - -

--------------------
Configuration directory for system file (absolute path)? [/ldisk/snmp] 
ok
    

5.3 आवेदन शुरू करना

कमांड के साथ Erlang शुरू करें:

erl -config /tmp/snmp/sys

यदि प्रमाणीकरण या एन्क्रिप्शन का उपयोग किया जाता है (केवल SNMPv3), तो crypto एप्लिकेशन शुरू करें। यदि यह चरण भूल जाता है, तो एजेंट प्रारंभ नहीं करेगा, लेकिन एक {config_error,{unsupported_crypto,_}} त्रुटि की रिपोर्ट करेगा।

1> application:start(crypto).
ok
    
2> application:start(snmp).
ok
    

5.4 एप्लिकेशन को डीबग करना

एप्लिकेशन (एजेंट और प्रबंधक दोनों) की हर (गैर-पर्यवेक्षक) प्रक्रिया को डिबग करना संभव है, संभवत: net_if मॉड्यूल (एस) के अपवाद के साथ, जिसे एप्लिकेशन के उपयोगकर्ता द्वारा आपूर्ति की जा सकती है)। यह snmpa:verbosity/2 और snmpm:verbosity/2 फंक्शन (एस) और / या configuration parameters का उपयोग करके configuration parameters । क्रिया के अपने आप में कई स्तर होते हैं : silence | info | log | debug | trace silence | info | log | debug | trace silence | info | log | debug | trace । सबसे कम वाचालता के लिए silence , कुछ भी नहीं छपा है। क्रिया जितनी अधिक होती है, उतनी ही अधिक छपती है। डिफ़ॉल्ट मान हमेशा silence होता silence

3> snmpa:verbosity(master_agent, log).
ok
5> snmpa:verbosity(net_if, log).
ok
6> 
%% Example of output from the agent when a get-next-request arrives:
** SNMP NET-IF LOG: 
   got packet from {147,12,12,12}:5000

** SNMP NET-IF MPD LOG: 
   v1, community: all-rights

** SNMP NET-IF LOG: 
   got pdu from {147,12,12,12}:5000 {pdu, 'get-next-request',
                                          62612569,noError,0,
                                          [{varbind,[1,1],'NULL','NULL',1}]}

** SNMP MASTER-AGENT LOG: 
   apply: snmp_generic,variable_func,[get,{sysDescr,persistent}]

** SNMP MASTER-AGENT LOG: 
   returned: {value,"Erlang SNMP agent"}

** SNMP NET-IF LOG: 
   reply pdu: {pdu,'get-response',62612569,noError,0,
                   [{varbind,[1,3,6,1,2,1,1,1,0],
                             'OCTET STRING',
                             "Erlang SNMP agent",1}]}

** SNMP NET-IF INFO: time in agent: 19711 mysec
    

एजेंट के डिबगिंग के लिए अन्य उपयोगी फ़ंक्शन हैं:

snmpa:info/0,1

info का उपयोग विविध एजेंट जानकारी की एक सूची प्राप्त करने के लिए किया जाता है।

snmpa:which_aliasnames/0

एजेंट के लिए ज्ञात सभी उपनाम-नामों की सूची को पुनः प्राप्त करने के लिए which_aliasnames का उपयोग किया जाता है।

snmpa:which_tables/0

एजेंट के लिए ज्ञात सभी (MIB) तालिकाओं की एक सूची को पुनः प्राप्त करने के लिए which_tables उपयोग किया जाता है।

snmpa:which_variables/0

एजेंट के लिए ज्ञात सभी (MIB) चर की एक सूची को पुनः प्राप्त करने के लिए which_variables का उपयोग किया जाता है।

snmpa:which_notifications/0

which_notifications का उपयोग एजेंट को ज्ञात सभी (MIB) नोटिफिकेशन / ट्रैप की सूची प्राप्त करने के लिए किया जाता है।

snmpa:restart_worker/0,1

restart_worker का उपयोग बहु-थ्रेडेड एजेंट की कार्यकर्ता प्रक्रिया को पुनरारंभ करने के लिए किया जाता है।

snmpa:restart_set_worker/0,1

restart_set_worker का उपयोग बहु-थ्रेडेड एजेंट की सेट-वर्कर प्रक्रिया को पुनरारंभ करने के लिए किया जाता है।

snmpa_local_db:print/0,1,2

उदाहरण के लिए, यह फ़ंक्शन काउंटरों को snmpInPkts और snmpOutPkts दिखा सकता है।

एजेंट को डिबग करने का एक और उपयोगी तरीका एजेंट द्वारा सीधे संभाला गया सभी टेबल और / या चर की सामग्री को सुंदर रूप से प्रिंट करना है। यह केवल कॉल करके किया जा सकता है:

snmpa:print_mib_info()

अधिक जानकारी के लिए print_mib_info/0 , print_mib_tables/0 या print_mib_variables/0