ヘルプ 管理 開発 Site24x7 Terraform

Site24x7 Terraform

Terraformはクラウドリソースを簡単に効果的に作成、編集、管理を行えるインフラストラクチャコードツールです。次の手順で、Terraformを使用してSite24x7リソースをコードを通して管理できます。Terraformで、Site24x7のリソースの追加、更新、削除、管理者関連の更新を行えます。

目次

Terraform使用の利点

  • エラーフリーデプロイの確保
  • フォールトトレランスのための各クラウド展開の処理
  • 特定のバージョンの取得と、自身環境の作成
  • テスト環境の容易な作成と削除
  • デプロイスピードの向上
  • 安全で効果的なビルド、バージョン、インフラの変更
  • 構成レベルの問題のトレースと収集

Site24x7でサポートしているリソース

Terraformで、次のSite24x7リソースの作成、編集、削除を行えます。

3rdパーティ連携

データソース

Site24x7 OAuth認証情報生成手順

Site24x7 REST APIではOAuth 2.0を使用して要求の認可と認証を行います。
Site24x7 OAuth認証情報(SITE24X7_OAUTH2_CLIENT_ID、SITE24X7_OAUTH2_CLIENT_SECRET、SITE24X7_OAUTH2_REFRESH_TOKEN)の生成方法は次のとおりです。

  1. https://api-console.zoho.com/にアクセスします。
  2. [Self Client]→[Client Sercret]を選択します。
  3. Client IDとClient Secretをコピーして次のcurlコマンドの指定の箇所にペーストします。
  4. [Generate Code]をクリックし、Scope項目に次のスコープをペースト後、[CREATE]をクリックします。
    Site24x7.account.All,Site24x7.admin.All,Site24x7.reports.All,Site24x7.operations.All,Site24x7.msp.All,Site24x7.bu.All .
  5. [COPY]をクリックして生成されたコードをコピーし、次のコマンドの指定の箇所にペースト後に実行します。
    curl https://accounts.zoho.com/oauth/v2/token
    -X POST
    -d "client_id=<CLIENT_ID>"
    -d "client_secret=<CLIENT_SECRET>"
    -d "code=<GENERATED_CODE>"
    -d "grant_type=authorization_code" --insecure
  6. 次のような応答が表示されます。
    {"access_token":"1000.dfsewerwe33.rterert23","refresh_token":"1000.abdfdf.32dsfsdf","token_type":"Bearer","expires_in":3600}
  7. CLIENT_ID、CLIENT_SECRET、refresh_tokenをコピーし、Terraform構成ファイルの属性「oauth2_client_id、oauth2_client_secret、oauth2_refresh_token」にそれぞれペーストします。
OAuth生成手順内のドメイン名は、自身のデータセンターにより変わります。
  • アメリカ (US) - https://accounts.zoho.com、https://api-console.zoho.com
  • ヨーロッパ (EU) - https://accounts.zoho.eu、https://api-console.zoho.eu
  • 中国 (CN) - https://accounts.zoho.com.cn、https://api-console.zoho.com.cn
  • インド (IN) - https://accounts.zoho.in、https://api-console.zoho.in
  • オーストラリア (AU) - https://accounts.zoho.com.au、https://api-console.zoho.com.au

TerraformでのSite24x7リソースの追加方法

TerraformとSite24x7プロバイダーのブートストラップ

次のコンテンツをTerraform構成ファイルに追加して、TerraformとSite24x7プロバイダーをブートストラップします。

terraform {
required_version = "~> 0.15.0"
required_providers {
site24x7 = {
source = "site24x7/site24x7"
version = "1.0.10"
}
}
}

bash環境のSite24x7 OAuth認証情報の設定

設定を適用する前にSite24x7 OAuth認証情報をエクスポートする必要があります。そのために、次のコマンドを実行します。

$ export
SITE24X7_OAUTH2_CLIENT_ID=""
$ export
SITE24X7_OAUTH2_CLIENT_SECRET=""
$ export
SITE24X7_OAUTH2_REFRESH_TOKEN=""

TerraformでのSite24x7プロバイダー設定

Terraformで次のコマンドを実行して、Site24x7をプロバイダーとして設定します。

provider "site24x7" {
data_center = "US"
retry_min_wait = 1
retry_max_wait = 30
max_retries = 4
}
data_center

アカウントに該当するデータセンターを指定します。例えば、アメリカデータセンターの場合、値はdata_center="US"となります。

リージョン データセンター
アメリカ (.com) US
ヨーロッパ (.eu) EU
インド (.in) IN
オーストラリア (.au) AU
中国 (.cn) CN
oauth2_client_id

属性が空欄の場合、クライアントIDは、環境変数"SITE24X7_OAUTH2_CLIENT_ID"で検索されます。

oauth2_client_secret

属性が空欄の場合、クライアントシークレットは、環境変数"SITE24X7_OAUTH2_CLIENT_SECRET"で検索されます。

oauth2_refresh_token

属性が空欄の場合、リフレッシュトークンは、環境変数"SITE24X7_OAUTH2_REFRESH_TOKEN"で検索されます。

retry_min_wait

Site24x7 APIリクエストに失敗してリトライするまでの最短待機時間を秒単位で指定します。

retry_max_wait

Site24x7 APIリクエストが失敗してリトライするまでの最大待機時間を秒単位で指定します。

max_retries

アクションが中断されるまで、Site24x7 APIリクエストを試行する最大数を指定します。

Webサイトリソースの作成

Site24x7で監視を作成して、Webサイト、インフラストラクチャ、ネットワーク機器のパフォーマンスとメトリックを監視できます。

例として、環境のWebサイト監視を作成するには、次の設定をTerraformファイルにペーストします。

{

display_name = "Example Monitor"
website = "https://www.example.com"
check_frequency = "1"
location_profile_name = "North America"

}
  • display nameには、Webサイト監視の名前を指定します。
  • websiteには、監視するURLを指定します。
  • Check frequencyには、ポーリングを行う頻度を指定します。
  • location profileには、リソースを監視するロケーションを指定します。"location_profile_id"または"location_profile_name"のいずれかで指定できます。いずれも指定されていないと、エンドポイント"/api/location_profiles endpoint"(https://www.site24x7.com/help/api/#list-of-all-location-profiles)で使用されている最初のプロファイルが返されます。

Terraformでの設定の適用

コマンドterraform initを実行して、プロバイダーを開始した後、コマンドterraform applyを実行して、Terraformファイルに定義されている設定を適用します。Terraformで次のアクションが行われます。

# site24x7_website_monitor.website_monitor_example will be created
+ resource "site24x7_website_monitor"
"website_monitor_example" {
+ check_frequency = "1"
+ display_name = "Example Monitor"
+ http_method = "G"
+ id = (will be known after applying)
+ location_profile_id = (will be known after applying)
+ location_profile_name = "North America"
+ match_regex_severity = 2
+ matching_keyword_severity = 2
+ notification_profile_id = (will be known after applying)
+ response_headers_severity = 2
+ tag_ids = (will be known after applying)
+ threshold_profile_id = (will be known after applying)
+ timeout = 10
+ unmatching_keyword_severity = 2
+ use_name_server = true
+ user_group_ids = (will be known after applying)
+ website = "https://www.example.com"
}
Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.

Enter a value: yes
site24x7_website_monitor.website_monitor_example: Creating...
site24x7_website_monitor.website_monitor_example: Creation complete after 4s [id=306947000028195005]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Terraformで、Webサイト監視が作成されますが、その他の変更は行われません。Terraformで適用設定が行われるごとに、以前に操作されたTerraformのリソース状態とテンプレートを比較して更新します。初めてTerraformで適用する場合、既存の設定は変更されません。

Site24xにログイン後、[ホーム]→[監視]→[監視名]を選択することで、作成した監視を表示できます。

監視をインポートして、設定を生成するには、こちらのGithubにアクセスしてください。

GithubやSite24x7コミュニティフォーラムで、ご希望の新機能についてリクエストできます。