नागिओस सर्वर सबसे अच्छा अभ्यास?


10

मैं एक मध्यम आकार के नागिओस सर्वर को चलाता हूं। यह वर्तमान में 180 सेवाओं के साथ लगभग 40 सर्वरों की निगरानी करता है और केवल दिन तक बढ़ रहा है।

मैं एक पुराने नागिओस सेटअप से चला गया जो बहुत गूढ़ फैशन में कॉन्फ़िगर किया गया था, जिससे मुझे खरोंच से सब कुछ फिर से कॉन्फ़िगर करने के लिए मजबूर होना पड़ा।

अब जब कि सर्वर चल रहा है और क्या हम में से ज्यादातर के लिए काम करता है है की जरूरत है इसके लिए, मैं इसे थोड़ा अधिक स्केलेबल बनाने में देख रहा हूँ; वर्तमान में प्रत्येक होस्ट की अपनी फ़ाइल है /etc/nagios/hosts/, और प्रत्येक होस्ट की अपनी सभी सेवाएँ एक ही फ़ाइल में हैं। यह स्पष्ट रूप से इष्टतम नहीं है, लेकिन न तो सैकड़ों विभिन्न फाइलों में मेरे सभी कॉन्फ़िगरेशन को बाधित कर रहा है।

तो मेरा सवाल यह है: किसी भी अनुभवी नागियोस को वहां से बाहर निकलने के लिए, कॉन्फ़िगरेशन को ओवर-पेचीदा किए बिना होस्टगुप / सर्विसग्रुप का उपयोग करने का सबसे अच्छा तरीका क्या है ?

जवाबों:


13

Hostgroups और टेम्पलेट्स।

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

आप एक ही संसाधन पर कई टेम्पलेट्स का उपयोग कर सकते हैं, ताकि आप उचित रूप से-ऑर्थोगोनल टेम्पलेट्स की रचना कर सकें। उदाहरण के लिए, आपके पास हो सकता है

host foo {
    use windows-host,normal-priority-host
    ...
}

जो कि विंडोज टीम और "सामान्य" होस्ट के लिए पोलिंग रेट और थ्रेसहोल्ड के लिए संपर्क जानकारी (और एस्केलेशन) में खींच जाएगा।

Hostgroups आप अपने मेजबान के एक सबसेट के लिए चेक के सभी एक साथ समूह। "बेसलाइन-लाइनक्स-होस्ट" जैसी चीजें हैं जो लोड, डिस्क स्थान, sshक्षमता, और जो भी अन्य चीजें आपको मॉनिटर करती हैं, उन सभी चीजों की जांच करनी चाहिए। HTTP कनेक्टिविटी, HTTPS कनेक्टिविटी और एसएसएल सर्टिफिकेट एक्सपायरी डेट के चेक के साथ "https-server" जैसे ग्रुप जोड़ें; NFS और SMB पहुँच क्षमता और शायद अधिक आक्रामक डिस्क जाँच के लिए "fileservers"; या "वर्चुअल-मशीन" चेक के साथ कि क्या VM एक्सेसिबिलिटी टूल ठीक से चल रहे हैं।

प्रत्येक होस्ट और होस्टग्रुप को अपनी फ़ाइल में रखें। उस फ़ाइल में पहले होस्ट या होस्टग्रुप परिभाषा होनी चाहिए, उसके बाद उस पर लागू होने वाली सेवाओं की परिभाषाएँ।

यदि आप cfg_dirअपनी nagios.cfgफ़ाइल में निर्देश का उपयोग करते हैं, तो Nagios उस निर्देशिका के माध्यम से पुन: खोज करेगा। उस का उपयोग करें। सेटिंग के लिए cfg_dir=/etc/nagios/conf.d, आपके पास निम्न की तरह एक निर्देशिका ट्री हो सकता है:

  • /etc/nagios/conf.d/
    • commands.d /
      • http.cfg
      • nrpe.cfg
      • smtp.cfg
      • ssh.cfg
    • hosts.d /
      • host1.cfg
      • host2.cfg
      • host3.cfg
    • hostgroups.d /
      • hostgroup1.cfg
      • hostgroup2.cfg

मैं सेवाओं को छोड़कर प्रत्येक संसाधन प्रकार (कमांड, संपर्क समूह, संपर्क, एस्केलेशन, होस्टग्रुप, होस्ट, सर्विसग्रुप, टाइमपरियोड) के लिए एक निर्देशिका बनाता हूं, जो होस्ट या होस्टग्रुप के साथ समूहीकृत हो जाते हैं जो उनका उपयोग करते हैं।

आपकी संगठनात्मक आवश्यकताओं के अनुसार सटीक संरचना भिन्न हो सकती है। पिछली नौकरी में, मैंने hosts.dप्रत्येक अलग साइट के लिए उपनिर्देशिका का उपयोग किया । मेरी वर्तमान नौकरी में, अधिकांश Nagios होस्ट परिभाषाएं कठपुतली द्वारा प्रबंधित की जाती हैं, इसलिए कठपुतली प्रबंधित मेजबान के लिए एक निर्देशिका और हाथ से प्रबंधित मेजबान के लिए एक अलग है।

ध्यान दें कि ऊपर भी कई फाइलों में कमांड्स टूट जाती हैं, आम तौर पर प्रोटोकॉल द्वारा। इस प्रकार, nrpe.cfgफ़ाइल आदेशों के लिए होता है check_nrpeऔर check_nrpe_1arg, जबकि http.cfgहो सकता था check_http, check_http_port, check_https, check_https_port, और check_https_cert1

मेरे पास आमतौर पर बहुत अधिक संख्या में टेम्पलेट नहीं हैं, इसलिए मेरे पास आमतौर पर केवल एक hosts.d/templates.cfgफ़ाइल और एक services.d/templates.cfgफ़ाइल है। यदि आप उन्हें अधिक भारी उपयोग करते हैं, तो वे एक templates.dनिर्देशिका में उचित रूप से नामित फ़ाइलों में जा सकते हैं ।

1 मुझे एक check_http_blindlyकमान भी पसंद है , जो मूल रूप से है check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.; यदि यह 403 प्रतिसाद कोड प्राप्त करता है तो भी यह ठीक है।


6

सेवा और hostgroups, और templating का व्यापक उपयोग करें। Hostgroups बनाएँ, और hostgroups को सेवाएँ असाइन करें। वेब UI में निर्भरता, वृद्धि और तार्किक समूह के लिए सेवा समूह का उपयोग करें।

यदि आपके पास सब कुछ के लिए समूह हैं, तो एक नया होस्ट जोड़ना सिर्फ 3 या 4 लाइनें हैं: नाम, पता, टेम्पलेट (ओं), और (वैकल्पिक रूप से) होस्टग्रुप। हर चीज का टेम्प्लेट किया जा सकता है।

वंशानुक्रम पर डॉक्स पढ़ना सुनिश्चित करें , और समय-बचत ट्रिक्स पेज भी। मल्टीपल इनहेरिटेंस मुश्किल हो सकता है, लेकिन जब इसे सही तरीके से इस्तेमाल किया जाता है तो यह बहुत बड़ा समय बचाने वाला होता है।


मैं कॉन्फ़िगरेशन के साथ एक संतुलन खोजना चाहता हूं; बहुत अधिक वंशानुक्रम मुश्किल हो सकता है जब किसी अन्य व्यवस्थापक को सर्वर चुनना होगा (मैं एक प्रशिक्षु हूं इसलिए मैं इसे अधिक समय तक नहीं चलाऊंगा)।
माइकल पोबेगा

1
संभवतः कई विरासत से दूर रहें, फिर। यदि आप इसे सरल (ईश) रखना चाहते हैं तो बस कैस्केडिंग टेम्प्लेट का उपयोग करें।
कीथ

1

मुझे इस तरह से अपने nagios सर्वर को कॉन्फ़िगर करने के लिए उपयोग किया गया था (Icinga पर स्विच करने से पहले), और जब तक आप कम से कम 512Mb मेमोरी / 1 सीपीयू सर्वर के साथ 500 से अधिक सेवाओं तक पहुंचने के लिए प्रदर्शन की कोई कमी नहीं है। होस्टग्रुप और सर्विसग्रुप को पूरी तरह से अलग-अलग माना जा सकता है, और मैं इस दृष्टिकोण की सिफारिश करूंगा क्योंकि यह प्रति सर्वर पर एक फ़ाइल (इस फाइल में परिभाषित सर्वर के लिए सेवाएं) और फिर, होस्टग्रुप / सर्विसग्रुप प्रति फ़ाइल पर अनुमति देता है। यह केवल अधिक समझने योग्य / स्पष्ट है।

यदि आप स्केलेबिलिटी मुसीबतों में भाग लेते हैं, तो आप nagios-nrpe-server पर एक नज़र डालना चाहते हैं, जो क्लाइंट साइड पर चेक करता है और आपके सभी nagios सर्वर केवल परिणाम के लिए पूछ रहा है; जो चेक के संसाधन को छोड़ देता है। (Nagios ने check_nrpe लॉन्च किया, ग्राहक से अनुरोध किया गया है, स्थानीय स्तर पर चेक करता है और nagios पर वापस जाता है)। यह ध्यान में रखते हुए कि सभी जाँचों को इस तरह से नहीं किया जा सकता है (उदाहरण के लिए SNMP)।

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


स्केलेबल द्वारा मैं वास्तव में विन्यास का मतलब था, वास्तव में स्केलेबिलिटी के मुद्दे नहीं; मुझे उस दहलीज तक पहुंचने की चिंता नहीं है। होस्टगुप / सेवा समूह के बारे में आपका क्या मतलब है? मैं आपकी व्याख्या नहीं समझता।
माइकल पोबेगा

1

मैं इस योजना का उपयोग कर रहा हूं:

  • होस्ट करता है,
  • hostgroups,
  • दूरस्थ सेवाएं,
  • स्थानीय सेवाएं।

प्रत्येक इकाई की अपनी फ़ाइल होती है। टेम्प्लेट के अलावा आप हमेशा अपने कॉन्फिग क्लीनर को अधिक पठनीय बना सकते हैं। उदाहरण के लिए, आपके पास प्रत्येक होस्ट पर लोड औसत, डिस्क स्थान, मेमोरी हो सकती है। इसलिए जेनेरिक टेम्प्लेट बनाना और उसका उपयोग करना काफी आसान और आसान है।


1

आप समूह बनाने के साथ कॉन्फ़िगरेशन को जटिल नहीं कर सकते। जैसा कि आस्कीफिल कहते हैं, आप एक फ़ाइल बनाते हैं या आप उन्हीं समूहों में से कुछ मौजूदा फ़ाइलों में परिभाषित कर सकते हैं, जैसे (hosts.cfg या कभी भी), और आप इस फ़ाइल को बनाते हैं या आप nagios से कहते हैं कि यह फ़ाइल सक्रिय है (यदि ऐसा है) आप नई फ़ील्ड बनाते हैं, यदि यह पहले से सक्रिय नहीं है), और यह nagios.cfg फ़ाइल में है जहाँ आपने नई बनाई गई फ़ाइल का पथ रखा है। "Cfg_file = / usr / स्थानीय / Nagios / etc / वस्तुओं / NEW_FILE.cfg"

दूसरी बात सिर्फ अपने बुनियादी ढांचे के आधार पर समूह बना रही है। अगर उदाहरण के लिए मेरे पास linux और windows सर्वर है, तो मैं linux के लिए दो अलग ग्रुप बनाऊंगा और windows के लिए अन्य। सेवाओं के साथ भी ऐसा ही है। इस बात पर निर्भर करता है कि आप मॉनिटर पर निगरानी करते समय कैसे कॉन्फ़िगर करना चाहते हैं, आप उन्हें समूहों के रूप में कैसे देखना चाहेंगे।

और फ़ाइल या भाग के लिए एक समूह बनाने के लिए यह सरल है।

    define hostgroup{
    hostgroup_name novell-servers
    alias Novell Servers
    members netware1,netware2,netware3,netware4
    }

और होस्ट कॉन्फ़िगरेशन पर / या यदि आप टेम्पलेट का उपयोग कर रहे हैं या यदि आपने पहले से ही होस्ट टेम्पलेट या सेवा और उपयोग का उपयोग कर परिभाषित किया है, तो आप सभी होस्ट / विंडोज़ या लिनक्स होस्ट को स्वचालित रूप से बता सकते हैं कि आप एक परिभाषित होस्ट समूह के सदस्य हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.