Icinga संस्करण 2 के साथ रिमोट "https" की निगरानी कैसे करें?


9

मैं VirtualBox के अंदर ubuntu 14.04.3 पर icinga 2.3.11 है। Im " https://mail.google.com " उदाहरण के लिए "https" पोर्ट 443 पर नज़र रखने की कोशिश कर रहा हूँ। फिर भी डिफ़ॉल्ट होस्ट से मेरी स्निपेट है। फ़ाइल फ़ाइल

object Host "mailserver-01" {
    import "generic-host"
    address = "74.125.136.17"    /* ip for mail.google.com */ 
    vars.os = "Linux"
    vars.http_vhosts["http"] = {
        http_uri = "/"
    }
    vars.http_ssl = "1"
    vars.http_warn_time = "5"
    vars.http_critical_time = "10"

    vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
    }
}

नीचे डिफ़ॉल्ट services.conf फ़ाइल से स्निपेट है

apply Service "httpS" {
    import "generic-service"
    check_command = "http"
    assign where host.name == "mailserver-01"
}

हालांकि icingaweb2 डैशबोर्ड ओके / ग्रीन दिखाता है, मुझे यकीन नहीं है कि यह सही तरीका है

जवाबों:


10

आपका होस्ट कस्टम विशेषता "http_vhosts" को डिक्शनरी के रूप में परिभाषित करता है, लेकिन इसका कभी भी उपयोग नहीं किया जाता है (यह उस शब्दकोश और इटर्नेटिंग सर्विस ऑब्जेक्ट्स पर चलने वाले नियम के लिए लागू नहीं होता है)।

इसके बजाय सेवा लागू नियम (बिना लूप के) बस सेवा "httpS" लागू होती है। गलती से मेजबान कस्टम विशेषता "http_ssl" सेट हो गई है - इसे स्ट्रिंग के रूप में संख्या के बजाय बूलियन के रूप में सही पढ़ना चाहिए (यह हमेशा सच है)।

आप शायद कई यूआरआई की जांच करना चाहते हैं, न केवल /।

मेरा प्रस्ताव (2 समाधान):

1) अपनी सेवा लागू नियम को ठीक करें और अपनी होस्ट ऑब्जेक्ट परिभाषा से http_ * कस्टम विशेषताओं को हटा दें। इसके बजाय उन्हें सेवा लागू नियम में जोड़ें:

apply Service "httpS" {
  import "generic-service"
  check_command = "http"
  vars.http_uri = "/"
  vars.http_ssl = true
  assign where host.name == "mailserver-01"
}

आप दस्तावेज़ में http चेककमांड के लिए कमांड पैरामीटर के रूप में उपयोग किए जाने वाले सभी कस्टम गुण पा सकते हैं : http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check- आदेश-http

2) इसके बजाय नियम के लिए लागू एक सेवा का उपयोग करें और होस्ट में परिभाषित http_vhosts शब्दकोश पर लूप करें।

vars.http_vhosts["https /"] = {
  http_ssl = true
  http_uri = "/"
}

यहां नामकरण पर ध्यान दें: "https /" जनरेट सेवा नाम होगा। http_ssl और http_uri ठीक वही नाम हैं जो http CheckCommand द्वारा आवश्यक कस्टम विशेषताओं के रूप में हैं।

जादू नियम के लिए लागू होता है: शब्दकोश कुंजी सेवा का नाम होगा। शब्दकोश मूल्य एक नेस्टेड शब्दकोश है और इसमें कुंजी के रूप में http_uri और http_ssl शामिल हैं। उदाहरण में जिसे "कॉन्फिगर" कहा जाता है। उस शब्दकोष शब्दकोश में "vars" विशेषता के समान सटीक संरचना है यही कारण है कि हम इसे केवल परिभाषा के लिए लागू सेवा के अंदर जोड़ सकते हैं।

apply Service for (servicename => config in host.vars.http_vhosts) {
  import "generic-service"
  check_command = "http"
  vars += config
}

Icinga2 डेमन-सी का उपयोग करके कॉन्फ़िगरेशन को सत्यापित करें और फिर जेनरेट किए गए सेवा ऑब्जेक्ट्स में देखें कि कौन सी कस्टम विशेषताएँ उत्पन्न हुई हैं (icinga2 ऑब्जेक्ट सूची)।

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

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#using-apply-for

यद्यपि समाधान 2) को icinga 2 विन्यास भाषा और इसके कीवर्ड, मूल्य प्रकार और जादू की चाल के बारे में उन्नत ज्ञान की आवश्यकता है। फिर भी हम सोचते हैं कि इस तरह के तरीकों और सर्वोत्तम प्रथाओं को अपनाने और फ़ाइलों को बदलने के साथ दीर्घकालिक रखरखाव को कम करने में मदद मिलती है।

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


2

मैंने गुगली की और http कमांड मिली

/usr/share/icinga2/include/command-plugins.conf

इस उदाहरण में मैंने https://mail.google.com पर नजर रखने की कोशिश की है नीचे /etc/icinga2/conf.d/hosts.conf है

object Host "www.google.com" {
address = "74.125.136.84"
check_command = "http"
vars.http_vhost = "mail.google.com"
vars.http_ssl = "1"
}

यहाँ यह icingaweb2 डैशबोर्ड पर कैसा दिखता है यहां छवि विवरण दर्ज करें

example2

object Host "secure.example.com" {
    address = "14.28.83.22"
    check_command = "http"
    vars.http_vhosts["secure.example.com"] = {
    http_uri = "/merchant/login.aspx"    
    }
        vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
        }
    vars.http_ssl="1"
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.