# モニタリング構成

### 前提条件

Netacea がプラットフォームを正常にモニタリングできるようにするため、事前に以下の準備を完了してください。

1. 既知の安全で信頼できるリストユーザー、パートナー、およびサードパーティアプリの一覧を提供してください。これには、信頼できるボットと自動化ツールの一覧も含まれます。また、既知の悪意のあるアクターに関する情報も有用です。
2. 保護のユースケースと、それぞれに対して脆弱なパスウェイの一覧を提供してください。
3. 関連するログ配信エンドポイントと認証情報が [Netacea portal](https://docs.netacea.com/jp/netacea-puraguin/accessing-your-integration-settings) 経由で共有されていることを確認してください。

### ログストリーミングの実装手順

* Fastly/Magento の Web インターフェースにログインします。
* Stores → Configuration → Advanced → System → Full Page Cache → Fastly Configuration → Tools → Real Time Log Streaming に移動します。
* Create Endpoint の「Create」をクリックし、Amazon S3 を選択して「Add」をクリックすることで、新しいリアルタイムログストリーミングジョブを作成します。

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-07cb34c7b98389bb72ab1eef2b0f542c5e28e380%2Fimage%20(6)%20(2).png?alt=media" alt=""><figcaption></figcaption></figure>

* 以下の情報を入力してログストリーミングジョブを設定します。

XLOCKX91\`\`\` {"@timestamp": "%{%Y-%m-%dT%H:%M:%S%z}t","bc\_type": %{if(req.http.netacea\_bctype\_string, "%u0022" + json.escape(req.http.netacea\_bctype\_string) + "%u0022", "null")}V,"bytes\_sent": "%B","cookie\_session\_status": %{if(req.http.x-netacea:cookie\_session\_status, "%u0022" + json.escape(req.http.x-netacea:cookie\_session\_status) + "%u0022", "null")}V,"client": "%{json.escape(client.ip)}V","domain": %{if(req.http.host, "%u0022" + json.escape(req.http.host) + "%u0022", "null")}V,"integration\_mode": %{"%u0022" + json.escape(req.http.x-netacea:integration\_mode) + "%u0022"}V,"integration\_type": %{if(req.http.integration\_type, "%u0022" + json.escape(req.http.integration\_type) + "%u0022", "null")}V,"integration\_version": %{if(req.http.integration\_version, "%u0022" + json.escape(req.http.integration\_version) + "%u0022", "null")}V,"method": "%{json.escape(req.method)}V","path": "%{json.escape(req.url.path)}V","mit\_svc\_latency":%{if(req.http.x-netacea:mit\_svc\_latency, "%u0022" + json.escape(req.http.x-netacea:mit\_svc\_latency) + "%u0022", "0")}V,"mit\_status":%{if(req.http.x-netacea:mit\_status, "%u0022" + json.escape(req.http.x-netacea:mit\_status) + "%u0022", "0")}V,"protocol": "%{json.escape(req.proto)}V","query": "%{json.escape(req.url.qs)}V","referrer": %{if(req.http.referer, "%u0022" + json.escape(req.http.referer) + "%u0022", "null")}V,"request\_time": %{time.elapsed}V,"status": "%{json.escape(resp.status)}V","user\_agent": %{if(req.http.user-agent, "%u0022" + json.escape(req.http.user-agent) + "%u0022", "null")}V,"user\_id": %{if(req.http.x-netacea-userid, "%u0022" + json.escape(req.http.x-netacea-userid) + "%u0022", "null")}V,"client\_ja3\_md5": %{if(tls.client.ja3\_md5, "%u0022" + json.escape(tls.client.ja3\_md5) + "%u0022", "null")}V,"x\_forwarded\_for": %{if(req.http.X-Forwarded-For, "%u0022" + json.escape(req.http.X-Forwarded-For) + "%u0022", "null")}V} \`\`\`92XLOCKXXLOCKX9798XLOCKX

<table><thead><tr><th width="216">フィールド</th><th>値</th></tr></thead><tbody><tr><td>Name</td><td>エンドポイントのわかりやすい名前を入力します（例：Netacea_Logging）。</td></tr><tr><td>Log Format</td><td><a href="#log-format">Log Format</a></td></tr><tr><td>Timestamp</td><td><a href="#undefined">Timestamp</a></td></tr><tr><td>Bucket Name</td><td>Netacea から提供された名前</td></tr><tr><td>Access Key</td><td>Netacea から提供されたアクセスキー</td></tr><tr><td>Secret Key</td><td>Netacea から提供されたシークレットキー</td></tr><tr><td>Path</td><td>Netacea から提供されたパス</td></tr><tr><td>Domain</td><td>s3.eu-west-1.amazonaws.com</td></tr><tr><td>Log Line Format</td><td>空欄</td></tr><tr><td>Compression</td><td>Gzip</td></tr><tr><td>GZIP Level</td><td></td></tr><tr><td>Period</td><td></td></tr></tbody></table>

{% hint style="warning" %}
Fastly ホストでシールディングが有効になっている場合は、ロギングエンドポイントを作成する前に、以下の「シールディングに関する考慮事項」セクションを確認してください。
{% endhint %}

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-367810b88d1d79f38320d144aca452ee527996a5%2Fimage%20(22).png?alt=media" alt=""><figcaption></figcaption></figure>

#### **Log Format**

{% code overflow="wrap" %}

```
{"@timestamp": "%{%Y-%m-%dT%H:%M:%S%z}t","bc_type": %{if(req.http.netacea_bctype_string, "%u0022" + json.escape(req.http.netacea_bctype_string) + "%u0022", "null")}V,"bytes_sent": "%B","cookie_session_status": %{if(req.http.x-netacea:cookie_session_status, "%u0022" + json.escape(req.http.x-netacea:cookie_session_status) + "%u0022", "null")}V,"client": "%{json.escape(client.ip)}V","domain": %{if(req.http.host, "%u0022" + json.escape(req.http.host) + "%u0022", "null")}V,"integration_mode": %{"%u0022" + json.escape(req.http.x-netacea:integration_mode) + "%u0022"}V,"integration_type": %{if(req.http.integration_type, "%u0022" + json.escape(req.http.integration_type) + "%u0022", "null")}V,"integration_version": %{if(req.http.integration_version, "%u0022" + json.escape(req.http.integration_version) + "%u0022", "null")}V,"method": "%{json.escape(req.method)}V","path": "%{json.escape(req.url.path)}V","mit_svc_latency":%{if(req.http.x-netacea:mit_svc_latency, "%u0022" + json.escape(req.http.x-netacea:mit_svc_latency) + "%u0022", "0")}V,"mit_status":%{if(req.http.x-netacea:mit_status, "%u0022" + json.escape(req.http.x-netacea:mit_status) + "%u0022", "0")}V,"protocol": "%{json.escape(req.proto)}V","query": "%{json.escape(req.url.qs)}V","referrer": %{if(req.http.referer, "%u0022" + json.escape(req.http.referer) + "%u0022", "null")}V,"request_time": %{time.elapsed}V,"status": "%{json.escape(resp.status)}V","user_agent": %{if(req.http.user-agent, "%u0022" + json.escape(req.http.user-agent) + "%u0022", "null")}V,"user_id": %{if(req.http.x-netacea-userid, "%u0022" + json.escape(req.http.x-netacea-userid) + "%u0022", "null")}V,"client_ja3_md5": %{if(tls.client.ja3_md5, "%u0022" + json.escape(tls.client.ja3_md5) + "%u0022", "null")}V,"x_forwarded_for": %{if(req.http.X-Forwarded-For, "%u0022" + json.escape(req.http.X-Forwarded-For) + "%u0022", "null")}V}
```

{% endcode %}

#### Timestamp

```
%Y-%m-%dT%H:%M:%S.000
```

### シールディングに関する考慮事項

Fastly では、「[Shielding](https://developer.fastly.com/learning/concepts/shielding/)」と呼ばれるホスト機能を有効にすることができます。この機能には、オリジンの負荷軽減やキャッシュヒット率の向上などのメリットがあります。当社のインテグレーションを使用している Fastly サービスでこの機能を有効にすると、Netacea ロギングを通じて送信されるログが重複してしまいます。これは想定外の動作です。\
\
この問題を解決するには、Netacea ロギングに条件をアタッチする必要があります。

* ロギングエンドポイントの横にある歯車アイコンをクリックします

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-626a51d81973b5103f49a8e33246896b0271301a%2Fimage%20(94).png?alt=media" alt=""><figcaption></figcaption></figure>

* ポップアップウィンドウで「Condition」行を見つけ、「Attach a condition」をクリックします

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-1ced47a8c87470a821c3597ebd892061e06057a4%2Fimage%20(95).png?alt=media" alt=""><figcaption></figcaption></figure>

* その後、「Create a new response condition」をクリックします

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-c55046df2fc6c26dbd3016fc909858c3466b550b%2Fimage%20(96).png?alt=media" alt=""><figcaption></figcaption></figure>

* ポップアップウィンドウが開きますので、以下の詳細を入力してください。

<table><thead><tr><th width="186">フィールド</th><th>値</th></tr></thead><tbody><tr><td>Name</td><td>例：Netacea_Log_Visit</td></tr><tr><td>Apply if</td><td><code>(req.url !~ "/media/" &#x26;&#x26; req.url !~ "/static/") &#x26;&#x26; fastly.ff.visits_this_service == 0</code></td></tr><tr><td>Priority</td><td>10（デフォルト）</td></tr></tbody></table>

* 「Create」をクリックします。ロギングストリームに条件がアタッチされたことが確認できます

<figure><img src="https://2885909206-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKs3gGgxDF9S8O56fhTGU%2Fuploads%2Fgit-blob-0bb08c3597bbc64934aad380df1765c689af14a9%2Fimage%20(97).png?alt=media" alt=""><figcaption></figcaption></figure>

* 再度「Create」をクリックすると、ロギングが適切に更新されます

### 最終確認

以下の手順が完了していることを確認してください。

* 提供された S3 バケットへの[ログストリーミング](#log-streaming)の設定
* エラー警告が表示されていないことの確認

これで「Save Config」をクリックしてデプロイする準備が整いました

{% hint style="info" %}
キャッシュフラッシュが必要な場合があります。System -> Cache Management に移動し、「Flush Magento Cache」をクリックしてください。
{% endhint %}

これでモニタリングが Fastly/Magento 環境にデプロイされます。以下の方法でデプロイがアクティブであることを確認できます。

* 新しいログ配信ジョブのアクティブバージョンを確認する。
* Netacea に内部取り込みメトリクスの確認を依頼する。
* Netacea にデータの内容と形式の検証を依頼する。
