आपका होस्ट कस्टम विशेषता "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 के आधार पर गतिशील थ्रेसहोल्ड को परिभाषित करने के लिए फ़ंक्शन का उपयोग करें।