CLIウィザードを使用せずにIcinga2リモートクライアントをセットアップする方法


11

Icinga2リモートクライアントをPuppet経由でセットアップしたいのですが、公式ドキュメントのページ全体で、素晴らしい CLIウィザードの使用について説明しています。手動で実行する必要があります。

回避策はありますか?たぶん、Nagiosに戻るべきでしょうか?


リンクするドキュメントは、Windows用のGUIセットアップのみを参照します。これはあなたが尋ねているものですか?
キース14年

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が書いたようです。最新のドキュメントでは、2つの異なる方法について説明しています。 トップダウンリモートコマンド実行およびトップダウン構成同期

このアプローチの違いは、リモートコマンドの実行がマスターからすべてのコマンドをトリガーし、構成の同期/etc/icinga2/zones.d子ノード(衛星とクライアント)にあるすべての構成ファイルを同期し、エンドポイントでコマンドの実行を直接トリガーすることです。

マスターが子への接続を失ってもクライアントがチェックを実行するため、トップダウン構成同期アプローチを使用することを好みます。

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

最後になりましたが、conf.dのincludeステートメントを削除する必要があります

# /etc/icinga2/icinga2.conf

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

それでおしまい。このセットアップでは、証明書を手動で管理するか、選択した構成管理で管理する必要があります。生成されず、icinga pkiを使用していません。このための特定のツールがある限り、ツール固有のPKIを使用する理由がわからない。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.