[Oracle Cloud] OCI MonitoringのAlarm機能を利用してインスタンスの死活監視をしてみた

本記事の目的

OCI MonitoringのAlarm機能を利用して、インスタンスの死活監視が出来ると聞いたので、さっそく試してみました。

OCI Monitoringの機能自体はとてもシンプルで直感的に利用できると思います。

本記事では、死活監視を実装するための手順を簡単に紹介します。

 

OCI Monitoring機能の概要

2019年2月末にリリースされたOCIの様々なリソースを監視するための機能。

豊富なメトリックが用意されており、リソース使用状況の確認や異常時の検知などに利用できます。

Monitoring Overview
The Oracle Cloud Infrastructure Monitoring service enables you to actively and passively monitor your cloud resources using the Metrics and Alarms features.

Metrics Feature Overview
The Metrics feature relays metric data about the health, capacity, and performance of your cloud resources. A metric is a measurement related to health, capacity, or performance of a given resource . Resources, services, and applications emit metrics to the Monitoring service. Common metrics reflect data related to availability and latency, application uptime and downtime, completed transactions, failed and successful operations, and key performance indicators (KPIs), such as sales and engagement quantifiers.

 

サービスコンソールでmonitoringできるのはもちろん、任意のメールアドレスへの通知や、PagerDutyサービスとの連携も出来るようになっています。

 

機能の詳細についてはマニュアルを参照。

Monitoring Overview

Managing Alarms

 

また、既に利用手順をまとめてくれているブログ記事もありました。感謝。

OCI Monitoring で CPU 監視してメール通知

OCI Monitoring で CPU 監視して PagerDuty に投げる

 

 

前提/準備

検証に利用するコンピュートインスタンスは事前作成済み。

 

手順

既に画面ショット付きで手順を書いてくれているブログがあったので、本記事ではテキストベースで簡単に。

Alarm 定義の作成

OCI メニューの Monitoring -> Alarm Definitions より Alarm の定義が可能です。

1.「Create Alarm」ボタンを押して Alarm 作成開始

2.Alarm作成に必要な情報を入力

以下のような情報を入力していきます。

ALARM NAME:任意
ALARM SEVERITY:任意のレベルを入力すればOK。死活監視を想定なので「critical」を選択
ALARM BODY:異常通知時のメッセージ内容を入力

Metric descriptionセクション
METRIC NAMESPACE:監視に利用するメトリックタイプを入力。今回は「oci_computeagent」を選択
METRIC NAME:監視に利用するメトリックを入力。今回は「cpu utilization」を選択
DIMENSION NAME:監視対象を識別するための方法を入力。今回は「resource Displayname」を選択
DIMENSION VALUE:監視対象を識別するための情報を入力。今回は「comm_ap1(インスタンス名)」を選択

trigger ruleセクション
OPERATOR:「absent」を選択★ここがポイント
TRIGGER DELAY MINUTES:アラート検知までの時間を入力(分)。今回は「1」を選択。

Notificationsセクション
「create a topics」ボタンを押して、アラート通知方法を定義。ここでは以下を指定。
TOPIC NAME:任意の名前
SUBSCRIPTION PROTOCOL:「Email」を選択
EMAIL ADDRESS:自分のメールアドレスを入力

「save alarm」ボタンを押して、Alarm の定義完了。

 

Notificationメールの承認

先ほど登録したメールアドレス宛に、アドレス確認のメールが送られてくるので、メール本文内のリンクを押して承認。

今回は「Oracle Cloud Infrastructure Notifications Service Subscription Confirmation」という件名のメールが届いてました。

 

これで死活監視のためのアラート定義は完了。

trigger ruleセクションのOPERATORで「absent」を選択しているのがポイントで、これによって監視自体が出来ない=インスタンス異常と判断させています。

 

死活監視のテスト

上記アラートを定義した状態で、監視対象インスタンスを停止させます。
(今回はサービスコンソールを利用)

アラート定義で指定した時間が経過すると、MonitoringのAlarm Status画面にアラーム通知が表示され、登録されたメールアドレスへのアラート通知メールが届きました。

 

届いたメールの内容は以下のような感じ。
件名:instance check(自分が指定したもの)
本文:

{“dedupeKey”:”2de7d13e-0165-4cee-bdab-44fb886bbe02″,”title”:”instance check”,”body”:”インスタンスへのモニタリングが実行できていません。インスタンスが停止している可能性があります。”,”type”:”FIRING_TO_OK”,”severity”:”CRITICAL”,”timestampEpochMillis”:1553153820000,”alarmMetaData”:[{“id”:”ocid1.alarm.oc1.phx.aaaaaaaahbgpqelvjxxxxxxxxxxxxxxxxxxx”,”status”:”OK”,”severity”:”CRITICAL”,”query”:”CpuUtilization[1m].absent()”,”totalMetricsFiring”:0,”dimensions”:[]}],”version”:1.0}

If you wish to stop receiving notifications from this topic: TOPIC_TEST (Topic OCID: ocid1.onstopic.oc1.phx.aaaaaaaa5tzzh73xqqapxp6vxxxxxxxxxxx), please click or visit the link below to unsubscribe:
https://cell1.notification.us-phoenix-1.oraclecloud.com/20181201/xxxxxxxxxxxxxx
Please do not reply directly to this email.

 

 

参考情報

Supported Services(2020/3/7時点)

Monitoring Serviceに対応しているサービスの一覧はマニュアルの以下ページに記載されています。

Supported Services

 

下記は、参考までに本記事を最初に書いた時点(2019/3/21頃)の対応サービス一覧。

一年でだいぶ増えたことがよく分かる。

 

PagerDutyとは

Digital StacksさんのHPより、

PagerDutyは警告を確実に送達、稼働時間を死守するインシデント管理ツール。ダウンタイムやシステムの不正確さから企業を保護するサービスで、他の監視ツールとの統合も可能。ユーザーのチーム全体にとって必要な警告~警報に優先順位を付け、メールやSMS、音声メッセージなどでアラート送信してくれる。スケジュール設定により、ローテーション管理が可能。送達確認やアラートエスカレーションおよび自動再ルーティングなど多様な機能で、警告を確実なものにする。担当者のモバイル デバイスからインシデント処理が可能。

 

 

参考情報

モニタリング機能でリソースを監視する – Oracle Cloud Infrastructureアドバンスド

 

変更履歴

2019/3/21 新規作成
2020/3/07 モニタリング機能対応サービス一覧を更新、参考情報を追記

スポンサードリンク

Be the first to comment

Leave a Reply

Your email address will not be published.


*