यह TryTryAgain की तरह है। नवीनतम डॉक्स दो अलग-अलग तरीकों का वर्णन करते हैं।
टॉप-डाउन रिमोट कमांड निष्पादन और टॉप-डाउन कॉन्फ़िगरेशन सिंक
इस दृष्टिकोण का अंतर यह है कि रिमोट कमांड निष्पादन मास्टर से सभी कमांड को ट्रिगर करेगा जबकि कॉन्फिग सिंक सिंक /etc/icinga2/zones.d
चाइल्ड नोड्स (उपग्रहों के साथ-साथ क्लाइंट) में स्थित सभी कॉन्फिगर फाइल को सिंक करेगा और एंडपॉइंट पर सीधे कमांड निष्पादन को ट्रिगर करेगा।
मैं टॉप-डाउन कॉन्फ़िगरेशन सिंक दृष्टिकोण का उपयोग करना पसंद करता हूं क्योंकि क्लाइंट चेक को चलाएगा भले ही मास्टर बच्चे से कनेक्शन खो दे।
आपको API
सभी नोड्स पर सुविधा को सक्षम करना होगा ।
# /etc/icinga2/features-enabled/api.conf
object ApiListener "api" {
cert_path = "/etc/ssl/{{ hostname }}.pem"
key_path = "/etc/ssl/{{ hostname }}-key.pem"
ca_path = "/etc/ssl/rootca.pem"
// only on satelites and clients
accept_config = true
}
अब एक ज़ोन फ़ाइल बनाएं और इसे सभी नोड्स पर कॉपी करें
# /etc/icinga2/zones.conf
// global zone used for zone overlapping configs
object Zone "global" {
global = true
}
// endpoints
object Endpoint "fqdn1.of.host" {
host = "fqdn1.of.host"
}
object Endpoint "fqdn2.of.host" {
host = "fqdn2.of.host"
}
// for each endpoint one zone
object Zone "fqdn1.of.host" {
endpoints = [ "fqdn1.of.host" ]
}
object Zone "fqdn2.of.host" {
endpoints = [ "fqdn2.of.host" ]
parent = "fqdn1.of.host"
}
सबसे अच्छा अभ्यास अपने नोड्स के fqdn को एंडपॉइंट नाम और साथ ही ज़ोन के नाम का उपयोग करना है।
याद रखें : इसे zones.conf
सभी नोड्स पर कॉपी करें ।
अगला कदम यह होगा कि सभी सेवाओं, टेम्प्लेट और समूहों के अंदर /etc/icinga2/zones.d/
और प्रत्येक होस्ट को यह निर्धारित करना है कि यह स्वयं का होस्टेस है। यह जोन डायरेक्टरी के अंदर है।
# /etc/icinga2/zones.d/global/templates.conf
template Host "generic-host" {
max_check_attempts = 3
check_interval = 1m
retry_interval = 30s
check_command = "hostalive"
}
# /etc/icinga2/zones.d/fqdn1.of.host/hosts.conf
// this is the master
object Host "fqdn1.of.host" {
import "generic-host"
address = "fqdn1.of.host"
}
# /etc/icinga2/zones.d/fqdn2.of.host/hosts.conf
// this is a satelite/client
object Host "fqdn2.of.host" {
import "generic-host"
address = "fqdn2.of.host"
}
मेरा दृष्टिकोण अंदर के कॉन्फिग का उपयोग करने से रोकना था /etc/icinga2/conf.d
क्योंकि मैंने सभी जेनेरिक (और वैश्विक उपयोग किए गए) सामान को /etc/icinga2/zones.d/global
अंदर और मेजबान विशिष्ट सामग्री में जोड़ा था/etc/icinga2/zones.d/fqdnX.of.host
अंतिम लेकिन कम से कम आपको conf.d के लिए सम्मिलित कथन को निकालना होगा
# /etc/icinga2/icinga2.conf
[...]
// include_recursive "conf.d"
बस। इस सेटअप को मैन्युअल रूप से या अपनी पसंद के कॉन्फ़िगरेशन प्रबंधन के साथ अपने प्रमाण पत्र का प्रबंधन करने की आवश्यकता है। यह इसे उत्पन्न नहीं करेगा और आइसिंगा पक्की का उपयोग नहीं कर रहा है। जब तक मुझे इसके लिए एक विशेष उपकरण का उपयोग नहीं करना चाहिए, तब तक कोई कारण न देखें।