2014-06-14 11 views
5

सर्वर पर और कॉन्फ़िगर करने के लिए। लेकिन एजेंटों पर चलाने के लिए:एजेंटों पर आदेश कैसे चलाएं?

  • हमारे रिपोर्टिंग डेटा प्राप्त करने के लिए कुछ सरल यूनिक्स आदेश।
  • जब एजेंट पक्ष पर कुछ प्रसंस्करण की आवश्यकता होती है।

ऐसा लगता है कि विभिन्न दृष्टिकोणों के बारे में बात की जा रही है। तो ज़ब्बिक्स एजेंट पर ऐसे आदेश कैसे निष्पादित करें?

उत्तर

4

सीधे किसी नए आइटम से सर्वर से आदेश चलाएं।

पहले, सेट करें: EnableRemoteCommands=1 एजेंट conf फ़ाइल (आपके सभी एजेंटों के लिए) में। इस सुविधा को सक्षम करने के लिए।

एक नया आइटम बनाएं। "नया आइटम" पृष्ठ पर एक फ़ील्ड 'कुंजी' कहता है। दर्ज करें:

system.run[command] 

'कुंजी' स्ट्रिंग के रूप में। जहां आदेश कमांड है जिसे आप डाउनलोड करना चाहते हैं और एजेंट पर चलाना चाहते हैं। यहां एक उदाहरण दिया गया है:

system.run[sysctl dev.cpu.0.temperature | cut -d ' ' -f 2 | tr -d C] 

शायद आपको कुछ और जटिल परिसर चलाने की ज़रूरत है जो वहां फिट होने में बहुत लंबा है? फिर आपको एक कस्टम स्क्रिप्ट बनाना होगा। अपनी कस्टम स्क्रिप्ट को स्थानीय वेबसर्वर पर या वेब पर कहीं भी रखें। लाने और पहली बार यह मार डाला है एजेंट को लापता स्क्रिप्ट को डाउनलोड करने के

system.run[ command -v script && script || wget script_url -O /path/to/script && script] 

:

तो आप के लिए आइटम की कुंजी सेट कर सकते हैं। हालांकि यह एक कच्चे हैक है। बहुत सुरुचिपूर्ण नहीं है।

मेनू में "प्रशासन" -> "स्क्रिप्ट" पर जाने का एक बेहतर तरीका है। वहां से, आप किसी आइटम में उपयोग करने के लिए एक नई स्क्रिप्ट बना सकते हैं जिसे आपके किसी भी एजेंट पर चलाने के लिए कॉन्फ़िगर किया जा सकता है।

समय-समय पर अपनी स्क्रिप्ट को फिर से चलाने के लिए एक विशेष कस्टम आइटम बनाएं (एक क्रॉन नौकरी की तरह)। विशेष स्क्रिप्ट आइटम का काम एजेंट को अन्य आवश्यक कस्टम स्क्रिप्ट के संग्रह के साथ अपडेट करना है।

बेशक आप बस अपनी सभी कस्टम स्क्रिप्ट सीधे ज़ब्बिक्स के MYSQL डेटाबेस में लिख सकते हैं। और यह ऐसा करने के लिए बहुत मोहक है। लेकिन सावधान रहें कि यदि आपका ज़ब्बिक्स डेटाबेस कभी भी तला हुआ या दूषित/खो जाता है तो वे खो जाएंगे और कमजोर होंगे। ज़ब्बिक्स डेटाबेस में हमेशा बड़े, अनावश्यक और नियंत्रण से बाहर होने की आदत होती है। तो ऐसा मत करो। उन्हें कहीं और अलग-अलग संस्करण नियंत्रण (गिट या उपversण) के तहत संग्रहित करना।

एक बार सभी अनुसार क्रमबद्ध है कि, हम अंततः आगे बढ़ें और अपने कस्टम स्क्रिप्ट को चलाने के लिए आगे कस्टम आइटम बना सकते हैं। फिर से उपयोग:

system.run[script] 

आइटम की कुंजी पहले की तरह ही। कहाँ 'स्क्रिप्ट' कमांड (और अन्य तर्क) है, एजेंट पर स्थानीय रूप से अपने कस्टम स्क्रिप्ट को निष्पादित करने के लिए।

+0

आह। मैं उल्लेख करना भूल गया: 'EnableRemoteCommands = 1' को एजेंट conf फ़ाइल में सेट करने की आवश्यकता है। अन्यथा 'system.run [कमांड]' काम नहीं करेगा! – Dreamcat4

+0

मैं 'EnableRemoteCommand' के खिलाफ दृढ़ता से वोट देता हूं। यह मेरे लिए सुरक्षा परिप्रेक्ष्य से व्यक्तिगत रूप से कोई नहीं है। हम क्या करते हैं कि हम बाहरी चेक का उपयोग करते हैं, जैसा कि वर्णन किया गया है [यहां] (https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/external)। – StephenKing

+0

2 अंक: 1) विंडोज के संभावित अपवाद के साथ, EnableRemoteCommand केवल 'zabbix' उपयोगकर्ता के रूप में चलाने के लिए आदेशों को अनुमति देगा। उपयोगकर्ता जो zabbix_agentd को चलाया जाना चाहिए। और जड़ नहीं। 'Sudoers' फ़ाइल में सही कॉन्फ़िगरेशन चुने, 'zabbix' उपयोगकर्ता को किसी भी प्रकार की उच्च अनुमति के साथ केवल चुने हुए आदेश चलाने की अनुमति दी जा सकती है। 2) सवाल यह है कि "एजेंट पर आदेश कैसे चलाएं"। बाहरी चेक फीचर के बारे में ज़ब्बिक्स प्रलेखन पृष्ठ का कहना है कि वे केवल सर्वर पर चल सकते हैं (और एजेंट नहीं)। – Dreamcat4

1
  1. ग्राहक पर उपयोगकर्ता पैरामीटर परिभाषित /etc/zabbix/zabbix_agentd.conf (जहां Zabbix एजेंट स्थित है)। कुंजी अद्वितीय होना चाहिए। मैं एक उदाहरण के रूप lsof उपयोग कर रहा हूँ।

    उपयोगकर्ता पैरामीटर = open_file, lsof | WC -l

  2. पुनरारंभ एजेंट "सेवा Zabbix एजेंट पुनः आरंभ"

  3. टेस्ट करता है, तो कुंजी zabbix_get सुविधा का उपयोग। Zabbix सर्वर से निम्नलिखित आह्वान काम कर रहा है। यह इस मामले में एक नंबर लौटाना चाहिए ।

    /usr/स्थानीय/bin/zabbix_get -s -k open_file

  4. टेम्पलेट स्तर पर Zabbix सर्वर पर कुंजी के साथ एक आइटम बनाएँ। वापसी प्रकार सही ढंग से परिभाषित किया जाना चाहिए, OT herwise Zabbix इसे स्वीकार नहीं करेंगे:

    प्रकार: Zabbix एजेंट (सक्रिय), कुंजी: open_file, सूचना के प्रकार: संख्यात्मक (अहस्ताक्षरित), डेटा प्रकार: दशमलव

  5. आप एक ग्राफ का उपयोग कर बना सकते हैं नियमित अंतराल पर मान की निगरानी करने के लिए आइटम।

यहाँ आधिकारिक documentation है।

संबंधित मुद्दे