Terraform統合
最終更新日: 03 年 2022 月 XNUMX 日統合とも呼ばれる公式のLogicMonitorTerraformプロバイダーは、LogicMonitorのリソースと対話するために使用できるRESTAPIベースのプロバイダーです。 LogicMonitorとTerraformを使用すると、宣言型テンプレートを使用して環境をモデル化し、Terraformを使用してクラウド環境を管理できます。 インフラストラクチャをコードとして活用して、スケーリング、オンボーディング、およびオフボーディングが制御された反復可能な方法で実行されるようにすることができます。 Terraformを使用して環境に変更を加えると、LogicMonitorは監視するインフラストラクチャの変更と同期を保ちます。 これにより、サービスが必要な監視とともに展開され、システムまたはアプリケーション環境がQAからステージング、本番に昇格するときに監視が自動的に適応します。
LogicMonitorをTerraformと統合するには、LogicMonitorプロバイダーを構築してから、TerraformがLogicMonitorリソースを管理できるように構成する必要があります。 詳細については、Terraformの次のドキュメントを参照してください。 プロバイダ
この統合により、Terraform構成を構築して、コレクター、コレクターグループ、デバイス、およびデバイスグループを管理できます。 TerraformのLogicMonitorプロバイダーを介してAWSアカウントをLogicMonitorに追加することもできます。 このプロセスでは、TerraformがLogicMonitorのリソースと対話できるように、LogicMonitorAPIを使用して認証する必要があります。
Requirements
Terraformと統合するLogicMonitorプロバイダープラグインを構築するには、次のものが必要です。
- Go 1.15
見る https://golang.org/doc/install ダウンロードおよびインストール情報について。 - テラフォーム0.10x
見ます Terraformをダウンロード ダウンロード情報については、HashiCorpからの情報。
見ます Terraformをインストールします インストール情報については、HashiCorpのドキュメント。
LogicMonitorプロバイダープラグインの構築
- 次のリポジトリのクローンを作成します。
$ git clone ssh://[email protected]:logicmonitor/terraform-provider-logicmonitor
- プロバイダーディレクトリに入り、プロバイダーをビルドします。
$ cd terraform-integration/terraform-provider-logicmonitor/
$ make
makeファイルはコードを生成し、バイナリをビルドして、Terraformプラグインディレクトリにコピーします。 これでインストールプロセスは完了です。
LogicMonitorプロバイダーの構成
TerraformがLogicMonitorのリソースと対話できるようにするには、Terraform構成に次の情報を追加する必要があります。
- API ID
- APIキー
- LogicMonitorポータルまたは会社名
- バルク リソース – (オプション) として設定され true を超える可能性のある大量のリソースを操作している間 レート制限。 デフォルト値は false.
注意:
- LogicMonitorポータルまたは会社名はLogicMonitorポータルURLに含まれています。 たとえば、ポータルが「teamintegrations.logicmonitor.com」の場合、LogicMonitorポータルまたは会社名は「teamintegrations」です。
- Bulk Resource を使用して、リソースを一括で処理できます。 これはベータ版の機能であり、パフォーマンスに影響を与える可能性があることに注意してください。
API IDとキーを生成するには、を参照してください。 APIトークン APIトークンの作成の詳細については。
次のいずれかの方法を使用して、必要な引数を設定できます。
- プロバイダーの初期化方法
provider "logicmonitor" {
api_id = var.logicmonitor_api_id
api_key = var.logicmonitor_api_key
company = var.logicmonitor_company
bulk_resource = true //optional//
}
- 環境変数メソッド
export LM_API_ID=<your API ID>
export LM_API_KEY=<your API Key>
export LM_COMPANY=<your portal name>
プロバイダー初期化方式を使用してプロバイダーを構成するには、実行するTerraform構成ファイルに資格情報を指定する必要があります。 クレデンシャルが提供されていない場合、LogicMonitorプロバイダーコードは、環境変数メソッドを使用して、対応するクレデンシャルが使用可能かどうかを確認します。
LogicMonitorTerraformプロバイダーを使用したLogicMonitorリソース管理
LogicMonitorプロバイダープラグインをビルドして構成した後、Terraform構成を使用して次のリソースを管理できます。
- コレクター
- コレクターグループ
- Devices
- デバイスグループ
- AWSアカウント
LogicMonitorTerraformプロバイダーを使用したLogicMonitorコレクター管理
LogicMonitorプロバイダーは、LogicMonitorコレクターの次のインポート機能のサポートを提供します。
- IDでコレクターをインポート
- IDまたは名前でコレクターグループとデバイスをインポートします
- IDまたはフルパスでデバイスグループをインポートする
見る LogicMonitorコレクターについて を参考にしてください。
次の表は、LogicMonitorTerraformプロバイダーがLogicMonitorコレクターを管理するために使用するLogicMonitorAPIエンドポイントとメソッドを示しています。
Use Case | エンドポイント |
インストール/プロビジョニング | コレクターをLMアカウントに追加(ポータル) POST /設定/コレクター/コレクター |
コレクターをコレクターグループに割り当てる | で指定 コレクターグループID コレクターを追加するためのPOSTリクエストで送信される本文のフィールド(/ settings / Collector / Collectors) |
すべてのコレクターの詳細を取得する | /設定/コレクター/コレクターを取得 |
単一のコレクターの詳細を取得する | GET / settings / collector / collectors / {id} |
コレクターを削除* | / settings / collector / collectors / {id}を削除します |
LogicMonitorTerraformプロバイダーを使用したコレクターグループ管理
コレクターを論理ユニットにグループ化すると、アカウント管理が合理化され、エンドユーザーのアクセス許可設定が簡素化され、効率が向上します。
次の表は、LogicMonitorTerraformプロバイダーがLogicMonitorコレクターグループを管理するために使用するLogicMonitorAPIエンドポイントとメソッドを示しています。
Use Case | エンドポイント |
コレクターグループを作成する | POST / settings / Collector / groups |
すべてのコレクターグループの詳細を取得する | GET / settings / collector / groups |
単一のコレクターグループの詳細を取得する | GET / settings / collector / groups / {id} |
コレクターグループを削除する | / settings / collector / groups / {id}を削除します |
LogicMonitorTerraformプロバイダーを使用したデバイス管理
デバイスが追加され、そのデバイスとの通信が確立されると、LogicMonitorはそのデバイスをLogicMonitorアカウントの[リソース]ページに追加します。 デバイス情報は、デバイスの[情報]タブに表示されるシステムプロパティとして保存されます。
検出されたデバイス情報に基づいて、データソースおよびその他のLogicModuleがデバイスに自動的に適用されます。
次の表は、LogicMonitorTerraformプロバイダーがデバイスを管理するために使用するLogicMonitorAPIエンドポイントとメソッドを示しています。
Use Case | エンドポイント |
デバイスを追加 | POST / device / devices |
デバイスをコレクターに割り当てます | デバイスを追加するためのPOSTリクエストで送信される本文のpreferredCollectorIdフィールドで指定されます(/ device / devices) |
すべてのデバイスの詳細を取得する | GET / device / devices |
単一のデバイスの詳細を取得する | GET / device / devices / {id} |
デバイスのプロパティを取得する | GET / device / devices / {deviceId} / properties |
更新デバイス | PUT / device / devices / {id} |
デバイスに割り当てられたコレクターを更新します | デバイスを更新するためのPUTリクエストで送信される本文のpreferredCollectorIdフィールドで指定されます(/ device / devices / {id}) |
デバイスを削除する | / device / devices / {id}を削除します |
LogicMonitorTerraformプロバイダーを使用したデバイスグループ管理
デバイスグループを使用すると、LogicMonitorでデバイスとクラウドリソースを整理して、アラートのしきい値、ダッシュボード、レポート、アラートルーティング、およびデバイスのプロパティを構成する時間を節約できるため、管理が容易になります。
次の表は、LogicMonitorTerraformプロバイダーがデバイスグループを管理するために使用するLogicMonitorAPIエンドポイントとメソッドを示しています。
Use Case | エンドポイント |
デバイスグループを作成する | POST / device / groups |
デバイスグループをコレクターに割り当てます | デバイスグループ(/ device / groups)を追加するためのPOSTリクエストで送信される本文のdefaultCollectorIdフィールドで指定されます |
デバイスグループを削除する | / device / groups / {id}を削除します |
デバイスグループを更新する | UPDATE / device / groups / {id} |
すべてのデバイスグループの詳細を取得する | GET / device / groups |
単一のデバイスの詳細を取得する | GET / device / groups / {id} |
デバイスグループのプロパティを取得する | GET / device / groups / {gid} / properties |
デバイスグループに割り当てられたコレクターを変更する | デバイスを更新するためのPUTリクエストで送信される本文のdefaultCollectorIdフィールドで指定されます(/ device / groups / {id}) |
LogicMonitorTerraformプロバイダーを使用したAWSアカウント管理
AWSアカウントの追加には、次の手順が含まれます。
- 名前とその他の関連情報を提供します。
- アクセス/権限を設定します(AWSでロールを作成するために使用されるaws外部IDを生成します)
- 監視サービスと構成を選択します。
注意: AWS Cloudアカウントの追加、更新、削除に関連するエンドポイントは、v3APIとv4APIで異なります。 すべてのv3エンドポイントは、デバイスグループエンドポイントの追加/更新/削除と同じです(DeviceGroupResourceV3.javaを参照)。 v4エンドポイントはRegistrationEndpoint.javaに含まれています。
次の表は、LogicMonitorTerraformプロバイダーがAWSアカウントを管理するために使用するLogicMonitorAPIエンドポイントとメソッドを示しています。
Use Case | v3エンドポイント | v4エンドポイント |
上記の外部IDの取得/再生成/生成(手順2を参照) | – GET / aws / externalId – AWSFunctionsResourceV3.java | –v3と同じ – AWSFunctionsResourceV4.java |
AWSサービスを追加する | POST / device / groups | – POST / cloudAccounts – RegistrationEndpoint.java |
AWSサービスを更新する | PUT / device / groups / {id} | – PUT / cloudAccounts / {id} – RegistrationEndpoint.java |
AWSサービスを削除する | / device / groups / {id}を削除します | – / cloudAccountsを削除します – RegistrationEndpoint.java |