Кластер Icinga2?

Я пытаюсь настроить главный сервер Icinga2 с двумя клиентами для начала. Итак, я хочу, чтобы конфигурация была такой же, как я настраиваю Мастер и синхронизирую Конфигурации с Клиентами. Это уже работает, но если клиент выйдет из строя. Мастер говорит, что это все еще актуально, потому что клиенты проверяют себя. Сложность в том, что я не могу работать с IP-адресами, потому что все IP-адреса динамические, и я не могу зарегистрировать dyn-dns для каждого сервера. Позже это будет 30-50 серверов.

Надеюсь, кто-нибудь может мне помочь.


person Zunno    schedule 11.03.2016    source источник
comment
Вы нашли какое-то решение для этого?   -  person Vikas Tiwari    schedule 25.02.2017


Ответы (1)


Вы можете использовать puppet-icinga2, который позволяет собирать информацию об узлах. На стороне клиента вы должны создать экспортируемый ресурс (кукольный код следует):

  @@icinga2::object::host { $::fqdn:
    display_name => $::fqdn,
    address      => $::ipaddress_eth0,
    check_command => 'hostalive',
    target        => "/etc/icinga2/zones.d/${::domain}/hosts.conf",
    zone          => $::fqdn,
  }

  @@::icinga2::object::endpoint { "$::fqdn":
      host => "$::ipaddress_eth0",
  }

  @@::icinga2::object::zone { "$::fqdn":
      endpoints => [ "$::fqdn", ],
      parent    => 'master',
  }

который будет передан мастеру (требуется PuppetDB):

  Icinga2::Object::Host <<| |>> { }
  Icinga2::Object::Endpoint <<| |>> { }
  Icinga2::Object::Zone <<| |>> { }

Пока у мастера марионеток стабильный DNS, вы обновите zone.conf. После puppet agent запуска на клиентском хосте информация о хосте регистрируется в PuppetDB. При следующем puppet agent запуске на мастере будет актуальная информация об узле.

Затем вы можете реализовать проверку из icinga master:

apply Service "ping" to Host {
  import "generic-service"

  check_command = "ping"
  zone = "master" //execute check from master zone
  assign where "linux-server" in host.groups
}

Обратите внимание, что существуют и другие средства автоматизации, такие как Ansible, которые могут предлагать аналогичные функции.

person Tombart    schedule 01.03.2017