IIS

Internet Information Services の統合により、IIS ウェブサーバーからテレメトリーが収集されます。この指標は、接続情報と転送されたバイトに関するデータを提供します。また、アクセスログの情報も収集されます。

IIS の詳細については、Internet Information Services のドキュメントをご覧ください。

始める前に

Ops エージェント バージョン 2.15.0 では、workload.googleapis.com/ 接頭辞を使用した新しい IIS 指標セットのサポートが追加されています。構成例の説明に沿って、これらの指標を収集するようにエージェントを構成する必要があります。

Ops エージェントは、常に限定された IIS 指標をサポートしています。これらの指標は agent.googleapis.com/iis/ 接頭辞を使用します。Windows VM でこれらの指標を収集するために、追加の構成は必要ありません。

このドキュメントでは、agent 接頭辞の指標を v1 指標と、workload 接頭辞の指標を v2 指標と表記しています。これらの指標の表については、モニタリング対象をご覧ください。

Ops エージェント バージョン 2.15.0 以降では、v1 指標、v2 指標、またはその両方を収集するようにエージェントを構成できます。

前提条件

IIS テレメトリーを収集するには、Ops エージェントをインストールする必要があります。

  • 指標 v1 の場合は、バージョン 1.0.0 以降をインストールします。
  • 指標 v2 の場合は、バージョン 2.15.0 以降をインストールします。
  • ログの場合は、バージョン 2.14.0 以降をインストールします。

この統合は IIS バージョン 8.5 と 10.0 をサポートしています。

IIS の Ops エージェントの構成

Ops エージェントの構成のガイドに沿って、IIS インスタンスからテレメトリーを収集するために必要な要素を追加し、エージェントを再起動します。

構成の例

次のコマンドは、IIS のテレメトリーを収集して取り込み、Ops エージェントを再起動するための構成を作成します。

$ErrorActionPreference = 'Stop'

# This config gets merged with the built-in Ops Agent config, which already
# includes the v1 receiver in the default pipeline.
# Because the v2 receiver here uses a unique ID, it does not overwrite
# the default receiver and so both receivers will be active simultaneously
# during the test.

# Create a back up of the existing file so existing configurations are not lost.
Copy-Item -Path 'C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml' -Destination 'C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml.bak'

# Configure the Ops Agent.
Add-Content 'C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml' "
metrics:
  receivers:
    iis_v2:
      type: iis
      receiver_version: 2
  service:
    pipelines:
      iispipeline:
        receivers:
          - iis_v2
logging:
  receivers:
    iis_access:
      type: iis_access
  service:
    pipelines:
      iis:
        receivers:
        - iis_access
"

# Stop-Service may fail if the service isn't in a Running state yet.
(Get-Service google-cloud-ops-agent*).WaitForStatus('Running', '00:03:00')
Stop-Service google-cloud-ops-agent -Force
Start-Service google-cloud-ops-agent*

このレシーバは、デフォルトの W3C ロギング形式のみをサポートしています。

ログの収集を構成する

IIS からアクセスログを取り込めるようにするには、ログのレシーバを作成してから、新しいレシーバのパイプラインを作成する必要があります。

iis_access ログのレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
exclude_paths [] include_paths の照合で除外するファイルシステム パスのパターンのリスト。
include_paths ['C:\inetpub\logs\LogFiles\W3SVC1\u_ex*'] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、C:\inetpub\logs\LogFiles\W3SVC1\u_ex* のように、ワイルドカード(*)を使用できます。
type 値には iis_access を指定してください。
record_log_file_path false true に設定すると、ログレコードの取得元のファイルのパスが agent.googleapis.com/log_file_path ラベルの値として出力ログエントリに表示されます。ワイルドカードを使用する場合、レコードを取得したファイルのパスのみが記録されます。
wildcard_refresh_interval 60s include_paths のワイルドカード ファイルのパスの更新間隔。time.ParseDuration によって解析可能な時間間隔として指定します(30s、2m など)。このプロパティは、ログファイルのローテーションがデフォルトの間隔よりも速く、ロギングのスループットが高い場合に有用です。

ログの内容

logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

iis_access ログの LogEntry には次のフィールドが含まれます。

フィールド タイプ 説明
httpRequest.referer 文字列 Referer ヘッダーの内容
httpRequest.remoteIp 文字列 リクエストを行ったクライアントの IP
httpRequest.requestMethod 文字列 HTTP メソッド
httpRequest.requestUrl 文字列 リクエスト URL(通常は URL のパス部分のみ)
httpRequest.serverIp 文字列 リクエストされたサーバーの IP とポート
httpRequest.status 数値 HTTP ステータス コード
httpRequest.userAgent 文字列 User-Agent ヘッダーの内容
jsonPayload.sc_substatus 数値 サブステータスのエラーコード
jsonPayload.sc_win32_status 数値 Windows ステータス コード
jsonPayload.time_taken 数値 処理にかかった時間(ミリ秒)
jsonPayload.user 文字列 リクエストの認証済みユーザー名
timestamp 文字列(Timestamp リクエストを受信した時刻

v1 指標の収集を構成する

Microsoft Windows VM の Ops エージェントは、IIS v1 指標を自動的に収集します。追加の構成作業は必要ありません。v2 指標のみの収集については、v2 指標の収集の構成をご覧ください。

新しい IIS インスタンスを設定した後、IIS は直ちに指標を報告しないことがあります。Windows Server にインストールされたサーバー マネージャー コンソールを使用すると、[管理状態] 列にサーバーのステータスが「オンライン - パフォーマンス カウンターが開始されていません」と表示される場合があります。

IIS が指標を生成できるようにします。たとえば、サーバー マネージャー コンソールで IIS サーバーを右クリックして、[パフォーマンス カウンターの開始] を選択します。サーバーが Ops エージェントへの指標の送信を開始します。

v2 指標の収集を構成する

IIS から v2 指標を取り込むには、IIS が生成する指標に対するレシーバーを作成し、新しいレシーバーのパイプラインを作成する必要があります。

このレシーバーでは、複数のエンドポイントのモニタリングなど、構成で複数のインスタンスを使用することはできません。このようなインスタンスはすべて同じ時系列に書き込まれるため、Cloud Monitoring ではインスタンスを区別できません。

iis 指標のレシーバーを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
collection_interval 60s time.Duration 値(30 秒、5m など)。
receiver_version 収集された指標のバージョン。v2 指標を収集する場合は、2 を使用します。
type 値は、iis にする必要があります。

デフォルトでは、v1 の指標は自動的に収集されます。v2 指標を収集して v1 指標を拡張することも、v1 指標をオーバーライドして v2 指標のみを収集することもできます。

  • v2 の指標のみを収集する方法は次のとおりです。

    • レシーバに iis という名前を付けます。
    • type フィールドを iis に設定します。
    • receiver_version フィールドを 2 に設定します。
    • このレシーバを default_pipeline パイプラインで使用します。この構成により、iis レシーバの組み込み構成がオーバーライドされます。
  • v1 と v2 の両方の指標を収集する方法は次のとおりです。

    • レシーバに iis 以外の名前(iis_v2 など)を設定します。
    • type フィールドを iis に設定します。
    • receiver_version2 に設定します。
    • このレシーバを新しいパイプラインで使用します。この構成により、組み込みのレシーバがオーバーライドされることなく、v2 レシーバが追加されます。構成例のスクリプトは、このアプローチを使用しています。

モニタリング対象

バージョン 2.15.0 以降では、Ops エージェントは 2 つの異なる指標セットを収集できます。

  • v1 指標: agent.googleapis.com/iis/
  • v2 の指標: workload.googleapis.com/
v1 指標

次の表に、Ops エージェントが IIS インスタンスから収集する v1 指標の一覧を示します。

次の表の指標タイプの文字列には、agent.googleapis.com/iis/ という接頭辞を付ける必要があります。この接頭辞は表内で省略されています。 ラベルをクエリする場合は、metric.labels. 接頭辞を使用します(例: metric.labels.LABEL="VALUE")。

指標タイプリリース ステージ
表示名
種類、タイプ、単位
モニタリング対象リソース
説明
ラベル
current_connections 一般提供
IIS のオープン接続の数
GAUGEDOUBLE1
aws_ec2_instance
gce_instance
IIS に対して現在開かれている接続の数。60 秒ごとにサンプリングされます。
network/transferred_bytes_count 一般提供
IIS 転送バイト数
CUMULATIVEINT64By
aws_ec2_instance
gce_instance
IIS によって転送されたネットワーク バイト数。60 秒ごとにサンプリングされます。
direction: 方向(送信、受信)
new_connection_count 一般提供
IIS 接続数
CUMULATIVEINT641
aws_ec2_instance
gce_instance
IIS に対して開かれた接続数。60 秒ごとにサンプリングされます。
request_count 一般提供
IIS リクエスト数
CUMULATIVEINT641
aws_ec2_instance
gce_instance
IIS に対するリクエスト数。60 秒ごとにサンプリングされます。
http_method: HTTP メソッド(post、put、get、delete、option、trace、head)

表の生成日時: 2024-04-11 19:12:46 UTC。

v2 指標

次の表に、Ops エージェントが IIS インスタンスから収集する v2 指標の一覧を示します。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/iis.request.count
CUMULATIVEINT64
gce_instance
request
workload.googleapis.com/iis.request.rejected
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/iis.request.queue.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/iis.request.queue.age.max
GAUGEINT64
gce_instance
 
workload.googleapis.com/iis.network.file.count
CUMULATIVEINT64
gce_instance
direction
workload.googleapis.com/iis.network.blocked
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/iis.network.io
CUMULATIVEINT64
gce_instance
direction
workload.googleapis.com/iis.connection.attempt.count
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/iis.connection.active
GAUGEINT64
gce_instance
 
workload.googleapis.com/iis.connection.anonymous
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/iis.thread.active
GAUGEINT64
gce_instance
 
workload.googleapis.com/iis.uptime
GAUGEINT64
gce_instance
 

構成を確認する

```

構成を確認する

このセクションでは、IIS レシーバが正しく構成されていることを確認する方法について説明します。Ops エージェントがテレメトリーの収集を開始するまでに 1~2 分かかる場合があります。

IIS ログが Cloud Logging に送信されていることを確認するには、次のようにします。

  1. Google Cloud コンソールのナビゲーション パネルで、[ロギング] を選択してから、[ログ エクスプローラ] を選択します。

    [ログ エクスプローラ] に移動

  2. エディタに次のクエリを入力し、[クエリを実行] をクリックします。
    resource.type="gce_instance"
    log_id("iis_access")
    

IIS 指標が Cloud Monitoring に送信されていることを確認するには、次のようにします。

  1. Google Cloud コンソールのナビゲーション パネルで [Monitoring] を選択し、次に [ Metrics Explorer] を選択します。

    Metrics Explorer に移動

  2. クエリビルダー ペインのツールバーで、名前が [MQL] または  [PromQL] のボタンを選択します。
  3. [言語] 切り替えで [MQL] が選択されていることを確認します。言語切り替えボタンは、クエリの書式設定と同じツールバーにあります。
    • v1 指標の場合、エディタで次のクエリを入力し、[クエリを実行] をクリックします。
      fetch gce_instance
      | metric 'agent.googleapis.com/iis/request_count'
      | every 1m
      
    • v2 指標の場合、エディタで次のクエリを入力して、[実行] をクリックします。
      fetch gce_instance
      | metric 'workload.googleapis.com/iis.request.count'
      | every 1m
      

ダッシュボードを表示する

IIS 指標を表示するには、グラフまたはダッシュボードが構成されている必要があります。IIS インテグレーションには、1 つ以上のダッシュボードが含まれています。インテグレーションを構成して Ops エージェントが指標データの収集を開始すると、ダッシュボードは自動的にインストールされます。

インテグレーションをインストールすることなく、ダッシュボードの静的プレビューを表示することもできます。

インストールされているダッシュボードを表示する手順は次のとおりです。

  1. Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、 [ダッシュボード] を選択します。

    [ダッシュボード] に移動

  2. [ダッシュボード リスト] タブを選択し、[統合] カテゴリを選択します。
  3. 表示するダッシュボードの名前をクリックします。

インテグレーションを構成してもダッシュボードがインストールされていない場合は、Ops エージェントが実行されていることを確認します。ダッシュボードにグラフの指標データがない場合、ダッシュボードのインストールは失敗します。Ops エージェントが指標の収集を開始した後に、ダッシュボードがインストールされます。

ダッシュボードの静的プレビューを表示する手順は次のとおりです。

  1. Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、 [インテグレーション] を選択します。

    [インテグレーション] に移動

  2. [デプロイメント プラットフォーム] フィルタの [Compute Engine] をクリックします。
  3. IIS のエントリを見つけて [詳細を表示] をクリックします。
  4. [ダッシュボード] タブを選択すると、静的プレビューが表示されます。ダッシュボードがインストールされている場合は、[ダッシュボードを表示] をクリックして移動できます。

Cloud Monitoring のダッシュボードについて詳しくは、ダッシュボードとグラフをご覧ください。

[インテグレーション] ページの使用方法については、インテグレーションを管理するをご覧ください。

アラート ポリシーをインストールする

アラート ポリシーは、指定した条件が成立した際に通知するように Cloud Monitoring に指示します。IIS インテグレーションには、使用する 1 つ以上のアラート ポリシーが含まれています。これらのアラート ポリシーは、Monitoring の [インテグレーション] ページで表示してインストールできます。

使用可能なアラート ポリシーの説明を表示してインストールする手順は次のとおりです。

  1. Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、 [インテグレーション] を選択します。

    [インテグレーション] に移動

  2. IIS のエントリを見つけて [詳細を表示] をクリックします。
  3. [アラート] タブを選択します。このタブには、利用可能なアラート ポリシーの説明と、それらをインストールするためのインターフェースが表示されます。
  4. アラート ポリシーをインストールします。アラート ポリシーでは、アラートがトリガーされた通知の送信先を特定する必要があるため、インストール環境の情報が必要になります。アラート ポリシーをインストールする手順は次のとおりです。
    1. 利用可能なアラート ポリシーのリストから、インストールするアラート ポリシーを選択します。
    2. [通知の構成] セクションで、1 つ以上の通知チャンネルを選択します。通知チャンネルの使用を無効にすることもできますが、無効にすると、アラート ポリシーは通知なく起動します。Monitoring でステータスを確認できますが、通知は受信しません。

      通知チャンネルの詳細については、通知チャンネルを管理するをご覧ください。

    3. [ポリシーの作成] をクリックします。

Cloud Monitoring のアラート ポリシーの詳細については、アラートの概要をご覧ください。

[インテグレーション] ページの使用方法については、インテグレーションを管理するをご覧ください。

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。