CLI विज़ार्ड का उपयोग किए बिना Icinga2 रिमोट क्लाइंट कैसे सेट करें?


11

मैं कठपुतली के माध्यम से Icinga2 दूरदराज के ग्राहकों को स्थापित करना चाहता हूं, लेकिन आधिकारिक दस्तावेज का पूरा पृष्ठ अपने भयानक सीएलआई विज़ार्ड का उपयोग करने के बारे में बात करता है , जिसे मैन्युअल रूप से चलाने की आवश्यकता होती है।

कोई वर्कअराउंड? शायद मुझे नागोइसे वापस जाना चाहिए?


डॉक्स जिसे आप केवल Windows के लिए GUI सेटअप के संदर्भ में लिंक करते हैं। क्या यह आप के बारे में पूछ रहे हैं?
कीथ

1
docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/… ... जहां नवीनतम डॉक्स में एक अनुभाग होता है, जो इस प्रश्न के लिए समर्पित होता है।
TryTryAgain

जवाबों:


16

मेरी भी यही समस्या थी। Icinga2 नोड विज़ार्ड कोड से तर्क निकालने के बाद मैं यही उपयोग करता हूं।

चर जिनकी आपको आवश्यकता होगी:

$pki_dir - /etc/icinga2/pki in the default installation
$fqdn - fully host+domain name of the client.
$icinga2_master - resolvable fqdn of the master
$icinga2_master_port - the port the master is connectable on.
$ticket - generated on the master via 'icinga2 pki ticket --cn $fqdn'

कोड:

mkdir icinga:icinga 0700 $pki_dir
icinga2 pki new-cert --cn $fqdn --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt
icinga2 pki save-cert --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt --trustedcert $pki_dir/trusted-master.crt --host $icinga2_master
icinga2 pki request --host $icinga2_master --port $icinga2_master_port --ticket $ticket --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt --trustedcert $pki_dir/trusted-master.crt --ca $pki_dir/ca.key
icinga2 node setup --ticket $ticket --endpoint $icinga2_master --zone $fqdn --master_host $icinga2_master --trustedcert $pki_dir/trusted-master.crt
systemctl restart icinga2  # or however you restart your icinga

1

यह 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"

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

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