Terraformはクラウドリソースを簡単に効果的に作成、編集、管理を行えるインフラストラクチャコードツールです。次の手順で、Terraformを使用してSite24x7リソースをコードを通して管理できます。Terraformで、Site24x7のリソースの追加、更新、削除、管理者関連の更新を行えます。
データソース
Site24x7 OAuth認証情報生成手順
Site24x7 REST APIではOAuth 2.0を使用して要求の認可と認証を行います。
Site24x7 OAuth認証情報(SITE24X7_OAUTH2_CLIENT_ID、SITE24X7_OAUTH2_CLIENT_SECRET、SITE24X7_OAUTH2_REFRESH_TOKEN)の生成方法は次のとおりです。
- https://api-console.zoho.com/にアクセスします。
- [Self Client]→[Client Sercret]を選択します。
- Client IDとClient Secretをコピーして次のcurlコマンドの指定の箇所にペーストします。
- [Generate Code]をクリックし、Scope項目に次のスコープをペースト後、[CREATE]をクリックします。
Site24x7.account.All,Site24x7.admin.All,Site24x7.reports.All,Site24x7.operations.All,Site24x7.msp.All,Site24x7.bu.All .
- [COPY]をクリックして生成されたコードをコピーし、次のコマンドの指定の箇所にペースト後に実行します。
- 次のような応答が表示されます。
{"access_token":"1000.dfsewerwe33.rterert23","refresh_token":"1000.abdfdf.32dsfsdf","token_type":"Bearer","expires_in":3600}
- 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コミュニティフォーラムで、ご希望の新機能についてリクエストできます。