コンテンツへスキップ
VM Ops Manager
ダウンロード
ドキュメント目次

監視

VMごとのポーリングを有効にし、収集されるメトリクスと実際のプローブコマンドを確認します。


ここでの監視はエージェント不要です。サーバーには何もインストールされず、追加のポートも 開きません。アプリは監視対象のVMごとに1つのSSH接続を維持し、ポーリングのたびに読み取り専用の コマンドをちょうど1つだけ実行します。

VMで有効にする

VMの Monitoring タブを開き、次の手順を行います。

  1. Enable を切り替えます。
  2. ポーリングに使用する認証情報を選択します。低権限アカウントを使うべきです。 ログイン認証情報 を参照してください。
  3. 間隔(秒)を設定します。ほとんどの場合、60秒が妥当なバランスです。

ポーリングは約15秒以内に開始されます。バックグラウンドの監視タスクが定期的に、どのVMが有効に なっているかを確認し、実行中のタスクと突き合わせます。オフに切り替えた場合も、同程度の時間内に タスクが停止します。

Poll now ボタンを押すと、次回の予定を待たずに即座に1回分のポーリングを実行できます。

Vaultがロックされると監視も停止する

ポーリングには認証情報が必要であり、認証情報はvault内にあります。そのため、

  • Vaultをロック → すべてのポーリングタスクが停止します。
  • Vaultをアンロック → タスクが自動的に再開します。
  • 画面ロック → 影響なし。ポーリングは通常どおり継続します。

収集されるメトリクス

グループ内容
System load稼働時間、1分間のロードアベレージ、CPU使用率
MemoryRAM使用量/合計、スワップ使用量/合計
Diskマウントごとの使用量、合計、使用率
Network受信/送信速度(バイト毎秒)
ProcessesCPU使用率上位6プロセス
Securityリッスン中のポート、アカウント、authorized SSH鍵、sudoers、ログインログ

CPU使用率とネットワーク速度は連続する2回のポーリングの間で算出されます。そのため、監視を 有効にした直後の最初のポーリングでは、この2つの値は取得できません。

履歴と保持期間

  • 生のサンプルデータは14日間保持された後、削除されます。
  • その間、データは日次サマリーに集計され、長期保存されます。月次レポートは生のサンプルでは なく、このサマリーテーブルから読み込みます。もし生のサンプルを読んでいたら、「月次レポート」と 称していても実際には2週間分しか含まれない、ということが黙って起きてしまいます。

監視タブのグラフは、14日間の生サンプルウィンドウから描画されます。

サーバーが応答しない場合

1回のポーリング失敗は正常な範囲内です。2回連続で失敗すると、そのVMは到達不能としてマーク され、イベントが生成されます。

失敗のたびに、ポーリング間隔は段階的に後退し(最大5分)、応答のないマシンに負荷をかけ続けることを 避けます。復旧した際には間隔が通常に戻り、復旧イベントが記録されます。

プローブコマンド

これは、顧客から「あなたのソフトウェアは私たちのサーバー上で何を実行しているのか」と聞かれたときに 必要になるものです。このコマンドはソースコード内の定数であり、ユーザーデータから組み立てられる ことは一切なく、アプリはそれをそのまま表示します(監視タブの View probe command ボタン)。

LC_ALL=C; export LC_ALL
echo '@@VMOPS:uptime@@';  cat /proc/uptime
echo '@@VMOPS:load@@';    cat /proc/loadavg
echo '@@VMOPS:cpu@@';     grep '^cpu ' /proc/stat
echo '@@VMOPS:mem@@';     grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree):' /proc/meminfo
echo '@@VMOPS:net@@';     cat /proc/net/dev
echo '@@VMOPS:disk@@';    df -P -k
echo '@@VMOPS:procs@@';   ps -eo pcpu,pmem,comm --sort=-pcpu | head -6
echo '@@VMOPS:ports@@';   ss -H -tuln || netstat -tuln
echo '@@VMOPS:users@@';   cut -d: -f1,3,7 /etc/passwd
echo '@@VMOPS:keys@@';    # readable authorized_keys file contents
echo '@@VMOPS:sudoers@@'; cat /etc/sudoers /etc/sudoers.d/*
echo '@@VMOPS:auth@@';    journalctl -u sshd  # or /var/log/auth.log
echo '@@VMOPS:fail2ban@@'; fail2ban-client status sshd
echo '@@VMOPS:end@@'

この設計の背後には4つの原則があります。

1回の往復のみ。 すべてのポーリングは、ちょうど1回の sh -c 実行で1つの区切り付きのまとまった 出力を返します。30台のマシンを1分ごとに監視するからといって、300個のexecチャンネルを開くようなことは あってはなりません。

top ではなく /proc を読む。 top、vmstat、free の出力はディストリビューションや ロケールによって変わりますが、/proc は変わりません。

固定されており、監査可能。 このコマンドは入力データから組み立てられることが一切ないため、 コマンドインジェクションの余地がなく、その内容は常に検証可能です。

壊れず、必ず劣化にとどめる。 rootが必要でそれが利用できない項目は空で返り、それ以外の ポーリング結果は問題なく取得できます。