監視サービスが 2024年12月25日に製品終息(EOL)を迎えるため、後継の監視サービスへのアラーム移行が必要です。
本書では、現行の監視サービス(以降、旧監視サービスと称す)から後継の監視サービス(以降、新監視サービスと称す)へのアラーム移行手順を説明します。
IaaSポータル、またはAPIを実行して作成したアラームを新監視サービスに移行する手順を示します。
スタックのテンプレートから作成したアラームを移行する場合は、移行手順(スタック定義のアラーム)を参照してください。
1. 事前準備
作業実施前に以下を確認してください。
全体管理者ロール(cpf_admin)、または設計・構築者ロール(cpf_systemowner)に属するユーザーで手順を実施すること
利用者管理サービスのAPIを実行してトークンを取得すること
APIを実行するツール(curlなど)が利用可能であること
監視サービスのAPIエンドポイントを確認すること
2. アラーム・集合体のデータエクスポート
環境変数を設定します。
# ENDPOINT=<監視サービスのAPIエンドポイント>
# TOKEN=<取得したトークン>
アラームデータを取得し、 alarms.json
として保存します。
# curl -H "X-Auth-Token: ${TOKEN}" "${ENDPOINT}/v3.0/alarms" -o alarms.json
同様に集合体データを取得し、 aggregates.json
として保存します。
# curl -H "X-Auth-Token: ${TOKEN}" "${ENDPOINT}/v3.0/aggregates" -o aggregates.json
3. 集合体の登録
aggregates.json
から移行するAggregateを1件抽出して new_aggregate.json
に保存します。
{
"Aggregate": {
"ObjectMap": {},
"Name": "テスト集合体",
"Source": "user",
"ObjectList": [
"6dde0be4-f03b-40a4-a173-b770f51f9acb"
],
"Type": "instance",
"Id": "AUTO_CREATE_gst5cj1i02oh2n8",
"Metadata": {}
}
}
注:以下の集合体データは移行不要です。
openstack
が設定されているデータ)ObjectList
が空のリストになっているデータ(仮想サーバが削除済み)続いて、最上位プロパティ名を Aggregate
から aggregate
に変更し、 Name
、 ObjectList
および Metadata
以外の新監視サービスで廃止された項目を削除します。
Id
の項目も削除しますが、後述のアラーム登録手順で使用するためメモ帳などに控えてください。
{
"aggregate": {
"Name": "テスト集合体",
"ObjectList": [
"6dde0be4-f03b-40a4-a173-b770f51f9acb"
],
"Metadata": {
"test_field": "test_value"
}
}
}
以下の対応表を基に、プロパティ名を変更します。
旧版のパラメータ名 | 新版のパラメータ名 | 説明 |
---|---|---|
Name | name | 集合体名 |
ObjectList | object_list | 仮想サーバIDリスト |
Metadata | description | 説明 |
{
"aggregate": {
"name": "テスト集合体",
"object_list": [
"6dde0be4-f03b-40a4-a173-b770f51f9acb"
],
"description": {
"test_field": "test_value"
}
}
}
値を変更します。対象のプロパティと変更する内容は以下のとおりです。
項目 | 内容 | 変更点 |
---|---|---|
name | 集合体名 | 集合体名に日本語が含まれている場合は、半角英数字記号を使用してください。 |
description | 説明 | JSON形式から改行を含まない文字列に変更してください。 |
{
"aggregate": {
"name": "test_aggregate",
"object_list": [
"6dde0be4-f03b-40a4-a173-b770f51f9acb"
],
"description": "test_field : test_value"
}
}
以下のコマンドを実行して new_aggregate.json
の集合体を新監視サービスに登録します。
# curl -i -X POST -H "X-Auth-Token: ${TOKEN}" -d @new_aggregate.json "${ENDPOINT}/v4.0/aggregates"
レスポンスのHTTPステータスが 201
であることを確認します。
レスポンスボディの id
(新監視サービスの集合体ID)と、前の手順で控えた旧監視サービスの集合体IDの組み合わせをメモ帳などに控えてください。
旧:AUTO_CREATE_gst5cj1i02oh2n8
新:eb43e291-86be-4da3-9c7b-60c19e076340
手順3を移行する集合体の件数分、繰り返し実施してください。
4. アラームの登録
alarms.json
から移行対象のアラームを1件抽出し、新しいファイル new_alarm.json
にコピーします。
{
"EventRule": {
"IntervalDuration": "60",
"Severity": "critical",
"AggregationFunction": "average",
"EventRuleId": "gst5cj1i02oh2n8",
"ProjectId": "fc8efa6a46464948bce68a844dae267b",
"Threshold": -1.0,
"ComparisonFunction": "above",
"EventRuleScope": "instance",
"Status": "enabled",
"AggregateId": "AUTO_CREATE_gst5cj1i02oh2n8",
"ConfigurationStatus": "completed",
"TriggerRuleType": "instance",
"IntervalCount": 1,
"MetricType": "cpu.usage",
"EventRuleType": "static",
"IntervalsWithException": 1,
"Module": "alarms",
"Name": "cpu_test",
"Mode": "alert",
"AlarmAction": [
"mail"
]
}
}
注:Modeプロパティに event
が設定されているアラームについては、移行手順(スタック定義のアラーム)を参照してください。
続いて、 new_alarm.json
の最上位プロパティ名を EventRule
から alarm
に変更し、新監視サービスで廃止された項目を削除します。対象の項目は以下のとおりです。
{
"alarm": {
"IntervalDuration": "60",
"Severity": "critical",
"AggregationFunction": "average",
"ProjectId": "fc8efa6a46464948bce68a844dae267b",
"Threshold": -1.0,
"ComparisonFunction": "above",
"Status": "enabled",
"AggregateId": "AUTO_CREATE_gst5cj1i02oh2n8",
"MetricType": "cpu.usage",
"Name": "cpu_test",
"AlarmAction": [
"mail"
]
}
}
new_alarm.json
のプロパティ名を、以下の対応表に沿って変更します。
旧版のパラメータ名 | 新版のパラメータ名 | 説明 |
---|---|---|
IntervalDuration | interval_duration | 監視間隔 |
Severity | severity | アラームレベル |
AggregationFunction | aggregation_function | 集計関数 |
ProjectId | project_id | プロジェクトID |
Threshold | threshold | 比較値(しきい値や判定値) |
ComparisonFunction | comparison_function | 比較式 |
Status | enabled | アラームの状態 |
MetricType | metric_type | 監視項目種別 |
Name | name | アラーム名 |
AlarmAction | alarm_action | アラームアクション |
{
"alarm": {
"interval_duration": "60",
"severity": "critical",
"aggregation_function": "average",
"project_id": "fc8efa6a46464948bce68a844dae267b",
"threshold": -1.0,
"comparison_function": "above",
"enabled": "enabled",
"AggregateId": "AUTO_CREATE_gst5cj1i02oh2n8",
"metric_type": "cpu.usage",
"name": "cpu_test",
"alarm_action": [
"mail"
]
}
}
new_alarm.json
の値を変更します。対象のプロパティと変更する内容は以下のとおりです。
項目 | 内容 | 変更点 |
---|---|---|
interval_duration | 監視間隔 | 秒を分単位に変換し、1m のように単位(m)を付与します。数値は正数を指定してください。(小数は指定不可) |
aggregation_function | 集計関数 | average を使用している場合は、avg に変更してください。 |
comparison_function | 比較式 | equal を使用している場合は、below または above に変更し、thresholdの値を調整してください。 |
enabled | 有効/無効 | enabled は true 、disabled は false に変更してください。 |
metric_type | 監視項目種別 | 以下の監視種別を使用している場合は、値を変更してください。cpu.usage → instance.cpu.usage memory.usage → instance.memory.usage |
name | アラーム名 | アラーム名に日本語が含まれている場合は、半角英数字記号を使用してください。 |
{
"alarm": {
"interval_duration": "1m",
"severity": "critical",
"aggregation_function": "avg",
"project_id": "fc8efa6a46464948bce68a844dae267b",
"threshold": -1.0,
"comparison_function": "above",
"enabled": true,
"AggregateId": "AUTO_CREATE_gst5cj1i02oh2n8",
"metric_type": "instance.cpu.usage",
"name": "cpu_test",
"alarm_action": [
"mail"
]
}
}
新監視サービスで新たに追加されたプロパティを設定します。
アラームに AggregateId プロパティが存在しない場合
以下のプロパティを追加してください。
"target_type" : "project",
"object_id" : "[プロジェクトID]"
{
"alarm": {
"interval_duration": "1m",
"severity": "critical",
"aggregation_function": "avg",
"project_id": "fc8efa6a46464948bce68a844dae267b",
"threshold": -1.0,
"comparison_function": "above",
"enabled": true,
"metric_type": "instance.cpu.usage",
"name": "cpu_test",
"alarm_action": [
"mail"
],
"target_type": "project",
"object_id": "fc8efa6a46464948bce68a844dae267b"
}
}
アラームに AggregateId プロパティが存在する場合
手順3で控えた集合体IDの組み合わせを確認し、AggregateId
に対応する新監視サービスの集合体IDを確認します。
旧:AUTO_CREATE_gst5cj1i02oh2n8
新:eb43e291-86be-4da3-9c7b-60c19e076340
以下のプロパティを追加し、AggregateId プロパティを削除します。
object_id
には、上記で確認した新監視サービスの集合体IDを指定します。
"target_type" : "aggregate",
"object_id" : "eb43e291-86be-4da3-9c7b-60c19e076340"
{
"alarm": {
"interval_duration": "1m",
"severity": "critical",
"aggregation_function": "avg",
"project_id": "fc8efa6a46464948bce68a844dae267b",
"threshold": -1.0,
"comparison_function": "above",
"enabled": true,
"metric_type": "instance.cpu.usage",
"name": "cpu_test",
"alarm_action": [
"mail"
],
"target_type": "aggregate",
"object_id": "a5f78e48-7d86-451c-99c8-df5234ac7504"
}
}
そのほかの任意項目については、APIリファレンスのCreate a new Alarmを参照し必要に応じて設定してください。
5. 以下のコマンドを実行して new_alarm.json
のアラームを新監視サービスに登録します。
# curl -i -X POST -H "X-Auth-Token: ${TOKEN}" -d @new_alarm.json "${ENDPOINT}/v4.0/alarms"
レスポンスのHTTPステータスが 201
であることを確認します。
上記の手順をアラームの件数分、繰り返し実施してください。
アラーム登録後に監視が開始されるため、監視条件によってはアラームアクション(メール通知やオートスケール)が即時実行されることがあります。
アラームの履歴は移行対象外です。
スタックのテンプレートに定義したアラームを移行する手順を示します。
1. スタック定義(yamlファイル)の修正
変更前のアラーム設定例
alarm:
type: OS::AppFormix::Alarm
properties:
alarm_name: 'alarm_vm_cpu'
alarm_metric: 'cpu.usage'
aggregation_function: 'average'
comparison_function: 'above'
duration: 60
num_intervals: 1
num_exception_intervals: 1
threshold: 80
aggregate_id: { get_param: "OS::stack_id" }
notification_url: { get_attr: [scaleup_policy, signal_url] }
アラームのリソース種別 OS::AppFormix::Alarm
を新しいリソース種別 OS::PMM::Alarm
に変更します。
※ PMMは、新監視サービス(Performance Metrics Monitor)の略称です。
また、新監視サービスで廃止された項目を削除します。対象の項目は以下のとおりです。
alarm:
type: OS::PMM::Alarm
properties:
alarm_name: 'alarm_vm_cpu'
alarm_metric: 'cpu.usage'
aggregation_function: 'average'
comparison_function: 'above'
duration: 60
threshold: 80
aggregate_id: { get_param: "OS::stack_id" }
notification_url: { get_attr: [scaleup_policy, signal_url] }
さらに、プロパティ名を以下の対応表に沿って変更します。
OS::AppFormix::Alarm | OS::PMM::Alarm | 説明 |
---|---|---|
alarm_name | name | アラーム名 |
alarm_metric | metric_type | 監視項目種別 |
duration | interval_duration | 監視間隔 |
notification_url | autoscale_url | オートスケールURL |
alarm:
type: OS::PMM::Alarm
properties:
name: 'alarm_vm_cpu'
metric_type: 'cpu.usage'
aggregation_function: 'average'
comparison_function: 'above'
interval_duration: 60
threshold: 80
autoscale_url: { get_attr: [scaleup_policy, signal_url] }
値を変更します。対象のプロパティと変更する内容は以下のとおりです。
項目 | 内容 | 変更点 |
---|---|---|
name | アラーム名 | アラーム名に日本語が含まれている場合は、半角英数字記号を使用してください。 |
interval_duration | 監視間隔 | 秒を分単位に変換し、1m のように単位(m)を付与します。数値は正数を指定してください。(小数は指定不可) |
aggregation_function | 集計関数 | average を使用している場合は、avg に変更してください。 |
comparison_function | 比較式 | equal を使用している場合は、below または above に変更し、thresholdの値を調整してください。 |
metric_type | 監視項目種別 | 以下の監視種別を使用している場合は、値を変更してください。cpu.usage → instance.cpu.usage memory.usage → instance.memory.usage |
alarm:
type: OS::PMM::Alarm
properties:
name: 'alarm_vm_cpu'
metric_type: 'instance.cpu.usage'
aggregation_function: 'avg'
comparison_function: 'above'
interval_duration: '1m'
threshold: 80
autoscale_url: { get_attr: [scaleup_policy, signal_url] }
新監視サービスで新たに追加されたプロパティを設定します。
project_id プロパティが存在する場合
以下のプロパティを追加し、project_id プロパティは削除してください。
target_type: 'project'
object_id: { get_param: "OS::project_id" }
alarm:
type: OS::PMM::Alarm
properties:
name: 'alarm_vm_cpu'
target_type: 'project'
object_id: { get_param: "OS::project_id" }
metric_type: 'instance.cpu.usage'
aggregation_function: 'avg'
comparison_function: 'above'
interval_duration: '1m'
threshold: 80
autoscale_url: { get_attr: [scaleup_policy, signal_url] }
aggregate_id プロパティが存在する場合
以下のプロパティを追加し、aggregate_id プロパティは削除してください。
target_type: 'stack'
object_id: { get_param: "OS::stack_id" }
alarm:
type: OS::PMM::Alarm
properties:
name: 'alarm_vm_cpu'
target_type: 'stack'
object_id: { get_param: "OS::stack_id" }
metric_type: 'instance.cpu.usage'
aggregation_function: 'avg'
comparison_function: 'above'
interval_duration: '1m'
threshold: 80
autoscale_url: { get_attr: [scaleup_policy, signal_url] }
最後に、アラームのアクション alarm_action: ['autoscale']
を追加します。
alarm:
type: OS::PMM::Alarm
properties:
name: 'alarm_vm_cpu'
target_type: 'stack'
object_id: { get_param: "OS::stack_id" }
metric_type: 'instance.cpu.usage'
aggregation_function: 'avg'
comparison_function: 'above'
interval_duration: '1m'
threshold: 80
autoscale_url: { get_attr: [scaleup_policy, signal_url] }
alarm_action: ['autoscale']
そのほかの任意項目については、機能説明書のスタックの構築 [東日本第3/西日本第3]を参照し必要に応じて設定してください。
2. スタックの更新
修正後のテンプレートを用いてスタックを更新します。
スタックの更新が完了すると、新監視サービスにアラームが登録されます。
スタックの更新については、機能説明書のスタックの変更/削除を参照してください。