監視サービス アラーム移行手順

監視サービスが 2024年12月25日に製品終息(EOL)を迎えるため、後継の監視サービスへのアラーム移行が必要です。
本書では、現行の監視サービス(以降、旧監視サービスと称す)から後継の監視サービス(以降、新監視サービスと称す)へのアラーム移行手順を説明します。

移行手順(IaaSポータル・APIから作成したアラーム)

IaaSポータル、またはAPIを実行して作成したアラームを新監視サービスに移行する手順を示します。
スタックのテンプレートから作成したアラームを移行する場合は、移行手順(スタック定義のアラーム)を参照してください。

1. 事前準備

作業実施前に以下を確認してください。

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": {} } }

注:以下の集合体データは移行不要です。

続いて、最上位プロパティ名を Aggregate から aggregate に変更し、 NameObjectList および 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 有効/無効 enabledtruedisabledfalse に変更してください。
metric_type 監視項目種別 以下の監視種別を使用している場合は、値を変更してください。
cpu.usageinstance.cpu.usage
memory.usageinstance.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" ] } }

新監視サービスで新たに追加されたプロパティを設定します。

そのほかの任意項目については、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.usageinstance.cpu.usage
memory.usageinstance.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] }

新監視サービスで新たに追加されたプロパティを設定します。

最後に、アラームのアクション 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. スタックの更新

修正後のテンプレートを用いてスタックを更新します。
スタックの更新が完了すると、新監視サービスにアラームが登録されます。
スタックの更新については、機能説明書のスタックの変更/削除を参照してください。

注意事項