# Konfiguracja monitorowania

### Wymagania wstępne

Przed rozpoczęciem monitorowania Twojej platformy przez Netacea, upewnij się, że:

1. Dostarczyłeś listę wszystkich znanych, bezpiecznych i zaufanych użytkowników, partnerów oraz aplikacji zewnętrznych. Obejmuje to listę zaufanych botów i zautomatyzowanych narzędzi. Informacje o znanych złośliwych podmiotach są również cenne.
2. Dostarczyłeś listę przypadków użycia ochrony oraz ścieżek podatnych na każdy z nich.
3. Odpowiednie punkty końcowe do przesyłania logów oraz dane uwierzytelniające zostały udostępnione za pośrednictwem [portalu Netacea](https://docs.netacea.com/pl/informacje-o-wtyczce-netacea/accessing-your-integration-settings).

### Kroki implementacji strumieniowania logów

* Zaloguj się do interfejsu webowego Fastly/Magento.
* Przejdź do Stores → Configuration → Advanced → System → Full Page Cache → Fastly Configuration → Tools → Real Time Log Streaming.
* Utwórz nowe zadanie Real-Time Log Streaming, klikając „Create" przy Create Endpoint, wybierając Amazon S3 i klikając „Add".

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

* Wypełnij zadanie strumieniowania logów następującymi informacjami:

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">Pole</th><th>Wartość</th></tr></thead><tbody><tr><td>Name</td><td>Wprowadź łatwą do zapamiętania, czytelną nazwę punktu końcowego, np. 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>Nazwa podana przez Netacea</td></tr><tr><td>Access Key</td><td>Klucz dostępu podany przez Netacea</td></tr><tr><td>Secret Key</td><td>Tajny klucz podany przez Netacea</td></tr><tr><td>Path</td><td>Ścieżka podana przez Netacea</td></tr><tr><td>Domain</td><td>s3.eu-west-1.amazonaws.com</td></tr><tr><td>Log Line Format</td><td>Puste</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" %}
Jeśli funkcja Shielding jest włączona dla hostów Fastly, zapoznaj się z poniższym akapitem „Uwagi dotyczące Shielding" przed utworzeniem punktu końcowego logowania.
{% endhint %}

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%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
```

### Uwagi dotyczące Shielding

Fastly umożliwia użytkownikom włączenie funkcji hosta o nazwie „[Shielding](https://developer.fastly.com/learning/concepts/shielding/)", która ma pewne zalety, takie jak zmniejszenie obciążenia serwera źródłowego, poprawa współczynnika trafień w pamięci podręcznej itp. Włączenie tej funkcji w usłudze Fastly korzystającej z naszej integracji powoduje duplikację logów przesyłanych przez nią poprzez logowanie Netacea. Nie jest to oczekiwane zachowanie.\
\
Aby rozwiązać ten problem, musimy dołączyć warunek do logowania Netacea.

* Kliknij ikonę koła zębatego obok punktu końcowego logowania

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

* W wyskakującym oknie znajdź wiersz „Condition" i kliknij „Attach a condition"

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

* Następnie możesz kliknąć „Create a new response condition"

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

* Otworzy się wyskakujące okno, w którym należy wprowadzić następujące dane:

<table><thead><tr><th width="186">Pole</th><th>Wartość</th></tr></thead><tbody><tr><td>Name</td><td>np. 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 (domyślnie)</td></tr></tbody></table>

* Kliknij „Create". Powinieneś teraz zobaczyć, że warunek został dołączony do strumienia logowania

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

* Teraz możesz ponownie kliknąć „Create", co odpowiednio zaktualizuje logowanie

### Zakończenie

Sprawdź, czy wykonałeś następujące kroki:

* Skonfigurowano[ strumieniowanie logów](#log-streaming) do dostarczonego bucketu S3
* Upewnij się, że nie pojawiają się żadne ostrzeżenia o błędach

Teraz możesz wdrożyć konfigurację, klikając „Save Config"

{% hint style="info" %}
Czasami może być wymagane wyczyszczenie pamięci podręcznej. Aby to zrobić, przejdź do System -> Cache Management i kliknij „Flush Magento Cache".
{% endhint %}

Monitorowanie zostanie teraz wdrożone w środowisku Fastly/Magento. Możesz zweryfikować, czy wdrożenie jest aktywne, poprzez:

* Przegląd aktywnej wersji pod kątem nowego zadania przesyłania logów.
* Poproszenie Netacea o przegląd wewnętrznych metryk przyjmowania danych.
* Poproszenie Netacea o walidację zawartości i formatu danych.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.netacea.com/pl/informacje-o-wtyczce-netacea/fastly-magento/monitoring-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
