संदर्भ की शर्तें
भौगोलिक रूप से फैलाए गए डेटा केंद्रों में एक वीआरएफ कार और ओएसपीएफ पड़ोसियों की कभी बदलती सूची के साथ नेटवर्क है। आपको उन्हें ट्रैक करने की आवश्यकता है:
- राज्य, अलार्म करें यदि पड़ोसी राज्य पूर्ण नहीं है
- मात्रा, यानी यदि पड़ोसी गायब है, तो आपको अलार्म भी करना चाहिए
एक निगरानी प्रणाली पहले से मौजूद है - ज़ैबिक्स 3.4, इसका उपयोग करना वांछनीय है, लिनक्स ओएस डेबियन 9.x
हम एक तस्वीर के साथ कोशिश करते हैं
प्रोटोकॉल व्यापक है, निगरानी प्रणाली ज्ञात है, मैं शायद पहला नहीं हूं जो इस समस्या को हल करना चाहता है, और सबसे अधिक संभावना है कि यह पहले ही हल हो चुका है।
हम "zabbix ospf" की खोज में लग जाते हैं और पहला लिंक
टेम्पलेट की ओर जाता है। खुशी क्या है - अब मैं इसे आयात कर रहा हूं, इसे मेरी ज़रूरतों के लिए कंघी कर रहा हूं और सब कुछ ठीक हो जाएगा।
हम यह जांचते हैं कि यह कैसे काम करता है - सब कुछ ठीक लग रहा है, राज्यों की निगरानी की जाती है, लेकिन जब पड़ोसी नीचे की स्थिति में जाता है, तो हमें Zabbix से एक "बहुत" जानकारीपूर्ण संदेश मिलता है
No Such Instance currently exists at this OID
और जानकारी
The item is not discovered anymore and will be deleted in 29d 23h 57m (on 2018-08-19 at 08:52)
क्या हुआ - समस्या पुरानी है और
मंचों में जानी जाती है - जब ओएसपीएफ पड़ोसी गायब हो जाता है, तो इसके साथ जुड़े सभी ओआईडी केवल नेटवर्क हार्डवेयर पर हटा दिए जाते हैं।
हां, एक समाधान है - एक नोडा ट्रिगर बनाएं, ठीक बनाएं:
{Template - SNMPv3 - OSPF Discovery:ospfNbrState[{#SNMPVALUE}].nodata(120)}=0
हम डैशबोर्ड में देखते हैं:
OSPF neighbor 192.168.192.168 missing data
मूल रूप से ... प्रयोग करने योग्य
लेकिन बॉक्स से बाहर, एलएलडी केवल डिफ़ॉल्ट वीआरएफ से पड़ोसियों का पता लगाता है। बेशक, इसे
एसएनएमपी संदर्भ का उपयोग करके हल किया जा सकता
है , लेकिन किसी तरह मैं इस तरह से नहीं जाना चाहता हूं - हमें लोहे के सभी टुकड़ों से गुजरना पड़ा, प्रत्येक ओएसपीएफ प्रक्रिया या वीआरएफ में एक संदर्भ इंजेक्ट करें, फिर हमारे टेम्पलेट में प्रत्येक संदर्भ के लिए डिस्कवरी की प्रतियां बनाएं, सामान्य तौर पर यह थोड़ा अधिक है। उपद्रव और नए OSPF प्रक्रियाओं को जोड़ते समय, आपको कई स्थानों पर कुछ बदलने की आवश्यकता होती है। आप निश्चित रूप से स्क्रिप्ट से घिरे हो सकते हैं और ज़ैबिक्स एपीआई के माध्यम से यह सब बदला जा सकता है, लेकिन मैं एक विशेष रिवाज नहीं चाहता था, लेकिन मैं केवल ज़ैबिक्स में निर्मित कार्यक्षमता का अधिकतम उपयोग करना चाहता था। एक निश्चित CISCO-CONTEXT-MAPPING-MIB का उल्लेख है, जिसमें से आप संदर्भ और OSPF / VRF के बीच के सभी पत्राचार को बाहर निकाल सकते हैं, लेकिन मैंने यह पता नहीं लगाया कि इस डिजाइन को LLD में कैसे बांधा जाए। अगर कोई जानता है कि ज़ाबिक्स को इतना ठंडा कैसे पकाने के लिए, तो टिप्पणियों का स्वागत करें, और अधिमानतः एक अलग-अलग लेख पर।
हम दूसरे हमले की कोशिश करते हैं
मंचों में और स्मृति डिब्बे के बाहर इंटरनेट के लिए खोज करने के कुछ घंटों के बाद, एक विषय SNMP TRAP के बारे में आया - यह तब है जब हम लोहे के टुकड़े से पूछताछ नहीं करते हैं, लेकिन लोहे का टुकड़ा कुछ बदलने के बारे में जानकारी भेजता है। हां, और इस सामान के लिए अभियान समर्थन
बॉक्स से बाहर हमारे निगरानी प्रणाली में है, उपकरण भी
तुरंत और बस मेरे मामले के लिए कर सकते हैं।
पहली पंक्तियों से, निगरानी दस्तावेज एक लंबी सूची द्वारा भ्रमित किया गया था:
The workflow of receiving a trap: 1. snmptrapd receives a trap 2. snmptrapd passes the trap to SNMPTT or calls Perl trap receiver 3. SNMPTT or Perl trap receiver parses, formats and writes the trap to a file 4. Zabbix SNMP trapper reads and parses the trap file 5. For each trap Zabbix finds all “SNMP trapper” items with host interfaces matching the received trap address. Note that only the selected “IP” or “DNS” in host interface is used during the matching. 6. For each found item, the trap is compared to regexp in “snmptrap[regexp]”. The trap is set as the value of all matched items. If no matching item is found and there is an “snmptrap.fallback” item, the trap is set as the value of that. 7. If the trap was not set as the value of any item, Zabbix by default logs the unmatched trap. (This is configured by “Log unmatched SNMP traps” in Administration → General → Other.)
यही है, एक डेमॉन TRAP को स्वीकार करता है, इसे दूसरे डेमॉन में भेजता है, इसे पार्स करता है, इसे वांछित प्रारूप के साथ लॉग में डालता है, और ज़ैबिक्स पहले से लॉग को पढ़ता है और आगे क्या करना है, यह तय करता है। किसी भी तरह यह पहले से ही अपने हाथों से चलना और हर जगह एक एसएनएमपी संदर्भ को आकर्षित करने की तुलना में आसान नहीं दिखता है, लेकिन ठीक है, चलो कोशिश करते हैं। हम ध्यान से मॉनिटरिंग डॉक को पढ़ते हैं और समझते हैं कि केवल इसकी मदद से कुछ भी कॉन्फ़िगर नहीं किया जा सकता है, सामान्य रूप से ज़ैबिक्स में इस तरह का एक मजाक है - प्रलेखन सिस्टम की क्षमताओं और बारीकियों का वर्णन इतनी न्यूनतम रूप से करता है कि यह सिखाया की तुलना में अधिक भ्रामक है। हालांकि उन्हें समझा जा सकता है - सॉफ्टवेयर मुफ्त है, लेकिन किसी तरह आपको पैसे कमाने की जरूरत है, लेकिन वे समर्थन पर पैसा कमाते हैं।
एक या दो बार इसे सेट करने के तरीके के विवरण के साथ इंटरनेट पर लेख हैं, लेकिन मैं एक लेख से दूसरे लेख तक सेट करने का प्रबंधन नहीं कर सकता, मुझे विभिन्न स्रोतों से बिट द्वारा जानकारी एकत्र करनी थी। यह सभी गीत हैं, वे कट्टर करने के लिए चले गए।
हम लोहे के एक नेटवर्क टुकड़े को कॉन्फ़िगर करते हैं
इससे पहले कि आप मॉनिटरिंग के साथ होस्ट पर कुछ मोड़ दें, मैं अत्यधिक अनुशंसा करता हूं कि आप पहले नेटवर्क हार्डवेयर को कॉन्फ़िगर करें और सुनिश्चित करें कि TRAP वास्तव में हार्डवेयर से सर्वर तक आता है - पहले मैंने यह नहीं जांचा कि यह बहुत सारी नसों, रक्त और समय को पी गया है। मेरे पास हाथ पर एक सिस्को नेक्सस कार है, इसलिए मैं इस श्रृंखला के लिए उदाहरण दूंगा। जिसने भी उत्प्रेरक, एएसआर, एएसए और इतने पर - माफ करना, मैं सूरज नहीं हूं, मैंने सभी को गर्मी नहीं दी है, इस पर खुद को कॉन्फ़िगर करने के तरीके पर डॉक पढ़ें, वाक्यविन्यास समान होगा, लेकिन इसकी अपनी बारीकियों के साथ।
snmp-server contact noc@example.com snmp-server location Room1 snmp-server source-interface traps loopback1
ज़ैबिक्स में टीआरएपी को कॉन्फ़िगर करते समय यह भविष्य में महत्वपूर्ण है, कि जिस पते से टीआरएपी भेजा गया है वह ज़ैबिक्स में होस्ट सेटिंग्स में इंटरफ़ेस के एसएनएमपी पते के बराबर है।
snmp-server user Zabbix network-operator auth sha string priv aes-128 string
जहाँ भी संभव हो प्रोटोकॉल के संस्करण 3 का उपयोग करें, ऑवरप्राइव मोड (एन्क्रिप्शन और ऑथेंटिकेशन) में, इसे कॉन्फ़िगर करना उतना मुश्किल नहीं है जितना लगता है। प्रोटोकॉल के संस्करण 1 और संस्करण 2 के बारे में भूल जाओ - जब एक अप्रत्याशित व्यक्ति एन्क्रिप्शन की कमी के कारण आता है और इन प्रोटोकॉल संस्करणों में अनिवार्य रूप से प्रमाणीकरण होता है - यह सिर्फ समय की बात है (समुदाय स्ट्रिंग उन्हें स्पष्ट रूप में प्रेषित किया जाता है, इसके अलावा, मैं नियमित रूप से देखता हूं कि यह सार्वजनिक / निजी कॉन्फ़िगर किया गया है)। नेटवर्क-ऑपरेटर पैरामीटर आपको उपयोगकर्ता को केवल-पढ़ने की अनुमति देता है।
snmp-server host 192.168.192.168 traps version 3 priv Zabbix snmp-server host 192.168.192.168 use-vrf default snmp-server host 192.168.192.168 source-interface loopback1 no snmp-server enable traps ospf lsa snmp-server enable traps ospf no snmp-server enable traps entity entity_mib_change no snmp-server enable traps entity entity_module_status_change no snmp-server enable traps entity entity_power_status_change no snmp-server enable traps entity entity_module_inserted no snmp-server enable traps entity entity_module_removed no snmp-server enable traps entity entity_unrecognised_module no snmp-server enable traps entity entity_fan_status_change no snmp-server enable traps entity entity_power_out_change no snmp-server enable traps link linkDown no snmp-server enable traps link linkUp no snmp-server enable traps link extended-linkDown no snmp-server enable traps link extended-linkUp no snmp-server enable traps link cieLinkDown no snmp-server enable traps link cieLinkUp no snmp-server enable traps link connUnitPortStatusChange no snmp-server enable traps bfd session-up no snmp-server enable traps link delayed-link-state-change no snmp-server enable traps bfd session-down no snmp-server enable traps rf redundancy_framework no snmp-server enable traps license notify-license-expiry no snmp-server enable traps license notify-no-license-for-feature no snmp-server enable traps license notify-licensefile-missing no snmp-server enable traps license notify-license-expiry-warning no snmp-server enable traps upgrade UpgradeOpNotifyOnCompletion no snmp-server enable traps upgrade UpgradeJobStatusNotify no snmp-server enable traps rmon risingAlarm no snmp-server enable traps rmon fallingAlarm no snmp-server enable traps rmon hcRisingAlarm no snmp-server enable traps rmon hcFallingAlarm no snmp-server enable traps entity entity_sensor no snmp-server enable traps generic coldStart no snmp-server enable traps generic warmStart
मैंने विशेष रूप से ओएसपीएफ को छोड़कर सभी टीआरएपी को अक्षम कर दिया, ताकि जब निदान किया जाए कि कुछ काम क्यों नहीं कर रहा है, तो मुझे डिबग से बहुत सारी अनावश्यक जानकारी पढ़ने की ज़रूरत नहीं थी।
अगर टीआरएपी काम करता है तो यह कैसे जांचें कि आपको कुछ तोड़ना है। हम निगरानी के साथ मेजबान पर स्निफर शुरू करते हैं:
root@dc-zbx:~# tcpdump -i bond0 udp port 162 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on bond0, link-type EN10MB (Ethernet), capture size 262144 bytes
हम लोहे के रहने वाले पड़ोसियों के टुकड़े पर पाते हैं:
SW# show ip ospf neighbors vrf all OSPF Process ID 10 VRF default Total number of neighbors: 4 Neighbor ID Pri State Up Time Address Interface 192.168.0.242 1 FULL/ - 01:47:17 172.17.0.10 Vlan1427 192.168.0.222 1 FULL/ - 18w1d 172.17.0.6 Vlan1426 192.168.1.149 1 FULL/ - 5w0d 172.17.0.30 Vlan1473 192.168.1.146 1 FULL/ - 3d00h 172.17.0.58 Vlan1404 OSPF Process ID 100 VRF OSPF100 Total number of neighbors: 4 Neighbor ID Pri State Up Time Address Interface 192.168.1.149 1 FULL/ - 5w0d 172.17.0.34 Vlan1474 192.168.0.220 1 FULL/ - 13w3d 172.17.0.54 Vlan1479 192.168.0.240 1 FULL/ - 13w3d 172.17.0.46 Vlan1477 192.168.1.146 1 FULL/ - 3d00h 172.17.0.62 Vlan1405 OSPF Process ID 200 VRF Dia Total number of neighbors: 2 Neighbor ID Pri State Up Time Address Interface 10.65.0.252 1 FULL/ - 17w2d 172.17.0.18 Vlan1450 172.17.0.26 1 FULL/ - 17w0d 172.17.0.26 Vlan1452 OSPF Process ID 216 VRF Dev Total number of neighbors: 2 Neighbor ID Pri State Up Time Address Interface 10.255.255.94 1 FULL/ - 18:59:59 10.216.0.73 Vlan1641 10.216.0.82 1 FULL/ - 18:59:54 10.216.0.82 Vlan1643
और किसी को गिरा दो
interface vlan 1643 shutdown
हम स्निफर में देखते हैं:
11:08:20.001942 IP 192.168.192.169.22095 > dc-zbx.example.com.snmp-trap: F=ap U="Zabbix" [!scoped PDU]39_d1_7c_19_b3_d9_f8_31_32_8e_c9_39_c2_3a_db_d8_28_26_c6_0b_01_55_b6_fa_5e_f5_38_66_f9_6f_3f_c0_98_cb_57_93_5a_50_8e_50_90_79_f3_9b_ec_ec_d7_9f_e8_ac_f6_fd_79_ac_95_ff_71_73_32_70_52_66_a5_7d_b3_c4_39_d0_1c_7f_a6_38_ea_d7_61_c0_2f_12_ee_db_d9_07_40_8c_a8_48_57_e9_e5_56_12_3f_ec_f9_34_65_09_96_86_f6_d2_93_06_45_fa_95_ea_36_5a_82_2f_30_8f_02_03_59_07_5f_d8_a6_1c_f2_5a_be_7d_09_15_ef_05_00_83_fd_ea_ac_2a_3b_86_0f_86_e5_3b_93_3a_68_6d_33_99_e2_46_2b_9d_6a_1e_5d_9e_d9_93_56_51_5e_ff_9e_77_4c_cb
यदि आपको स्निफर में कुछ भी दिखाई नहीं देता है, तो उसका निदान करें, क्योंकि अन्यथा आगे जारी रहने का कोई कारण नहीं है, आप बस यह समझ नहीं पाएंगे कि आपके लिए किस चरण में कुछ काम नहीं किया गया है।
यदि हाथ में लोहे का कोई टुकड़ा नहीं है या उत्पादन को छुआ नहीं जा सकता है, तो TRAP किसी अन्य कार से उत्पन्न किया जा सकता है, उदाहरण के लिए, जैसे:
snmptrap -v 1 -c neveruseme 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000" snmptrap -v3 -l authPriv -u Zabbix -a SHA -A abyrvalg -x AES -X pechka -e 0x8000000001020305 192.168.192.168 0 linkUp.0
SNMPd, SNMPTRAPd, SNMPTT को कॉन्फ़िगर करें
हमें सिस्टम में संकुल की आवश्यकता होगी:
apt install snmp snmp-mibs-downloader snmpd snmptrapd snmptt
मैंने पर्ल ट्रैप रिसीवर पर ध्यान केंद्रित नहीं किया, लेकिन व्यक्तिगत और व्यक्तिपरक कारणों से एसएनएमपीटीटी को चुना। तो, गोदी कहती है:
1. snmptrapd receives a trap
इसके कॉन्फ़िगरेशन के साथ शुरू करना आवश्यक है, और ज़ैबिक्स चेहरे में आइटम बनाने के लिए तुरंत चढ़ाई नहीं करना है। ऐसा क्यों - आपको उसी चरण पर चढ़ने की ज़रूरत है जो TRAP जाता है। पिछले अनुभाग में, हमने यह सुनिश्चित किया कि टीआरएपी मूल रूप से लोहे के टुकड़े से आता है, अब हम यह सुनिश्चित करेंगे कि इसे कम से कम पहले डेमन - स्नैपट्रैप द्वारा स्वीकार किया जाए। <गीत> मुझे याद है कि पोस्टफिक्स + डोवॉटॉट + कुछ समय पहले वहां स्थापित किया गया था। और मैंने लगभग दो सप्ताह तक चक्कर लगाया - वहाँ भी, एक दानव कनेक्शन स्वीकार करता है, अन्य पत्र को पार्स करता है, तीसरा इसे कतार में रखता है, उपयोगकर्ता को फ़ोल्डर में चौथा, और इसी तरह, और मैं सफल नहीं हुआ। और सभी क्योंकि मैं शुरुआत से, अंत से, बीच से, लेकिन मुझे टेलनेट से पोर्ट 25 तक शुरू करना था और लोमड़ी के डिबगर को देखना था </ गीत>
हम /etc/snmp/snmptrapd.conf पर चढ़ते हैं और इसे हटाते हैं, लेकिन हम हर उस चीज़ पर टिप्पणी करते हैं जिसे हम समझते नहीं हैं और रुचि नहीं रखते हैं, हम एक पंक्ति छोड़ देते हैं
disableAuthorization yes
सेवा बंद करो
systemctl stop snmptrapd.service
मैनुअल मोड में चलाएं
root@dc-zbx:~# snmptrapd -f -Lo NET-SNMP version 5.7.3 AgentX subagent connected NET-SNMP version 5.7.3
फिर, ऊपर दिए गए उदाहरण के अनुसार OSPF को तोड़ने का प्रयास करें और देखें:
2018-07-20 11:38:38 UNKNOWN [UDP: [192.168.192.169]:22095->[192.168.192.168]:162]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1355817272) 156 days, 22:09:32.72 SNMPv2-MIB::snmpTrapOID.0 = OID: OSPF-TRAP-MIB::ospfNbrStateChange OSPF-MIB::ospfRouterId = IpAddress: 10.216.0.74 OSPF-MIB::ospfNbrIpAddr = IpAddress: 10.216.0.82 OSPF-MIB::ospfNbrAddressLessIndex = INTEGER: 0 OSPF-MIB::ospfNbrRtrId = IpAddress: 10.216.0.82 OSPF-MIB::ospfNbrState = INTEGER: down(1)
यदि हम नहीं देखते हैं, तो हम इसका कारण ढूंढ रहे हैं। यदि आप एक ही सुंदर रिकॉर्ड रखना चाहते हैं, और फॉर्म का OID का कोई सेट 1.3.6.1.2.1.14.10.1.6 नहीं है, तो /etc/snmp/snmp.conf में निम्नलिखित जोड़ें:
mibs +OSPF-MIB mibs +OSPF-TRAP-MIB mibs +OSPFV3-MIB mibdirs +/usr/share/snmp/mibs/ietf/
और SNMPd को विकृत करें
systemctl restart snmpd.service
अधिक विस्तार से कम से कम दर्द के साथ एमआईबी फ़ाइलों को डाउनलोड करने और अपने एसएनएमपीडी को खिलाने के लिए [यहां] (https://wiki.debian.org/SNMP) पढ़ा जा सकता है।
अब हम प्रमाणीकरण को तेज करते हैं, हम फिर से /etc/snmp/snmptrapd.conf पर चढ़ते हैं
traphandle default snmptthandler #disableAuthorization yes # 192.168.192.169 createUser -e 0x80000009038d604a6a82a3 Zabbix SHA string AES authuser log,execute,net Zabbix
-e 0x80000009038d604a6a82a3 इंजन है, इसे नेटवर्क हार्डवेयर पर देखा जा सकता है:
SW# sh snmp engineID Local SNMP engineID: [Hex] 80000009038F604D6A82A1 [Dec] 128:040:000:109:003:140:096:079:106:131:160
हम फिर से प्रयोग दोहरा रहे हैं, लेकिन अब हम USM के बारे में एक डिबग पकड़ रहे हैं:
root@dc-zbx:~# snmptrapd -f -Lo -Dusm registered debug token usm, 1 usmUser: created a new user Zabbix at 80 00 00 09 03 8F 60 4F 6B 82 A5 NET-SNMP version 5.7.3 AgentX subagent connected NET-SNMP version 5.7.3 usm: USM processing begun... usm: match on user Zabbix usm: no match on engineID (80 00 00 09 03 8F 60 4F 6B 82 A5 ) usm: match on user Zabbix usm: Verification succeeded. usm: USM processing completed. 2018-07-20 11:50:07 UNKNOWN [UDP: [192.168.192.169]:22095->[192.168.192.168]:162]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1355886163) 156 days, 22:21:01.63 SNMPv2-MIB::snmpTrapOID.0 = OID: OSPF-TRAP-MIB::ospfNbrStateChange OSPF-MIB::ospfRouterId = IpAddress: 10.216.0.74 OSPF-MIB::ospfNbrIpAddr = IpAddress: 10.216.0.82 OSPF-MIB::ospfNbrAddressLessIndex = INTEGER: 0 OSPF-MIB::ospfNbrRtrId = IpAddress: 10.216.0.82 OSPF-MIB::ospfNbrState = INTEGER: down(1)
यदि इस स्तर पर आप डिबग में प्राधिकरण त्रुटियों को देखते हैं, तो सावधानीपूर्वक इंजनआईडी की जांच करें और हार्डवेयर पर बनाए गए उपयोगकर्ता उन लोगों से मेल खाते हैं जिन्हें हमने /etc/snmp/snmptrapd.conf कॉन्फ़िगरेशन में आकर्षित किया था। वैसे, हाँ, लोहे के प्रत्येक टुकड़े के लिए आपको अपने इंजन के साथ अपना उपयोगकर्ता बनाना होगा, या इसे अपने हाथों से लोहे के सभी टुकड़ों पर समान बनाना होगा, अगर लोहे के टुकड़े इसे करने की अनुमति देते हैं।
मैं डिबग में लाइन देख सकता हूं:
usm: no match on engineID (80 00 00 09 03 8F 60 4F 6B 82 A5 )
मुझे समझ में क्यों नहीं आया, हालांकि यह सब TRAP के साथ स्वीकार किया जाता है और आगे की प्रक्रिया के लिए प्राप्त होता है। अगर आपको पता है कि मैंने क्या गलत किया है, तो कृपया टिप्पणी करें।
अब हम एसएनएमपीटीटी को लेते हैं - इसमें दो आईएनआई और कॉन्फिग कॉन्फिग है। पहले में हम स्वयं डेमॉन के मापदंडों को निर्धारित करते हैं, दूसरे में हम प्रत्येक विशिष्ट सीढ़ी को प्राप्त करने और संसाधित करने के लिए मापदंडों का निर्धारण करते हैं।
हम /etc/snmp/snmptt.ini फ़ाइल में चढ़ते हैं और निम्नलिखित चीज़ें आकर्षित करते हैं:
mode = daemon net_snmp_perl_enable = 1 date_time_format = %Y %m %d %H:%M:%S
दिनांक और समय का प्रारूप व्यवसाय का विषय है, सबसे महत्वपूर्ण बात यह है कि हर जगह समान रूप से उपयोग किया जाता है।
log_file = /var/log/snmptt/snmptt.log log_system_file = /var/log/snmptt/snmpttsystem.log unknown_trap_log_enable = 1 unknown_trap_log_file = /var/log/snmptt/snmpttunknown.log
इंटरनेट पर कई लेखों में लॉग समान क्यों नहीं है? क्योंकि
डॉक ने कहा, "अगर सिस्टमड पैरामीटर प्राइवेटटैम्प का उपयोग किया जाता है, तो यह फ़ाइल / tmp में काम करने की संभावना नहीं है।", मैं पहले से चेतावनी दिए जाने पर एक बार फिर रेक में नहीं आना चाहता, इसलिए मैं तुरंत फ़ाइल के सामान्य पथ में बदल जाऊंगा।
अगला, /etc/snmp/snmptt.conf पर जाएं, वह सब कुछ हटा दें जिसकी हमें आवश्यकता नहीं है और / या समझ में नहीं आता है, हम इसे केवल छोड़ देते हैं:
EVENT ospfNbrStateChange .1.3.6.1.2.1.14.16.2.2 "OSPF" Normal FORMAT ZBXTRAP $aA OSPF neighbor with IP addr $2 changed state to $5
इस रूप में, क्योंकि Zabbix लॉग में इस तरह के प्रारूप की अपेक्षा करेगा। $ 2 और $ 5 कहां से आते हैं, आप पता लगा सकते हैं कि क्या आप
TRAP संदेश प्रारूप को देखते हैं, देखें:
Object ospfNbrStateChange OID 1.3.6.1.2.1.14.16.2.2 MIB OSPF-TRAP-MIB ; Trap Components ospfRouterId ospfNbrIpAddr ospfNbrAddressLessIndex ospfNbrRtrId ospfNbrState
ये ट्रैप कंपोनेंट्स ऐसे पैरामीटर हैं, जिन्हें $ 1, $ 2 के क्रम में लॉग फॉर्मेट में शिफ्ट किया जा सकता है ...
इस सभी सामानों के प्रदर्शन के दौरान, मैंने देखा कि एसएनएमपीटीटी सेटिंग्स को बदलने के बाद, यह ऐसा है जैसे परिवर्तन लागू नहीं होते हैं। यह पता चला कि उनके परिवर्तन के बाद snmptt.serivce को पुनः आरंभ करना आवश्यक था, लेकिन snmpd.service - इस बारीकियों ने शालीनता से मेरा खून पी लिया और डीबग के दौरान मेरी नसों को पी लिया।
जांचें कि आपके पास सभी डेमॉन चल रहे हैं:
systemctl status snmpd snmptrapd snmptt
यदि सब कुछ ठीक है, OSPF को तोड़ने के लिए फिर से प्रयास करें और लॉग /var/log/snmptt/snmptt.log पर जाएं, यह इस तरह दिखेगा:
2018 07 19 15:10:52 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to down 2018 07 19 15:12:28 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to exchangeStart 2018 07 19 15:12:34 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to full 2018 07 19 15:22:41 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to down 2018 07 19 15:25:38 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to exchangeStart
उन TRAPs जिन्हें हमने /etc/snmp/snmptt.conf में कॉन्फ़िगर नहीं किया था, वे /var/log/snmptt/snmpttunknown.log लॉग पर जाएंगे, लेकिन केवल उसी हार्डवेयर से जिसमें सही उपयोगकर्ता और इंजनआईडी एक ही विन्यास में कॉन्फ़िगर किए गए हैं। यही है, बाईं ग्रंथियों से टीआरएपी केवल चुपचाप गिरा दिया जाएगा, अगर आप मटन और डिब्रीपिंग चाहते हैं, तो
यहां आपके पास नेट-स्नैम्प पर असामान्य रूप से साने गोदी है, टीआरएपी और इन्फोरम के बीच का अंतर अभी भी वहां वर्णित है, आगे देखते हुए, INFORM, आदि का उपयोग करना बेहतर है। k। वहां किसी प्रकार का वितरण नियंत्रण होता है, लेकिन यह UDP पर UDP के माध्यम से काम करता है।
और केवल अब हम अपने मॉनिटर को कॉन्फ़िगर करने के लिए चढ़ते हैं।
Zabbix सेटअप
सबसे पहले, सुनिश्चित करें कि /etc/zabbix/zabbix_server.conf में मॉनिटरिंग सही SNMPTT लॉग पर सेट है और Zabbix खुद कम से कम एक SNMP ट्रैपर शुरू करता है:
SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1
शुरुआत के लिए, मैंने सीधे होस्ट पर आइटम बनाया, ताकि विशेष प्रभावों को पकड़ने के लिए यह तेज़ और आसान हो, यहां मैं सही तरीके से लिखूं कि टेम्पलेट कैसे बनाया जाए, क्योंकि यह वह टेम्पलेट हैं जिन्हें जब भी संभव हो उपयोग किया जाना चाहिए। मैं आपको तस्वीरें दिखाऊंगा, कॉपी-पेस्ट फ्रीबी खत्म हो गई है, लेकिन मैं उन जगहों को रंग दूंगा जिन पर आपको ध्यान देने की आवश्यकता है।
एक टेम्पलेट बनाएँ:

यहां हम सिर्फ एक संत नाम देते हैं
आइटम बनाएँ

महत्वपूर्ण - कुंजी इस तरह होनी चाहिए, वर्ग कोष्ठक में जो इंगित किया गया है वह वही है जो ज़बिक्स लॉग में दिखेगा, हमने लॉग प्रारूप को /etc/snmp/snmptt.conf में कॉन्फ़िगर किया और वहां लिखा:
EVENT ospfNbrStateChange .1.3.6.1.2.1.14.16.2.2 "OSPF" Normal FORMAT ZBXTRAP $aA OSPF neighbor with IP addr $2 changed state to $5
वास्तव में लॉग में, यह जादू शब्द "OSPF" है और प्रकट होता है:
2018 07 19 15:25:38 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - ZBXTRAP 192.168.192.169 OSPF neighbor with IP addr 10.216.0.82 changed state to exchangeStart
दिनांक प्रारूप हमने /etc/snmp/snmptt.ini कॉन्फ़िगरेशन में परिभाषित किया है:
date_time_format = %Y %m %d %H:%M:%S
मैंने जो ऊपर लिखा है - आपके लिए सुविधाजनक किसी भी प्रारूप का उपयोग करें, मुख्य बात यह है कि यह सही स्थानों पर मेल खाता है।
एक ट्रिगर बनाएँ
एक पड़ोसी के पास कई
राज्य हो सकते हैं:
1 : down 2 : attempt 3 : init 4 : twoWay 5 : exchangeStart 6 : exchange 7 : loading 8 : full
यह बिल्कुल भी मायने नहीं रखता है कि पड़ोसी किस तरह का राज्य है, अगर यह राज्य पूर्ण नहीं है, क्योंकि इस का निदान करने के लिए, आपको अभी भी लोहे के टुकड़े पर जाना है, लॉग पढ़ें, कुछ कमांड दर्ज करें। तो ट्रिगर एक होगा और केवल तभी उत्तेजित होगा जब TRAP में पड़ोसी की स्थिति FULL नहीं है।
किसी विशिष्ट होस्ट पर टेम्प्लेट को लटकाने से पहले, सुनिश्चित करें कि होस्ट सही IP पते के साथ सही SNMP इंटरफ़ेस के साथ कॉन्फ़िगर किया गया है, अन्यथा लैडर /var/log/snmptt/snmptt.log लॉग में होगा, लेकिन Zbbix उन्हें होस्ट के साथ बाँध नहीं पाएगा। इस स्थिति में, सर्वर / ज़वरबॉग / ज़ैबिक्स / ज़ैबिक्स_सर्वर के ज़ैबिक्स लॉग में फ़ॉर्म का संदेश होगा:
19972:20180720:091722.896 unmatched trap received from "192.168.192.169": 2018 07 20 09:17:21 .1.3.6.1.2.1.14.16.2.2 Normal "OSPF" 192.168.192.169 - OSPF neighbor with IP addr 10.64.0.10 changed state to exchangeStart
नवीनतम डेटा पर जाएं, देखें

ट्रिगर ने भी काम किया

अब दो पड़ोसियों को रखो

डैशबोर्ड में, हम देखते हैं कि दो समस्याएं हुईं, यह अच्छा है, और यहां तक कि दो अक्षर कॉन्फ़िगर किए गए अधिसूचना के साथ इस विषय पर पहुंचेंगे।
सब कुछ बहुत अच्छा है, सब कुछ काम करता है, और यहां अंत में केक पर चेरी है।
निराशाअब हम एक पड़ोसी को लेते हैं और उठाते हैं। एक ही समय में, डैशबोर्ड में दोनों समस्याएं गायब हो जाएंगी। यह एक बग नहीं है, यह एक विशेषता है। मैंने गलती से इस तरह की बारीकियों पर ध्यान दिया जब मैंने टेम्पलेट का परीक्षण किया। नतीजतन, यह पता चला है कि यदि कई पड़ोसी गिरते हैं, और फिर उनमें से एक उठता है, या यहां तक कि अगर पड़ोसी उठता है, जो पहले मौजूद नहीं था, तो निगरानी हरी हो जाएगी।
बेशक, आप किसी विशिष्ट पड़ोसी को ट्रैक करने के लिए अपने हाथों से आइटम को कॉन्फ़िगर कर सकते हैं, आप अभी भी कुछ स्क्रिप्ट कर सकते हैं, आप लेख की शुरुआत से ही एसएनएमपी संदर्भों पर लौट सकते हैं। अभी भी एक स्क्रिप्ट खींचने का एक विचार है जो एसएसएच / एपीआई से अधिक नेटवर्क ग्रंथियों पर जाएगा, सभी पड़ोसियों के बारे में जानकारी एकत्र करेगा, एक "काम" कास्ट करेगा, चेक के बीच अंतर का विश्लेषण करेगा और लॉग में क्या गलत है लिख सकता है, फिर लॉग को मॉनिटर को खिलाया जा सकता है ... यह मुश्किल है। मैं कम से कम बैसाखी और रिवाज चाहता था। यदि आप इस समस्या को हल करने का एक समझदार तरीका जानते हैं या सोचते हैं कि मैंने सब कुछ गलत किया है, तो मैं फिर से टिप्पणियों में पूछता हूं, बल्कि प्रतिक्रिया लेख में।
UPD: हमारे सहयोगियों ने हमें इसे छाँटने और
SNMP संदर्भों का उपयोग करके हमारी योजनाओं को लागू करने का प्रयास करने की सलाह दी। मांग है, आपूर्ति होगी। आगे देखते हुए मैं कह सकता हूं - शैतान इतना भयानक नहीं है, चलो चलते हैं।
लोहे के एक नेटवर्क टुकड़े पर हम एक जादू कमांड बनाते हैं:
snmp-server context {snmp context name} instance {protocol instance} vrf {vrf name}
पैरामीटर नामों को स्पष्टीकरण की आवश्यकता है
{snmp संदर्भ नाम} - SNMP संदर्भ का नाम जिसे अनुरोधों में उपयोग किया जाएगा।
{प्रोटोकॉल उदाहरण} और {vrf नाम} हम कॉन्फ़िगर OSPF प्रक्रिया के विन्यास से लेते हैं:
router ospf {protocol instance}
..
vrf {vrf name}
..
ऐसी आशंका थी कि ऐसी सेटिंग्स के बाद हम पहले से ही कॉन्फ़िगर की गई वस्तु को SNMP के माध्यम से एक खाली संदर्भ के साथ तोड़ देंगे, लेकिन मैंने जाँच की कि सेटिंग OSPF-MIB के माध्यम से केवल डेटा के आउटपुट को प्रभावित करती है, जबकि उदाहरण के लिए IF-MIB सेक्शन में सबकुछ एक खाली संदर्भ के साथ पहले की तरह लौटाया जाता है। यदि आपके पास नेक्सस नहीं है, तो मैं एक बार फिर से इस बिंदु की जांच करने की सलाह देता हूं - यह संभावना है कि व्यवहार अलग होगा।
अब Zabbix में टेम्पलेट को ट्विस्ट करें।
आपको संदर्भ के साथ एक नया डिस्कवरी नियम बनाना होगा:

नई आइटम प्रोटोटाइप भी संदर्भ के साथ

और दो ट्रिगर - पहले एक - अलार्म के लिए अगर पड़ोसी फुल को छोड़कर किसी भी राज्य में है:

और दूसरा - यदि पड़ोसी गायब है:
