Ini seperti yang ditulis TryTryAgain. Dokumen terbaru menjelaskan dua cara berbeda.
Top-Down Remote Command Execution dan Top-Down Config Sync
Perbedaan dari pendekatan ini adalah bahwa eksekusi perintah jarak jauh akan memicu semua perintah dari master sementara sinkronisasi config akan menyinkronkan semua file konfigurasi yang terletak di /etc/icinga2/zones.d
node anak (satelit dan klien) dan memicu eksekusi perintah langsung pada titik akhir.
Saya lebih suka menggunakan pendekatan Sync Konfigurasi Top-Down karena klien akan menjalankan pemeriksaan bahkan jika master kehilangan koneksi ke anak.
Anda harus mengaktifkan API
fitur di semua node.
# /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
}
Sekarang buat file zona dan salin ke semua node
# /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"
}
Praktik terbaik adalah menggunakan fqdn dari node Anda sebagai nama titik akhir serta nama zona.
Ingat : salin ini zones.conf
ke semua node.
Langkah selanjutnya adalah mendefinisikan semua layanan, templat, dan grup di dalam /etc/icinga2/zones.d/
dan setiap host di host itu sendiri. Konfigurasi di dalam direktori zona itu.
# /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"
}
Pendekatan saya adalah untuk mencegah penggunaan konfigurasi di dalam /etc/icinga2/conf.d
karena saya menambahkan semua hal generik (dan global yang digunakan) /etc/icinga2/zones.d/global
dan hal-hal khusus host di dalam/etc/icinga2/zones.d/fqdnX.of.host
Terakhir, Anda harus menghapus pernyataan include untuk conf.d
# /etc/icinga2/icinga2.conf
[...]
// include_recursive "conf.d"
Itu dia. Pengaturan ini mengharuskan untuk mengelola sertifikat Anda secara manual atau dengan manajemen konfigurasi pilihan Anda. Itu tidak akan menghasilkannya dan tidak menggunakan icinga pki. Tidak melihat alasan mengapa saya harus menggunakan pki alat khusus selama ada alat khusus untuk ini.