5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCIカスタム・メトリックでディスク使用率を監視

Last updated at Posted at 2021-09-07

本ブログは、オラクル・クラウドの個人ブログの1つです。

初めに

OCI Monitoringサービスを使用すると、メトリックおよびアラーム機能を使用してクラウド・リソースを監視できます。例えば、OCI上のComputeインスタンス、データベース、および他のリソースのステータスを監視できます。
image.png

OCI/On-P上のサーバーのディスク使用率(パーセンテージ)を監視したい時があります。この場合、既存のメトリックが存在しないので、カスタム・メトリック機能を使用すればOKです。

それを実現するためには、ディスク使用率を収集し、OCIに送信するスクリプトを用意する必要があります。スクリプト実施後、OCIコンソールから他のメトリックと同じようにディスク使用率を監視できます。

このブログでは、カスタム・メトリック機能を使用してディスク使用率の監視方法について簡単に紹介します。 サンプルのPythonスクリプトが含まれています。 もちろん、他の言語でもOKです。

※、OCI-CLIを利用しメトリック・データをOCIへポストできますが、ディスク使用率の取得はCLIの範囲外で、別の方法で取得してください。

環境
クライアント OS: Windows 10 (On-P)
利用言語:Python 3.9.6

ステップ

1. 事前準備

1-1. APIキーの追加

OCIコンソールにログインし、APIキーを追加します (追加済の場合、このステップを飛ばします)。

MENU -> Identity & Security -> Identity -> Users -> User Details -> API Keys -> Add API Key
秘密鍵と公開鍵のファイルを安全な場所に保存します。

「追加」ボタンをクリックした後、「構成ファイルのプレビュー」画面が以下のように表示されます。

1-2. OCI構成ファイルの作成

クライアントからOCIに接続する時、認証は必要で、認証用の情報を構成ファイルとして作成します。
「コピー」をクリックして、テキストを構成ファイルに保存します。
ファイル名と保存場所
Windowsの場合:C:\Users\<your_user_name>\.oci\config
Linuxの場合:/home/<your_user_name>/.oci/config

1-3. Pythonスクリプトの準備

まだPythonがインストールされない場合は、こちらから最新バージョンをダウンロードし、インストールしてください。

以下のサンプル・スクリプトを提供します。
目的:ディスク使用率を取得し、カスタム・メトリックとして公開します。
"compartment_ocid" 文字列をコンパートメントのOCIDに置き換えます。
"service_endpoint" 文字列をエンドポイントに置き換えます。
モニタリングAPIエンドポイントについては、これを確認してください。

# This is a sample python script that post a custom metric(disk_usage) to oci monitoring.
# Run this script on the client that you want to monitor. 
# Command: python post_disk_usage.py

import oci,psutil,datetime
from pytz import timezone

# using default configuration file (~/.oci/config)
from oci.config import from_file
config = from_file()

# initialize service client with default config file
monitoring_client = oci.monitoring.MonitoringClient(config,service_endpoint="https://telemetry-ingestion.ap-tokyo-1.oraclecloud.com")

# get disk usage with psutil
disk = psutil.disk_usage('/')
disk_usage=disk.percent
print(disk_usage)

times_stamp = datetime.datetime.now(timezone('UTC'))

# post custom metric to oci monitoring
# replace "compartment_ocid“ string with your compartmet ocid
post_metric_data_response = monitoring_client.post_metric_data(
    post_metric_data_details=oci.monitoring.models.PostMetricDataDetails(
        metric_data=[
            oci.monitoring.models.MetricDataDetails(
                namespace="custom_metrics",
                compartment_id="your_compartment_ocid",
                name="disk_usage",
                dimensions={'server_id': 'srv01'},
                datapoints=[
                    oci.monitoring.models.Datapoint(
                        timestamp=datetime.datetime.strftime(
                            times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"),
                        value=disk_usage)]
                )]
    )
)

# Get the data from response
print(post_metric_data_response.data)

サンプル・スクリプトを実行する前に、ociとpsutilをインストールしてください。
コマンド:
pip install -U oci
pip install -U psutil

2. カスタム・メトリックの公開

2-1. Pythonスクリプトの実行

コマンド: python post_disk_usage.py
出力結果:
ディスク使用率 - パーセント
レスポンス・データ - JSONフォーマット

c:\Python>python post_disk_usage.py
34.6
{
  "failed_metrics": [],
  "failed_metrics_count": 0
}

実行はスケジューリング・タスクとして設定できますが、ここでは省略します。
(例えば、Linix OSの場合、crontabを利用する。Windows OSの場合、Task Schedulerを利用する。)
テストのために、1回/分間で実行します。

2-2. OCIでディスク使用率の監視

MENU -> Observability & Management -> Monitoring -> Metrics Explorer
"問い合わせの編集(Edit Queries)"ボタンをクリックします。
image.png

"Metric namespace"、"Metric name"、"Dimension name"と"Dimension value"を指定し、"チャートの更新(Update Chart)"ボタンをクリックします。
image.png

グラフの形式でデータを表示:
image.png

テーブルの形式でデータを表示:
image.png

まとめ
これは、一般的な考え方を示す例です。要は、OCIカスタム・メトリックを利用すれば、ディスク使用率だけではなく、他のリソース・データの監視も可能です。

以上です。


関連記事
オラクル・クラウドの個人ブログ一覧
OCI モニタリングでComputeインスタンスの死活を監視

公式ドキュメント
Publishing Custom Metrics
SDK and CLI Configuration File

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?