Icinga2群集?

时间:2016-03-11 11:56:49

标签: icinga icinga2

我正在尝试配置一个包含2个客户端的Icinga2主服务器。所以我希望配置就像我正在配置主服务器并将配置同步到客户端。 这已经有效,但是如果客户端出现问题。师父说它还在,因为客户正在检查自己。 棘手的是我无法使用IP,因为所有IP都是动态的,我无法为每个服务器注册dyn-dns。稍后它将是30-50台服务器。

希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用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',
  }

将传播到master(需要PuppetDB):

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

只要木偶大师拥有稳定的DNS,您就会更新zone.conf。在puppet agent运行客户端主机信息后,在PuppetDB中注册。在master上运行下一个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,可能会提供类似的功能。