MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एसएनएमपी के साथ क्लस्टर कंट्रोल को एकीकृत करना:भाग दो

यह ब्लॉग पोस्ट पिछले भाग 1 की निरंतरता है, जहां हमने ClusterControl के साथ SNMP एकीकरण की मूल बातें शामिल की हैं।

इस ब्लॉग पोस्ट में, हम SNMP ट्रैप और अलर्टिंग पर ध्यान केंद्रित करने जा रहे हैं। एसएनएमपी ट्रैप रिमोट एसएनएमपी-सक्षम डिवाइस (एक एजेंट) से केंद्रीय कलेक्टर, "एसएनएमपी मैनेजर" को भेजे जाने वाले सबसे अधिक इस्तेमाल किए जाने वाले अलर्ट संदेश हैं। क्लस्टर कंट्रोल के मामले में, क्लस्टर के लिए महत्वपूर्ण अलार्म 0 नहीं होने के बाद एक ट्रैप अलर्ट हो सकता है, यह दर्शाता है कि कुछ बुरा हो रहा है।

जैसा कि पिछले ब्लॉग पोस्ट में दिखाया गया है, इस अवधारणा के सबूत के उद्देश्य के लिए, हमारे पास दो SNMP ट्रैप नोटिफिकेशन परिभाषाएं हैं:

criticalAlarmNotification NOTIFICATION-TYPE
    OBJECTS { totalCritical, clusterId }
    STATUS current
    DESCRIPTION
        "Notification if critical alarm is not 0"
    ::= { alarmNotification 1 }

criticalAlarmNotificationEnded NOTIFICATION-TYPE
    OBJECTS { totalCritical, clusterId }
    STATUS  current
    DESCRIPTION
        "Notification ended - Critical alarm is 0"
    ::= { alarmNotification 2 }

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

ध्यान दें कि इस ब्लॉग पोस्ट को इस ब्लॉग श्रृंखला के पहले भाग में दिखाए गए अनुसार सही ढंग से कॉन्फ़िगर किए गए कई एमआईबी और एसएनएमपी एजेंट की आवश्यकता है।

नागियोस कोर इंस्टाल करना

Nagios Core, Nagios मॉनिटरिंग सूट का निःशुल्क संस्करण है। सबसे पहले और सबसे महत्वपूर्ण, हमें इसे और सभी आवश्यक पैकेजों को स्थापित करना होगा, इसके बाद नागियोस प्लगइन्स, स्नैपट्रैप और स्नैम्प्ट। ध्यान दें कि इस ब्लॉग पोस्ट में दिए गए निर्देश मान रहे हैं कि सभी नोड CentOS 7 पर चल रहे हैं।

नागियोस चलाने के लिए आवश्यक पैकेज स्थापित करें:

$ yum -y install httpd php gcc glibc glibc-common wget perl gd gd-devel unzip zip sendmail net-snmp-utils net-snmp-perl

बाहरी कमांड को वेब इंटरफेस के माध्यम से निष्पादित करने की अनुमति देने के लिए एक nagios उपयोगकर्ता और nagcmd समूह बनाएं, nagios और apache उपयोगकर्ता को nagcmd समूह का हिस्सा बनने के लिए जोड़ें:

$ useradd nagios
$ groupadd nagcmd
$ usermod -a -G nagcmd nagios
$ usermod -a -G nagcmd apache

नागियोस कोर का नवीनतम संस्करण यहां से डाउनलोड करें, संकलित करें और इसे स्थापित करें:

$ cd ~
$ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
$ tar -zxvf nagios-4.4.6.tar.gz
$ cd nagios-4.4.6
$ ./configure --with-nagios-group=nagios --with-command-group=nagcmd
$ make all
$ make install
$ make install-init
$ make install-config
$ make install-commandmode

नागियोस वेब कॉन्फ़िगरेशन स्थापित करें:

$ make install-webconf

वैकल्पिक रूप से, Nagios एक्सफोलिएशन थीम इंस्टॉल करें (या आप डिफ़ॉल्ट थीम से चिपके रह सकते हैं):

$ make install-exfoliation

नागियोस वेब इंटरफेस में लॉग इन करने के लिए एक उपयोगकर्ता खाता (nagiosadmin) बनाएं। वह पासवर्ड याद रखें जो आप इस उपयोगकर्ता को असाइन करते हैं:

$ htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

नई सेटिंग्स को प्रभावी बनाने के लिए अपाचे वेबसर्वर को पुनरारंभ करें:

$ systemctl restart httpd
$ systemctl enable httpd

नागियोस प्लगइन्स यहां से डाउनलोड करें, इसे संकलित करें और इंस्टॉल करें:

$ cd ~ 
$ wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
$ tar -zxvf nagios-plugins-2.3.3.tar.gz
$ cd nagios-plugins-2.3.3
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios
$ make
$ make install

डिफ़ॉल्ट Nagios कॉन्फ़िगरेशन फ़ाइलें सत्यापित करें:

$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL
Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 8 services.
Checked 1 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 1 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors:   0
Things look okay - No serious problems were detected during the pre-flight check
If everything looks okay, start Nagios and configure it to start on boot:
$ systemctl start nagios
$ systemctl enable nagios

ब्राउज़र खोलें और http://{IPaddress}/nagios पर जाएं और आपको एक HTTP मूल प्रमाणीकरण पॉप अप दिखाई देगा जहां आपको पहले बनाए गए अपने चुने हुए पासवर्ड के साथ उपयोगकर्ता नाम को nagiosadmin के रूप में निर्दिष्ट करने की आवश्यकता है।

ClusterControl सर्वर को Nagios में जोड़ना

ClusterControl के लिए एक Nagios होस्ट परिभाषा फ़ाइल बनाएँ:

$ vim /usr/local/nagios/etc/objects/clustercontrol.cfg

और निम्नलिखित पंक्तियाँ जोड़ें:

define host {
        use                     linux-server
        host_name               clustercontrol.local
        alias                   clustercontrol.mydomain.org
        address                 192.168.10.50
}

define service {
        use                     generic-service
        host_name               clustercontrol.local
        service_description     Critical alarms - ClusterID 23
        check_command           check_snmp! -H 192.168.10.50 -P 2c -C private -o .1.3.6.1.4.1.57397.1.1.1.2 -c0
}

define service {
        use                     generic-service
        host_name               clustercontrol.local
        service_description     Warning alarms - ClusterID 23
        check_command           check_snmp! -H 192.168.10.50 -P 2c -C private -o .1.3.6.1.4.1.57397.1.1.1.3 -w0
}


define service {
        use                     snmp_trap_template
        host_name               clustercontrol.local
        service_description     Critical alarm traps
        check_interval          60 ; Don't clear for 1 hour
}

कुछ स्पष्टीकरण:

  • पहले खंड में, हम अपने होस्ट को ClusterControl सर्वर के होस्टनाम और पते के साथ परिभाषित करते हैं।

  • सेवा अनुभाग जहां हम अपनी सेवा परिभाषाओं को Nagios द्वारा निगरानी के लिए रखते हैं। पहले दो मूल रूप से किसी विशेष ऑब्जेक्ट आईडी के लिए एसएनएमपी आउटपुट की जांच करने के लिए सेवा को बता रहे हैं। पहली सेवा महत्वपूर्ण अलार्म के बारे में है, इसलिए हम यह इंगित करने के लिए check_snmp कमांड में -c0 जोड़ते हैं कि यह Nagios में एक महत्वपूर्ण अलर्ट होना चाहिए यदि मान 0 से अधिक हो जाता है। चेतावनी अलार्म के लिए, हम इसे चेतावनी के साथ इंगित करेंगे यदि मान 1 और अधिक है।

  • अंतिम सेवा परिभाषा SNMP ट्रैप के बारे में है जिसे हम क्लस्टरकंट्रोल सर्वर से आने की उम्मीद करेंगे यदि महत्वपूर्ण अलार्म उठा हुआ 0 से अधिक है। यह खंड snmp_trap_template परिभाषा का उपयोग करेगा, जैसा कि अगले चरण में दिखाया गया है।

निम्न पंक्तियों को /usr/local/nagios/etc/objects/templates.cfg में जोड़कर snmp_trap_template को कॉन्फ़िगर करें:

define service {
        name                            snmp_trap_template
        service_description             SNMP Trap Template
        active_checks_enabled           1       ; Active service checks are enabled
        passive_checks_enabled          1       ; Passive service checks are enabled/accepted
        parallelize_check               1       ; Active service checks should be parallelized
        process_perf_data               0
        obsess_over_service             0       ; We should obsess over this service (if necessary)
        check_freshness                 0       ; Default is to NOT check service 'freshness'
        notifications_enabled           1       ; Service notifications are enabled
        event_handler_enabled           1       ; Service event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
        check_command                   check-host-alive      ; This will be used to reset the service to "OK"
        is_volatile                     1
        check_period                    24x7
        max_check_attempts              1
        normal_check_interval           1
        retry_check_interval            1
        notification_interval           60
        notification_period             24x7
        notification_options            w,u,c,r
        contact_groups                  admins       ; Modify this to match your Nagios contactgroup definitions
        register                        0
}

निम्न पंक्ति को अंदर जोड़कर, Nagios में ClusterControl कॉन्फ़िगरेशन फ़ाइल शामिल करें  

/usr/local/nagios/etc/nagios.cfg:
cfg_file=/usr/local/nagios/etc/objects/clustercontrol.cfg

प्री-फ़्लाइट कॉन्फ़िगरेशन जाँच चलाएँ:

$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

सुनिश्चित करें कि आपको आउटपुट के अंत में निम्न पंक्ति मिलती है:

"Things look okay - No serious problems were detected during the pre-flight check"

परिवर्तन लोड करने के लिए Nagios को पुनरारंभ करें:

$ systemctl restart nagios

अब अगर हम सर्विस सेक्शन (बाईं ओर मेनू) के तहत नागियोस पेज को देखें, तो हमें कुछ ऐसा दिखाई देगा:

ध्यान दें कि "क्रिटिकल अलार्म - ClusterID 1" पंक्ति लाल हो जाती है यदि ClusterControl द्वारा रिपोर्ट किया गया महत्वपूर्ण अलार्म मान 0 से बड़ा है, जबकि "चेतावनी अलार्म - ClusterID 1" पीला है, यह दर्शाता है कि एक चेतावनी अलार्म उठाया गया है। अगर कुछ भी दिलचस्प नहीं होता है, तो आप देखेंगे कि क्लस्टरकंट्रोल.लोकल के लिए सब कुछ हरा है।

ट्रैप प्राप्त करने के लिए Nagios को कॉन्फ़िगर करना

ट्रैप रिमोट डिवाइस द्वारा नागियोस सर्वर को भेजे जाते हैं, इसे पैसिव चेक कहा जाता है। आदर्श रूप से, हम नहीं जानते कि एक ट्रैप कब भेजा जाएगा क्योंकि यह भेजने वाले उपकरण पर निर्भर करता है कि यह एक ट्रैप भेजेगा। उदाहरण के लिए यूपीएस (बैटरी बैकअप) के साथ, जैसे ही डिवाइस बिजली खो देता है, यह कहने के लिए एक जाल भेज देगा "अरे, मैंने बिजली खो दी"। इस तरह Nagios को तुरंत सूचित किया जाता है।

एसएनएमपी ट्रैप प्राप्त करने के लिए, हमें निम्नलिखित चीजों के साथ नागियोस सर्वर को कॉन्फ़िगर करने की आवश्यकता है:

  • snmptrapd (SNMP ट्रैप रिसीवर डेमॉन)

  • snmpt (SNMP ट्रैप ट्रांसलेटर, ट्रैप हैंडलर डेमॉन)

स्नैम्पट्रैप को एक ट्रैप मिलने के बाद, यह इसे snmpt को भेज देगा, जहां हम इसे Nagios सिस्टम को अपडेट करने के लिए कॉन्फ़िगर करेंगे और फिर Nagios संपर्क समूह कॉन्फ़िगरेशन के अनुसार अलर्ट भेजेगा।

आवश्यक पैकेजों के बाद EPEL रिपॉजिटरी स्थापित करें:

$ yum -y install epel-release
$ yum -y install net-snmp snmptt net-snmp-perl perl-Sys-Syslog

SNMP ट्रैप डेमॉन को /etc/snmp/snmptrapd.conf पर कॉन्फ़िगर करें और निम्न पंक्तियाँ सेट करें:

disableAuthorization yes
traphandle default /usr/sbin/snmptthandler

उपरोक्त का सीधा सा मतलब है कि स्नम्पट्रैप डेमॉन द्वारा प्राप्त ट्रैप /usr/sbin/snmpthandler को सौंप दिए जाएंगे।

SEVERALNINES-CLUSTERCONTROL-MIB.txt को /usr/share/snmp/mibs में /usr/share/snmp/mibs/SEVERALNINES-CLUSTERCONTROL-MIB.txt बनाकर जोड़ें:

$ ll /usr/share/snmp/mibs/SEVERALNINES-CLUSTERCONTROL-MIB.txt
-rw-r--r-- 1 root root 4029 May 30 20:08 /usr/share/snmp/mibs/SEVERALNINES-CLUSTERCONTROL-MIB.txt

/etc/snmp/snmp.conf बनाएं ("d" के बिना नोटिस) और वहां अपना कस्टम MIB जोड़ें:

mibs +SEVERALNINES-CLUSTERCONTROL-MIB

स्नैम्पट्रैप सेवा प्रारंभ करें:

$ systemctl start snmptrapd
$ systemctl enable snmptrapd

इसके बाद, हमें निम्नलिखित विन्यास लाइनों को /etc/snmp/snmpt.ini:

के अंदर कॉन्फ़िगर करने की आवश्यकता है
net_snmp_perl_enable = 1
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
/etc/snmp/snmptt-cc.conf
END

ध्यान दें कि हमने net_snmp_perl मॉड्यूल को सक्षम किया है और snmpt.ini के अंदर एक और कॉन्फ़िगरेशन पथ, /etc/snmp/snmpt-cc.conf जोड़ा है। हमें यहां ClusterControl snmpt ईवेंट को परिभाषित करने की आवश्यकता है ताकि उन्हें Nagios में पास किया जा सके। /etc/snmp/snmpt-cc.conf पर एक नई फ़ाइल बनाएँ और निम्नलिखित पंक्तियाँ जोड़ें:

MIB: SEVERALNINES-CLUSTERCONTROL-MIB (file:/usr/share/snmp/mibs/SEVERALNINES-CLUSTERCONTROL-MIB.txt) converted on Sun May 30 19:17:33 2021 using snmpttconvertmib v1.4.2

EVENT criticalAlarmNotification .1.3.6.1.4.1.57397.1.1.3.1 "Status Events" Critical
FORMAT Notification if the critical alarm is not 0
EXEC /usr/local/nagios/share/eventhandlers/submit_check_result $aA "Critical alarm traps" 2 "Critical - Critical alarm is $1 for cluster ID $2"
SDESC
Notification if critical alarm is not 0
Variables:
  1: totalCritical
  2: clusterId
EDESC

EVENT criticalAlarmNotificationEnded .1.3.6.1.4.1.57397.1.1.3.2 "Status Events" Normal
FORMAT Notification if the critical alarm is not 0
EXEC /usr/local/nagios/share/eventhandlers/submit_check_result $aA "Critical alarm traps" 0 "Normal - Critical alarm is $1 for cluster ID $2"
SDESC
Notification ended - critical alarm is 0
Variables:
  1: totalCritical
  2: clusterId
EDESC

कुछ स्पष्टीकरण:

  • हमारे पास दो ट्रैप परिभाषित हैं - क्रिटिकल अलार्म नोटिफिकेशन और क्रिटिकलअलार्म नोटिफिकेशन समाप्त।

  • क्रिटिकल अलार्म नोटिफिकेशन केवल एक महत्वपूर्ण चेतावनी देता है और इसे Nagios में परिभाषित "क्रिटिकल अलार्म ट्रैप" सेवा को भेजता है। $aA का अर्थ है ट्रैप एजेंट का IP पता वापस करना। मान 2 चेक परिणाम मान है जो इस मामले में महत्वपूर्ण है (0=ठीक, 1=चेतावनी, 2=क्रिटिकल, 3=अज्ञात)।

  • क्रिटिकल अलार्म नोटिफिकेशन एंडेड बस एक ओके अलर्ट उठाता है और इसे "क्रिटिकल अलार्म ट्रैप" सेवा में भेजता है, ताकि इसे रद्द किया जा सके। सब कुछ सामान्य होने के बाद पिछला जाल। $aA का अर्थ है ट्रैप एजेंट का IP पता वापस करना। मान 0  चेक परिणाम मान है जो इस मामले में ठीक है। snmpt द्वारा मान्यता प्राप्त स्ट्रिंग प्रतिस्थापन के बारे में अधिक जानकारी के लिए, इस लेख को "FORMAT" अनुभाग के अंतर्गत देखें।

  • आप किसी विशेष MIB के लिए snmptt ईवेंट हैंडलर फ़ाइल जेनरेट करने के लिए snmptconvertmib का उपयोग कर सकते हैं।

ध्यान दें कि डिफ़ॉल्ट रूप से, इवेंटहैंडलर पथ नागियोस कोर द्वारा प्रदान नहीं किया जाता है। इसलिए, हमें उस इवेंटहैंडलर डायरेक्टरी को कॉन्ट्रिब डायरेक्टरी के तहत नागियोस स्रोत से कॉपी करना होगा, जैसा कि नीचे दिखाया गया है:

$ cp -Rf nagios-4.4.6/contrib/eventhandlers /usr/local/nagios/share/
$ chown -Rf nagios:nagios /usr/local/nagios/share/eventhandlers

हमें snmpt समूह को nagcmd समूह के हिस्से के रूप में असाइन करने की भी आवश्यकता है, ताकि यह सबमिट_चेक_रिज़ल्ट स्क्रिप्ट के अंदर nagios.cmd निष्पादित कर सके:

$ usermod -a -G nagcmd snmptt

snmpt सेवा प्रारंभ करें:

$ systemctl start snmptt
$ systemctl enable snmptt

SNMP प्रबंधक (Nagios सर्वर) अब हमारे आने वाले SNMP ट्रैप को स्वीकार और संसाधित करने के लिए तैयार है।

ClusterControl सर्वर से ट्रैप भेजना

मान लीजिए कि कोई एसएनएमपी प्रबंधक को एसएनएमपी ट्रैप भेजना चाहता है, 192.168.10.11 (नागियोस सर्वर) क्योंकि क्लस्टर आईडी 1 के लिए महत्वपूर्ण अलार्मों की कुल संख्या 2 तक पहुंच गई है, कोई निम्नलिखित कमांड चलाएगा ClusterControl सर्वर (क्लाइंट-साइड), 192.168.10.50:

$ snmptrap -v2c -c private 192.168.10.11 '' SEVERALNINES-CLUSTERCONTROL-MIB::criticalAlarmNotification \
SEVERALNINES-CLUSTERCONTROL-MIB::totalCritical i 2 \
SEVERALNINES-CLUSTERCONTROL-MIB::clusterId i 1

या, ओआईडी प्रारूप में (अनुशंसित):

$ snmptrap -v2c -c private 192.168.10.11 '' .1.3.6.1.4.1.57397.1.1.3.1 \
.1.3.6.1.4.1.57397.1.1.1.2 i 2 \
.1.3.6.1.4.1.57397.1.1.1.4 i 1

जहां, .1.3.1.6.1.4.1.57397.1.1.3.1 क्रिटिकल अलार्म नोटिफिकेशन ट्रैप इवेंट के बराबर है, और बाद के ओआईडी क्रमशः वर्तमान क्रिटिकल अलार्म और क्लस्टर आईडी की कुल संख्या का प्रतिनिधित्व करते हैं। ।

नागियोस सर्वर पर, आपको ध्यान देना चाहिए कि ट्रैप सेवा लाल हो गई है:

आप इसे निम्न पंक्ति के /var/log/messages में भी देख सकते हैं:

May 30 23:52:39 ip-10-15-2-148 snmptrapd[27080]: 2021-05-30 23:52:39 UDP: [192.168.10.50]:33151->[192.168.10.11]:162 [UDP: [192.168.10.50]:33151->[192.168.10.11]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2423020) 6:43:50.20#011SNMPv2-MIB::snmpTrapOID.0 = OID: SEVERALNINES-CLUSTERCONTROL-MIB::criticalAlarmNotification#011SEVERALNINES-CLUSTERCONTROL-MIB::totalCritical = INTEGER: 2#011SEVERALNINES-CLUSTERCONTROL-MIB::clusterId = INTEGER: 1
May 30 23:52:42 nagios.local snmptt[29557]: .1.3.6.1.4.1.57397.1.1.3.1 Critical "Status Events" UDP192.168.10.5033151-192.168.10.11162 - Notification if critical alarm is not 0
May 30 23:52:42 nagios.local nagios: EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;192.168.10.50;Critical alarm traps;2;Critical - Critical alarm is 2 for cluster ID 1
May 30 23:52:42 nagios.local nagios: PASSIVE SERVICE CHECK: clustercontrol.local;Critical alarm traps;0;PING OK - Packet loss = 0%, RTA = 22.16 ms
May 30 23:52:42 nagios.local nagios: SERVICE NOTIFICATION: nagiosadmin;clustercontrol.local;Critical alarm traps;CRITICAL;notify-service-by-email;Critical - Critical alarm is 2 for cluster ID 1
May 30 23:52:42 nagios.local nagios: SERVICE ALERT: clustercontrol.local;Critical alarm traps;CRITICAL;HARD;1;Critical - Critical alarm is 2 for cluster ID 1

एक बार अलार्म ठीक हो जाने के बाद, एक सामान्य ट्रैप भेजने के लिए, हम निम्नलिखित कमांड निष्पादित कर सकते हैं:

$ snmptrap -c private -v2c 192.168.10.11 '' .1.3.6.1.4.1.57397.1.1.3.2 \ 
.1.3.6.1.4.1.57397.1.1.1.2 i 0 \
.1.3.6.1.4.1.57397.1.1.1.4 i 1

जहां, .1.3.1.6.1.4.1.57397.1.1.3.2 महत्वपूर्ण अलार्म अधिसूचना समाप्त घटना के बराबर है, और बाद के ओआईडी वर्तमान महत्वपूर्ण अलार्म की कुल संख्या का प्रतिनिधित्व करते हैं (इस मामले के लिए 0 होना चाहिए) ) और क्लस्टर आईडी, क्रमशः।

Nagios सर्वर पर, आपको ध्यान देना चाहिए कि ट्रैप सेवा वापस हरे रंग में आ गई है:

उपरोक्त को एक साधारण बैश स्क्रिप्ट के साथ स्वचालित किया जा सकता है:

#!/bin/bash
# alarmtrapper.bash - SNMP trapper for ClusterControl alarms

CLUSTER_ID=1
SNMP_MANAGER=192.168.10.11
INTERVAL=10

send_critical_snmp_trap() {
        # send critical trap
        local val=$1
        snmptrap -v2c -c private ${SNMP_MANAGER} '' .1.3.6.1.4.1.57397.1.1.3.1 .1.3.6.1.4.1.57397.1.1.1.1 i ${val} .1.3.6.1.4.1.57397.1.1.1.4 i ${CLUSTER_ID}
}

send_zero_critical_snmp_trap() {
        # send OK trap
        snmptrap -v2c -c private ${SNMP_MANAGER} '' .1.3.6.1.4.1.57397.1.1.3.2 .1.3.6.1.4.1.57397.1.1.1.1 i 0 .1.3.6.1.4.1.57397.1.1.1.4 i ${CLUSTER_ID}
}

while true; do
        count=$(s9s alarm --list --long --cluster-id=${CLUSTER_ID} --batch | grep CRITICAL | wc -l)
        [ $count -ne 0 ] && send_critical_snmp_trap $count || send_zero_critical_snmp_trap
        sleep $INTERVAL
done

स्क्रिप्ट को बैकग्राउंड में चलाने के लिए, बस यह करें:

$ bash alarmtrapper.bash &

इस बिंदु पर, अगर हमारे क्लस्टर में स्वचालित रूप से विफलता होती है, तो हमें Nagios की "क्रिटिकल अलार्म ट्रैप" सेवा को काम करते हुए देखना चाहिए।

अंतिम विचार

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कई चर के साथ render_template

  2. नोड नेवला लूप में क्वेरी ढूंढता है जो काम नहीं कर रहा है

  3. Mongodb स्ट्रिंग से ObjectId तक _id फ़ील्ड में शामिल हों

  4. MongoDB संग्रह में एक साथ कई आइटम कैसे सम्मिलित करें?

  5. सार्वजनिक बादलों पर MongoDB प्रदर्शन की तुलना करना:AWS, Azure और DigitalOcean