【问题标题】:Icinga2 Cluster?Icinga2 集群?
【发布时间】:2016-03-11 11:56:48
【问题描述】:

一开始我正在尝试配置具有 2 个客户端的 Icinga2 主服务器。所以我想要像我配置主服务器并将配置同步到客户端的配置。 这已经有效,但是如果客户端出现故障。大师说它还在,因为客户正在检查自己。 棘手的是我不能使用 IP,因为所有 IP 都是动态的,我不能为每个服务器注册一个 dyn-dns。以后会有 30-50 个服务器。

希望有人可以帮助我。

【问题讨论】:

  • 你找到解决办法了吗?

标签: icinga icinga2


【解决方案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',
  }

将被传播到master(需要PuppetDB):

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

只要 puppet master 拥有稳定的 DNS,您就会更新 zone.conf。在puppet agent 在客户端主机信息上运行后,在 PuppetDB 中注册。在下一次 puppet agent 在 master 上运行时,它将获得有关该节点的最新信息。

然后您可以从 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,可能会提供类似的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2013-08-20
    • 1970-01-01
    相关资源
    最近更新 更多