Zabbix + Communigate Pro: चयनित डोमेन और मेजबानों को संदेशों की कतार की निगरानी करें

प्रस्तावना


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

कतार की स्थिति देखने के लिए उपयोगिता


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

GETMESSAGEQUEUEINFO moduleName QUEUE queueName 


फ़ंक्शन को इनपुट के रूप में दो तर्क मिलते हैं - मॉड्यूल का नाम और कतार का नाम।


प्रतिक्रिया में, फ़ंक्शन कतार के बारे में जानकारी देता है, जिसमें शामिल हैं:



इस फ़ंक्शन के अनुकूल उपयोग के लिए, मुझे एक छोटी सी उपयोगिता लिखनी थी। यह पर्ल में लिखा गया है। मैं इसे अपने पसंदीदा पायथन पर चाहता था, लेकिन सीजीपी के लिए कोई आधिकारिक पायथन लाइब्रेरी नहीं है, और मेरा अपना अभी भी अंतिम रूप दिया जा रहा है। काम करने की उपयोगिता के लिए, आपको CLI.pm मोती मॉड्यूल की आवश्यकता होती है, जिसे CGP API के लिए प्रलेखन में पाया जा सकता है । उपयोगिता की मुख्य विशेषताएं इसकी मदद में प्रस्तुत की जाती हैं।

 check_queue [-h hostname] [-p port] -u username -w password [-m module] -q queue [-t | -s [-f]] check_queue -h|--help -h hostname - address of DNS name of the server (Default: localhost) -p port - port for connection (Default: 106) -u username - account on CGatePro with grant 'Can View Queued Messages' -w password - user password -q queue - queue name to check -m module - name of CGP module (Default: SMTP) -t - if use this option then program return just total number of messages in queue -s - if use this options then program return just total size of messages in bytes -f - this option is used just with -s option, if it's set then size will be more readable. --help - print this help --debug - show debug lines 


इसके उपयोग के उदाहरण:

 #     torwald@torwald-station:~$ ./check_cgp_queue.pl -h myserver.domain.org -u monitor -w password -q another.domain.org Total: 41 Size: 65374728 Delay: 05-05-2014 06:04:28 State: waiting #     torwald@torwald-station:~$ ./check_cgp_queue.pl -h myserver.domain.org -u monitor -w password -q another.domain.org -t 41 


हम मॉनिटरिंग कनेक्ट करते हैं


प्रारंभिक तैयारी

मैं CentOS5 और CentOS6 की तैयारियों का वर्णन करूंगा।

सभी तैयारी निम्न पर आती है:
  1. हम उपयोगिता को / usr / लोकल / बिन (आप एक्सटेंशन को "काट" सकते हैं) और उपयोगकर्ता को इस उपयोगिता को चलाने के लिए zabbix एजेंट (डिफ़ॉल्ट रूप से - zabbix) को अधिकार दे सकते हैं।
  2. हम CLI.pm मॉड्यूल को रखते हैं जहां यह ज़ब्बीक्स की ओर से लॉन्च किए गए पर्ल दुभाषिया को "दिखाई" देगा। मेरे पास यह / usr / स्थानीय / lib / perl5 है।
  3. CGP व्यवस्थापक इंटरफ़ेस में, एक उपयोगकर्ता (उदाहरण के लिए, cgpmon) अधिकारों के साथ "मॉनिटर" कर सकते हैं -> "पंक्तिबद्ध संदेश देख सकते हैं" बनाएं।
  4. हम zabbix उपयोगकर्ता के तहत से कनेक्शन की जांच करते हैं।


मॉनिटरिंग एजेंट कॉन्फ़िगर करें

1. एजेंट कॉन्फ़िगरेशन फ़ाइल में निम्न सेटिंग्स जोड़ें।

 # /etc/zabbix_agentd.conf #      UserParameter=cgp.queue.total[*],/usr/local/bin/check_cgp_queue -u cgpmon -w password -q $1 -t #    UserParameter=cgp.queue.size[*],/usr/local/bin/check_cgp_queue -u cgpmon -w password -q $1 -s 


इस पैरामीटर और विशेष रूप से "तारांकन" के साथ काम करने के सिंटैक्स के बारे में अधिक जानकारी, प्रलेखन में पाई जा सकती है।

संक्षेप में, इस प्रविष्टि का मतलब है कि जब cgp.queue.total [other.domain.org] कुंजी के साथ एक निगरानी प्रणाली का अनुरोध किया जाता है, तो निगरानी प्रणाली एजेंट कमांड निष्पादित करेगा:

 /usr/local/bin/check_cgp_queue -u cgpmon -w password -q other.domain.org -t 


या, दूसरे शब्दों में, यह वर्ग ब्रैकेट में इंगित प्रति डोमेन संदेशों की संख्या प्राप्त करेगा।
2. एजेंट को पुनरारंभ करें।

मॉनिटरिंग सर्वर सेटअप

मान लीजिए कि हम तीन डोमेन के लिए कतारों की स्थिति में रुचि रखते हैं:


1. मॉनिटरिंग सर्वर पर एक अलग टेम्पलेट बनाएं (उदाहरण के लिए, टेम्पलेट सीजीपी क्यू)।
2. निम्नलिखित कुंजियों के साथ डेटा तत्व जोड़ें:

 #     cgp.queue.total[foo.example.org] cgp.queue.total[bar.example.org] cgp.queue.total[tor.example.org] #   cgp.queue.size[foo.example.org] cgp.queue.size[bar.example.org] cgp.queue.size[tor.example.org] 


3. हम सर्वर पर टेम्प्लेट रोल करते हैं।
4. अनावश्यक कतारों को अक्षम करें। उदाहरण के लिए, एक ही सर्वर पर स्थित डोमेन पर SMTP कतार की निगरानी करने का कोई मतलब नहीं है, क्योंकि यह हमेशा खाली होता है।
5. हम ट्रिगर को उजागर करते हैं।
6. अवलोकन चालू करें।

सूत्रों का कहना है


प्रो CLI और API दस्तावेज़ीकरण को कम्यूट करें
जौ इंटरफेस टू सीजीपी
Zabbix में UserParameter पर अधिक
Check_cgp_queue उपयोगिता के लिए स्रोत कोड

Source: https://habr.com/ru/post/In221795/


All Articles