11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OSコマンドの実行結果をOCI Log Analyticsで収集する

11
Last updated at Posted at 2026-03-18

OCI Log AnalyticsにOSコマンド・スクリプトの機能が追加されました。まずはこちらのスライドをご覧ください。
image.png

OS上で実行させるスクリプトの実行結果Monitoringのようなメトリックデータを生成したりグラフ化させるということが可能です。今回は、ディスク容量を確認するdfコマンドの結果を収集して、グラフ化させるための一連の手順を紹介します。

OSコマンド・スクリプトは、管理エージェントが実行し、Log Analyticsにアップロードするという方式になります。事前に管理エージェントが動作しているインスタンスが必要になりますので、無い場合はこちらを参考にインスタンスを準備して下さい。

管理エージェントが実行するスクリプトを準備

#OSコマンドのスクリプトは以下のディレクトリに配置する
# 管理エージェントの場合: /opt/oracle/mgmt_agent/agent_inst/state/laStorage/os_cmd/scripts
# Cloud Agentの管理エージェント・プラグインの場合: /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/state/laStorage/os_cmd/scripts

#下記のdfコマンドのスクリプトを指定ディレクトリに作成する (ここではCloud Agentの場合)
sudo vi /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/state/laStorage/os_cmd/scripts/dfresult.sh

#ファイルの実行権限をCloud Agentのユーザーに付与
sudo setfacl -m u:oracle-cloud-agent:rwx /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/state/laStorage/os_cmd/scripts/dfresult.sh

#Cloud AgentのユーザーとしてファイルアクセスできればOK
sudo -u oracle-cloud-agent head -5 /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/state/laStorage/os_cmd/scripts/dfresult.sh
#ディスク使用率を出力するスクリプト
#!/bin/sh
df -B1 --output=source,size,used,avail,pcent,target | tail -n +2

フィールドの作成

dfの実行結果の値に対してマッピングさせる独自フィールドを定義する

フィールド -> フィールドの作成をクリックし、名前をfilesystem、データ型を文字列で作成
image.png

同様の手順で以下の組み合わせとしてユーザー定義フィールドを作成する

フィールド名 データ型
filesystem 文字列
size 長 (long)
used 長 (long)
available 長 (long)
use% 長 (long)
mounted on 文字列

パーサーの作成

dfの結果を解析してフィールドにマッピングするパーサーを作成する

パーサー -> パーサーの作成 -> 正規表現タイプをクリック
image.png

任意の名前を付け、下記のdfの結果をコピーして、サンプルのログ・コンテンツに張り付けて次に
image.png

dfの結果

devtmpfs                    6063357952           0  6063357952   0% /dev
tmpfs                       6116732928           0  6116732928   0% /dev/shm
tmpfs                       6116732928     9244672  6107488256   1% /run
tmpfs                       6116732928           0  6116732928   0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 38099222528 36104892416  1994330112  95% /
/dev/sda2                   1063256064   407007232   656248832  39% /boot
/dev/sda1                    104634368     6246400    98387968   6% /boot/efi

どれか一つをチェックして次に
image.png

ログの赤字の部分をドラッグし、フィールドをfilesystemを選択してフィールドの抽出を実行
image.png

以下のように抽出されていればOk
image.png

同様の手順で、 2番目の値->size, 3番目の値->used, 4番目の値->available, 5番目の値->use% (※ドラッグは%の前の数字のみ), 6番目の値->mount onを指定する。
image.png

パーサー・テストですべて成功になっていれば保存して作成
image.png

ソースの作成

ソース -> ソースの作成をクリック
image.png

任意の名前、ソースタイプはOS Command、エンティティタイプは、Host(Linux)、パーサーは作成したパーサーを指定、コマンドは先ほど作成したスクリプトのファイル名を指定して作成。
実行間隔(デフォルト30秒)を変更したい場合は、エージェント収集プロパティからCustomized Scheduleを変更できる

image.png

関連付けられていないエンティティから、実行するエンティティをチェックしてアソシエーションの追加をクリックする
image.png

しばらく待ってログ・エクスプローラーにdf結果のログが出力されていれば完了

ログ・エクスプローラーでをグラフを作成

ログデータを基にMonitoringのような線グラフを作成する

ログ・エクスプローラから、ログソースとfilesystemを/dev/sda1, /dev/sda2でフィルタし、ビジュアライゼーションでヒストグラム付きレコードにする。30秒間隔でそれぞれのログが収集できていることが分かる
image.png

ビジュアライゼーションをサマリー表に変更し、クエリーに以下の赤字の部分を追加する。これは、既存のログフィールドはByteなので、MByteに変換した仮想フィールドをそれぞれ生成している
'Log Source' = fileusage and Filesystem in ('/dev/sda1', '/dev/sda2') | eval sizemb = unit(size / (1024 * 1024), mb) | eval usedmb = unit(used / (1024 * 1024), mb) | eval availablemb = unit(available / (1024 * 1024), mb) | timestats count as logrecords by 'Log Source' | sort -logrecords
image.png

左下の計算済みフィールドから、sizemb, usermb,availablembを値にドラッグ&ドロップし、▽アイコンをクリックして、平均に値を変更する。サマリー表の値がMB表記でそれぞれの平均値に代わっていればOK。
image.png

ビジュアライゼーションを線グラフに変更
image.png

設定は以上です。時間スケールの変更や選択しなかったフィールドなども追加して動作を確認してみて下さい。
また、この問い合わせを保存してダッシュボードに配置するなどして、Monitoringのような独自の監視画面などを作成するなどもできるかと思います。

11
3
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
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?