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?
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?
Yanıtlar:
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
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.d
alt 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.conf
bunu 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/global
ve 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.