2016-03-11 26 views
0

我正在嘗試配置2個客戶端的Icinga2主服務器作爲開始。所以我希望配置像我正在配置主服務器並將配置同步到客戶端。 這已經可以工作了,但是如果客戶失敗了。師父說它仍然在上升,因爲客戶正在檢查自己。 棘手的是我無法使用IP,因爲所有IP都是動態的,我無法爲每個服務器註冊dyn-dns。稍後它將是30-50個服務器。Icinga2集羣?

希望有人能幫助我。

+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', 
    } 

將被傳播到精通(需要PuppetDB):

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

只要木偶大師具有穩定的DNS你將會更新zone.conf。在puppet agent上運行客戶端主機信息後在PuppetDB中註冊。在下一個puppet agent在主站上運行時,它將具有有關該節點的最新信息。

然後你可以從icinga主實施檢查:

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這可能會提供類似的功能。