Icinga2 uzak istemcisini CLI sihirbazı kullanmadan nasıl kurabilirim?


11

Icinga2 uzak istemcilerini Kukla aracılığıyla kurmak istiyorum, ancak resmi belgelerin tüm sayfası, manuel olarak çalıştırılması gereken harika CLI sihirbazlarını kullanmaktan bahsediyor .

Herhangi bir çözüm var mı? Belki Nagios'a geri dönmeliyim?


Bağladığınız dokümanlar yalnızca Windows için bir GUI kurulumuna başvuruyor. Sorduğun şey bu mu?
Keith

1
docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/… ... en son dokümanların bu soruna ayrılmış bir bölümü olduğu.
TryTryAgain

Yanıtlar:


16

Aynı sorunu yaşadım. Bu, icinga2 düğüm sihirbazı kodundan mantığı ayıkladıktan sonra kullandığım şey.

Gereksinim duyacağınız değişkenler:

$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'

Kod:

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'in yazdığı gibi. En son dokümanlar iki farklı yolu tanımlar. Yukarıdan Aşağıya Uzaktan Komut Yürütme ve Yukarıdan Aşağı Yapılandırma Senkronizasyonu

Bu yaklaşımların farkı, uzaktan komut yürütmenin master'dan tüm komutları tetiklemesi, yapılandırma senkronizasyonu ise /etc/icinga2/zones.dalt düğümlere (uyduların yanı sıra istemciler) bulunan tüm yapılandırma dosyalarını senkronize etmesi ve komutun yürütülmesini doğrudan bitiş noktasında tetiklemesidir.

Yukarıdan Aşağı Yapılandırma Senkronizasyonu yaklaşımını kullanmayı tercih ederim çünkü master alt öğeye olan bağlantıyı kaybetse bile istemci kontrolleri çalıştıracaktır.

APIÖzelliği tüm düğümlerde etkinleştirmeniz gerekir .

# /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
}

Şimdi bir bölge dosyası oluşturun ve tüm düğümlere kopyalayın

# /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"
}

en iyi uygulama düğümlerinizin fqdn'sini bitiş noktası adı ve bölge adı olarak kullanmaktır. Unutmayın : zones.confbunu tüm düğümlere kopyalayın .

Bir sonraki adım, /etc/icinga2/zones.d/kendi dizininin içindeki ve içindeki her host, kendi hosts.conf içindeki tüm hizmetleri, şablonları ve grupları tanımlamak olacaktır .

# /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"
}

Benim yaklaşımım içindeki yapılandırmaların kullanılmasını önlemekti /etc/icinga2/conf.dçünkü tüm genel (ve global olarak kullanılan) şeyleri /etc/icinga2/zones.d/globalve içerideki ana bilgisayara özgü şeyleri ekledim/etc/icinga2/zones.d/fqdnX.of.host

Son olarak, conf.d için include deyimini kaldırmanız gerekir.

# /etc/icinga2/icinga2.conf

[...]
// include_recursive "conf.d"

Bu kadar. Bu kurulum, sertifikalarınızı manuel olarak veya seçtiğiniz yapılandırma yönetimi ile yönetmenizi gerektirir. Oluşturmaz ve icinga pki kullanmaz. Bunun için belirli araçlar olduğu sürece, araca özgü bir pki kullanmamın nedenini görmüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.