Puppet4の統合
最終更新日: 02 年 2022 月 XNUMX 日Puppetは、システム管理者がインフラストラクチャのプロビジョニングと構成を管理できるようにするIT自動化ソフトウェアです。 システム管理者は、正しいインフラストラクチャ構成を維持することに加えて、停止を防ぐために監視にさらに依存していることを知っています。 Puppetモジュールはこれを念頭に置いて作成されており、PuppetインフラストラクチャコードでLogicMonitorアカウントも管理できます。 これにより、正しいデバイスプロパティが維持されていること、デバイスが正しいコレクターによって監視されていること、デバイスが適切なデバイスグループに残っていることなどを確認できます。
ご注意:
- このモジュールは、Puppetバージョン3および4と互換性があり、当社の異なる(新しい)バージョンです。 元のモジュール
- このモジュールは、Linuxサーバーとのみ互換性があります。 Windowsの互換性は、将来のリリースで追加される可能性があります。
- このモジュールにはPuppetDBが必要です
モジュールの概要
LogicMonitorのPuppetモジュールは、4つのクラスと4つのカスタムリソースタイプを定義します。
クラス
- ロジックモニター:LogicMonitorAPIとの対話に必要な資格情報の設定を処理します
- logicmonitor :: master:エクスポートされたlm_deviceリソースとlm_devicegroupリソースを収集します。 LogicMonitorAPIと通信します
- logicmonitor :: collector: デバイスの LogicMonitor コレクター管理を処理します。 lm_collector および lm_installer リソースのインスタンスを宣言します
- logicmonitor :: device:エクスポートされたlm_deviceリソースを宣言します
- logicmonitor :: device_group:エクスポートされたlm_device_groupリソースを宣言します
リソースタイプ
- lm_device_group:LogicMonitorデバイスグループの処理の動作を定義します。 エクスポートされたリソースの使用をお勧めします
- lm_device:LogicMonitorコレクターの処理動作を定義します。 logicmonitor :: collectorクラスでのみ使用されます
- lm_コレクター:LogicMonitorコレクターの処理動作を定義します。 logicmonitor :: collectorクラスでのみ使用されます
- lm_installer:LogicMonitorコレクターバイナリインストーラーの処理動作を定義します。 logicmonitor :: collectorクラス内でのみ使用されます
要件
LogicMonitorのPuppetModuleを使用するには、次のものが必要です。
- Ruby1.8.7または1.9.3
- Puppet3.XまたはPuppet4.x
- JSONRubyの宝石 (Ruby 1.9.3にデフォルトで含まれています)
- 構成をPuppetに保存する
- デバイス構成
ストア構成
ストア構成を有効にするには、次のように、puppet.conf ファイルの [master] セクションに storeconfigs = true を追加します。
# /etc/puppet/puppet.conf
[master]
storeconfigs = true
有効にすると、構成情報を保存するためにPuppetDBが必要になります。
デバイス構成
他の LogicMonitor デバイスと同様に、コレクタはデータを収集するためにデバイスと通信する必要があります。 正しいことを確認してください プロパティと認証プロトコル Puppetインストールの一部として構成されます。
LogicMonitorPuppetモジュールのインストール
LogicMonitorのPuppetModuleは、次のXNUMXつの方法のいずれかでインストールできます。
- 使い方 Puppetのモジュールツール
- 使い方 GitHub
Puppetのモジュールツールの使用
Puppet Masterで次のコマンドを実行して、で公開されているLogicMonitor PuppetModuleの最新バージョンをダウンロードしてインストールします。 パペットフォージ:
$ puppet module install logicmonitor-logicmonitor
GitHubの使用
$ cd /etc/puppet/modules
$ git clone git: //github.com/logicmonitor/logicmonitor-puppetv4.git
$ mv logicmonitor-puppet-v4 logicmonitor
スタートガイド
LogicMonitorのPuppetModuleをインストールしたら、次のセクションの使用を開始できます。
Puppet の新規ユーザーの作成
監査ログで Puppet によって行われた変更を追跡するために、Puppet ノード内で排他的に使用する LogicMonitor アカウントで管理者権限を持つ新しいユーザーを作成することをお勧めします。 このユーザー API トークンをプロビジョニングする必要があります。
- クラス:logicmonitor(modules /logicmonitor/manifests/init.pp)
これは LogicMonitor モジュールの最上位クラスです。 Puppet Master でのみ定義する必要があります。 その目的は、すべての子クラスで使用される LogicMonitor 資格情報を設定することです。
説明 | 入力 | |
アカウント | LogicMonitorアカウント名。 たとえば、https://mycompany.logicmonitor.comにログインする場合、アカウントは「mycompany」である必要があります | 文字列 |
アクセスID | デバイス、グループ、およびコレクターを管理するためのアクセス権を持つLogicMonitorユーザーのAPIアクセスID。 Puppetによって実行されたアクションは、このAPIアクセスIDに関連付けられた監査ログに表示されます。 Puppetアカウント専用のユーザーを作成することをお勧めします。 | 文字列 |
アクセスキー | LogicMonitorユーザーPuppetに関連付けられたAPIアクセスキーは、に代わって変更を加えます。 | 文字列 |
- クラス: logicmonitor::master (modules/logicmonitor/manifests/master.pp)
マスタークラスは、グループおよびデバイス管理のために、LogicMonitorモジュールとLogicMonitorアカウント間の通信を可能にします。 このクラスは、 コレクタ lm_device および lm_devicegroup エクスポートされたリソース用。 これにより、競合が回避され、LogicMonitor API と通信するための単一の連絡先が提供されます。 このクラスは、単一のデバイスで明示的に宣言する必要があります。
ご注意: logicmonitor::collector および logicmonitor::master クラスを持つすべてのデバイスは、発信 https 要求を行うことができる必要があります。
パラメータ:なし
- クラス:logicmonitor :: collector(modules / logicmonitor / manifests / collector.pp)
このクラスは、指定されたノードでの LogicMonitor コレクターの作成、ダウンロード、およびインストールを管理します。
- コレクターノードの唯一の絶対的な要件は、それがLinuxであり、ポート443を介して発信SSL接続を確立できることです。
- コレクターシステムには少なくとも1GのRAMが搭載されていることをお勧めします
- コレクターが100を超えるデバイスのデータを収集する場合は、そのコレクター専用のマシンを使用することをお勧めします。
説明 | 入力 | |
インストールディレクトリ | LogicMonitorコレクターをインストールするためのパス。 | 有効なディレクトリパス。 デフォルトは「/ usr / local / logicmonitor」です |
- クラス:logicmonitor :: device(modules /logicmonitor/manifests/device.pp)
このクラスは、LogicMonitorアカウントにデバイスを追加するために使用されます。 Puppetを介して管理されるデバイスでは、デバイス定義で指定されていないプロパティが削除されます。
説明 | 入力 | |
コレクタ | コレクターマシンの完全修飾ドメイン名。 これは、コレクターマシンでhostname-fを実行することで見つけることができます。 | ストリング。 デフォルトなし(必須) |
hostname | ノードのIPアドレスまたは完全修飾ドメイン名。 これは、コレクターがこのデバイスに到達する方法です。 | ストリング。 デフォルトは $ fqdn |
DISPLAY_NAME | LogicMonitorアカウントに表示する人間が読める形式の名前。 例:「dev2.den1」 | ストリング。 デフォルトは $ fqdn |
説明 | ホストの長いテキストの説明。 これは、LogicMonitorアカウントのデバイスにカーソルを合わせると表示されます。 | ストリング。 デフォルトなし(オプション) |
アラートを無効にする | デバイスのアラートをオンまたはオフにします。 親グループが disable_alerting = true に設定されている場合、子デバイスのアラートもオフになります。 | ブール値、デフォルトは false |
グループヘッド | デバイスがメンバーになる必要があるグループのリスト。 各グループは、そのフルパスを表す文字列です。 例:「/ linux / production」 | リスト。 デフォルトなし(オプション) |
プロパティ | デバイスに設定するプロパティのハッシュ。 各エントリは「propertyName」=>「propetyValue」である必要があります。 例: {“mysql.port” => 6789, “mysql.user” => “dba1”} | ハッシュ。 デフォルトなし(オプション) |
class {'logicmonitor:: device':
collector => "qa1.domain.com",
hostname => "10.171.117.9",
groups => ["/Puppetlabs", "/Puppetlabs/Puppetdb"],
properties => {"snmp.community" => "Puppetlabs"}.
description => "This device hosts the PuppetDB instance for this deployment",
}
class {'logicmonitor::device':
collector => $fqdn,
display_name => "MySQL Production Host 1",
groups => ["/Puppet", "/production", "/mysql"],
properties => {"mysql.port" => 1234},
}
デバイスグループの追加:
タイプ: lm_device_group デバイスグループは、を使用して追加する必要があります エクスポートされたリソース 衝突を防ぐために。 logicmonitor::master クラスが含まれているノードと同じノードからデバイス グループを追加することをお勧めします。 デバイスは、ゼロ、XNUMX つ、または複数のデバイス グループに含めることができます。 デバイス グループは、Logic Monitor デバイスの表示方法と管理方法を整理するために使用され、コレクターを必要としません。 デバイス グループ レベルで設定されたプロパティは、グループに追加されたすべてのデバイスに継承されます。
説明 | 入力 | |
フルパス | ホストグループのフルパス。 たとえば、親グループ「foo」を持つデバイスグループ「bar」のfull_pathは「/ foo / bar」になります。 | 文字列(必須) |
確保 | 人形 確保 パラメータに一致する最初のデバイスのリモートコントロール URL を返します。 | 有る無し。 デフォルトなし (必須) |
アラートを無効にする | グループのアラートのオン/オフを切り替えます。 desirable_alerting が true の場合、すべての子グループとデバイスでアラートが無効になります | ブール値。 デフォルトはTrueです。 |
プロパティ | デバイス グループに設定するプロパティのハッシュ。 各エントリは「propertyName」=>「propertyValue」である必要があります。 例: {“mysql.user” => “dba1”}。 プロパティはすべての子グループとホストに継承されます | ハッシュ、デフォルトなし(オプション) |
説明 | デバイスグループの長いテキストの説明。 これは、LogicMonitorアカウントのグループにカーソルを合わせると表示されます。 | ストリング。 デフォルトなし(オプション) |
例
コレクターをノードに追加するには:
include logicmonitor::collector
コレクターをインストールする特定の場所を指定する場合:
class{"logicmonitor::collector":
install_dir => $install_dir,
}
デバイスグループのプロパティを追加および編集するには、以下の例のlm_devicegroupを使用します。
@@lm_device_group{"/parent/child/grandchild/greatgrandchild":
ensure => present,
disable_alerting => false,
properties => {"snmp.community" => "n3wc0mm", "mysql.port" => 9999, "fake.pass" => "12345"}, description => "This is the description",
}
動作中のモジュールのその他の例については、logicmonitor-puppet-v4 /README.mdを確認してください。