Як налаштувати віддалений клієнт Icinga2 без використання майстра CLI?


11

Я хочу , щоб налаштувати Icinga2 віддалених клієнтів з допомогою ляльок, але вся сторінка офіційної документації переговори про використання їх дивовижний майстер CLI, який вимагає , щоб запустити вручну.

Будь-яке вирішення? Можливо, я повинен просто повернутися до Нагіоса?


Документи, на які ви посилаєтесь, посилаються лише на налаштування GUI для Windows. Це те, про що ви питаєте?
Кіт

1
docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/… ... де останні документи містять розділ, присвячений саме цьому питанню.
TryTryAgain

1
Оновлення: Документація перенесена на нове місце icinga.com/docs/icinga2/latest/doc/06-distributed-monitoring/…
Věroš K.

Відповіді:


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. Останні документи описують два різні способи. Top-Down Remote Command Execution і Top-Down синхронізація конфігурації

Відмінність цього підходу полягає в тому, що віддалене виконання команд запускає всі команди від головного, в той час як налаштування синхронізації синхронізує всі конфігураційні файли, розташовані в /etc/icinga2/zones.dдочірніх вузлах (супутники, а також клієнти) і запускає виконання команд безпосередньо в кінцевій точці.

Я вважаю за краще використовувати підхід Config Sync Top-Down Config, оскільки клієнт буде виконувати перевірки, навіть якщо майстер втрачає зв’язок з дитиною.

Ви повинні включити цю 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/кожного хоста у його власному hosts.conf всередині його директора зон.

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

І останнє, але не менш важливо, вам потрібно видалити оператор include для conf.d

# /etc/icinga2/icinga2.conf

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

Це воно. Цей параметр вимагає керування вашими сертифікатами вручну або за допомогою конфігураційного управління на ваш вибір. Він не генерує його та не використовує pki icinga. Не бачу жодної причини, чому я повинен використовувати специфічну програму pki до тих пір, поки для цього є конкретні інструменти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.