Bagaimana cara mengatur klien jarak jauh Icinga2 tanpa menggunakan wizard CLI?


11

Saya ingin mengatur klien jarak jauh Icinga2 melalui Wayang, tetapi seluruh halaman dokumentasi resmi berbicara tentang menggunakan wizard CLI mereka yang mengagumkan , yang harus dijalankan secara manual.

Ada solusi? Mungkin aku harus kembali ke Nagios?


Dokumen yang Anda tautkan hanya merujuk pada pengaturan GUI untuk Windows. Apakah ini yang Anda tanyakan?
Keith

1
docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/… ... di mana dokumen terbaru memiliki bagian yang didedikasikan untuk pertanyaan ini.
TryTryAgain

1
Pembaruan: Dokumentasi dipindahkan ke lokasi baru icinga.com/docs/icinga2/latest/doc/06-distributed-monitoring/…
Věroš K.

Jawaban:


16

Saya memiliki masalah yang sama. Inilah yang saya gunakan, setelah mengekstraksi logika dari kode wizard icinga2 node.

Variabel yang Anda butuhkan:

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

Kode:

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

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.dnode 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 APIfitur 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.confke 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.dkarena saya menambahkan semua hal generik (dan global yang digunakan) /etc/icinga2/zones.d/globaldan 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.