ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Cloud Infrastructureカスタム・メトリックを使用したディスク使用率の監視
イントロダクション
Oracle Observability and Managementプラットフォーム・サービスにより、マルチクラウド・アプリケーションとインフラストラクチャ環境の監視、分析および管理が可能になります。メトリックを使用してリソースおよびアラームをモニターし、これらのメトリックがアラームで指定されたトリガーを満たしたときに通知を行います。メトリックは、モニタリング・サービスに、ディメンションおよびメタデータとともにRAWデータ・ポイントまたはタイムスタンプ/値ペアとして発行されます。
メトリックは様々なソースから取得されます:
- Oracle Cloud Infrastructure (OCI)リソースによって自動的にポストされたリソース・メトリック。たとえば、CpuUtilizationです。
- モニタリングAPIを使用して公開されたカスタム・メトリック。
目標
OCIカスタム・メトリックを使用してディスク使用率を監視します。
前提条件
-
動的グループの作成: 必要なポリシーを追加します。
# Replace compartment_ocid as per your tenancy instance.compartment.id = '<compartment_ocid>'
-
必要なポリシーを追加して、ネームスペースを作成し、メトリックをモニタリング・サービスにプッシュする権限をユーザー・グループに付与します。
# Replace group-name as per your tenancy Allow dynamic-group <group-name> to use metrics in tenancy
-
コンピュート・インスタンス上のOCI Python SDK。
# Using Oracle Linux 7 or 8 sudo yum install python36-oci-sdk
-
コンピュート・インスタンスへのSSHアクセス。
タスク1: Pythonファイルの作成
-
ディスク使用率メトリックを収集する必要があるコンピュート・インスタンスに
disk_usage.py
を作成します。ノート: オペレーティング・システムに基づく任意のテキスト・エディタを使用します。
-
次のサンプル・スクリプトを
disk_usage.py
にコピーします。# This is a sample python script to post disk utilization custom metric to oci monitoring. # Command: python disk_usage.py import oci,psutil,datetime from pytz import timezone # initialize service client with OCI python SDK signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() monitoring_client = oci.monitoring.MonitoringClient(config={}, signer=signer, service_endpoint="https://telemetry-ingestion.ap-mumbai-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“ with your compartmet ocid and srv01 with your compute instance 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={'resourceDisplayName': '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)
ノート: カスタム・メトリックをさらに抽出するには、psutilコマンドを参照してください。
-
次のコマンドを使用して、スクリプトに実行権限を追加します。
chmod +x disk_usage.py
-
リージョンに従ってテレメトリ収集エンドポイントを更新します。
ノート: エンドポイントは操作によって異なります。メトリックの投稿には、遠隔監視エンドポイントを使用します。
-
要件に従ってネームスペースを更新します。
ノート: メトリック・ネームスペースの場合は、予約済接頭辞(oci_またはoracle_)を使用しないでください。
-
compartment ocid
をコンパートメントocidで更新し、srv01
をコンピュート・インスタンスで更新します。 -
必要に応じて、同じコンピュート・インスタンスに対して収集するメトリックをスクリプトに追加します。次に、GBのディスク空き領域を収集する例を示します。
# get metric details using psutil disk_free=round(disk.free/1024/1024/1024,2) print(disk_free) # Add more metric to post if required 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_free", dimensions={'resourceDisplayName': 'srv01'}, datapoints=[ oci.monitoring.models.Datapoint( timestamp=datetime.datetime.strftime( times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"), value=disk_free)] )] ) )
タスク2: カスタム・メトリック・データのポスト
-
CLIからスクリプトを手動で実行して、成功を検証します。
python disk_usage.py
Output: 27.1 { "failed_metrics": [], "failed_metrics_count": 0 }
-
OCIモニタリング・サービスにデータを頻繁に送信するには、cronジョブまたはスケジューリング・タスクを使用してスクリプトをスケジュールします。
-
Windows以外のコンピュート・インスタンスで
crontab -e
を使用して、crontabにスクリプトの詳細を追加します。ノート: カスタム・メトリックは1秒ごとに頻繁にポストでき、最小集約間隔は1分です。ベスト・プラクティスは、1分以上の間隔ごとにカスタム・メトリックをポストすることです。
# Cron job example with every 1 min execution. */1 * * * * /usr/bin/python3 /home/opc/disk_usage.py
-
sudo cat /var/log/cron | grep disk
を使用して、cronログの出力を確認します。
-
タスク3: OCIメトリック・エクスプローラを使用したディスク使用率メトリックの表示
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。
-
「モニタリング」で、「メトリック・エクスプローラ」をクリックします。
-
表示するカスタム・メトリックを含むコンパートメントを選択し、メトリック・ネームスペースの名前をクリックします。たとえば、custom_metricsです。
-
「リソース」で、「メトリック」をクリックします。 「メトリック名」、「間隔」、ディメンション名およびディメンション値を選択します。
-
「チャートの更新」をクリックして、メトリック・エクスプローラでカスタム・メトリックを表示します。
関連リンク
承認
著者 - Dipesh Kumar Rathod (インフラストラクチャ、マスター・プリンシパル・クラウド・アーキテクト)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Monitor disk utilization using Oracle Cloud Infrastructure custom metrics
F86088-01
August 2023
Copyright © 2023, Oracle and/or its affiliates.