# Fastly

### **Strumieniowanie logów Fastly do S3**

Aby wysyłać logi dostępu w czasie rzeczywistym z Fastly do bucketu Amazon S3, można skonfigurować **strumieniowanie logów Fastly** wykorzystując Amazon S3 jako miejsce docelowe. Poniżej opisano kroki wymagane do skonfigurowania strumieniowania w czasie rzeczywistym do bucketu S3 hostowanego przez Netacea, wykorzystując funkcjonalność logowania Fastly oraz niestandardowy format logów spełniający wymagania Netacea.

### **Wymagania wstępne**

Aby pomyślnie przesyłać strumieniowo logi ruchu webowego do Netacea, należy upewnić się, że:

* Posiadasz aktywne konto Fastly z dostępem do Panelu sterowania Fastly.
* Usługa Fastly jest dostępna i skonfigurowana do obsługi ruchu produkcyjnego.
* Otrzymałeś od Netacea niezbędne dane bucketu AWS S3 (nazwa bucketu, region, ścieżka i poświadczenia). Można je znaleźć [tutaj](https://netacea.gitbook.io/portal-docs/user-guides-and-videos/portal-setup-and-log-shipping-guide).
* Znasz [minimalny wymagany zestaw danych](#netacea-minimum-dataset) niezbędny dla Netacea do analizy logów.

### Wysyłanie danych: Strumieniowanie w czasie rzeczywistym

Ta opcja rejestruje każde żądanie i dostarcza logi w partiach. Jest to konfigurowalne zgodnie z wymaganiami POV.

### **Kroki implementacji**

1. Zaloguj się do [panelu sterowania Fastly](https://manage.fastly.com/).
2. Na stronie [głównej](https://manage.fastly.com/home) wybierz odpowiednią usługę. Możesz użyć pola wyszukiwania, aby wyszukać po ID, nazwie lub domenie.
3. Kliknij **Edytuj konfigurację**, a następnie wybierz opcję sklonowania aktywnej wersji.

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

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

{% hint style="warning" %}
Wszystkie poniższe zmiany konfiguracji zostaną wprowadzone w **nowo sklonowanej wersji.**
{% endhint %}

### **Konfiguracja strumieniowania logów**

1. Przejdź do obszaru **Logging**.
2. Kliknij przycisk **'Create endpoint'** dla Amazon S3

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

3. Wprowadź dane z poniższej tabeli:

XLOCKX109![](https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-f00f50dce3b60448c39d99de0aa7c19a8881d494%2Fimage%20\(120\).png?alt=media)110XLOCKX

<table><thead><tr><th width="196">Pole</th><th>Wartość</th></tr></thead><tbody><tr><td>Name</td><td>Wprowadź łatwą do zapamiętania, czytelną dla człowieka nazwę punktu końcowego, np. <strong>Netacea_Logging</strong></td></tr><tr><td>Placement</td><td>Format Version Default</td></tr><tr><td>Log Format</td><td>Wklej <strong>Log Format</strong> znajdujący się <a href="#log-format">tutaj</a></td></tr><tr><td>Timestamp</td><td>Wklej <strong>Timestamp Format</strong> znajdujący się <a href="#timestamp-format">tutaj</a></td></tr><tr><td>Bucket Name</td><td>Nazwa bucketu Amazon S3 dostarczona przez Netacea w <a href="https://portal.netacea.com/">portalu administracyjnym</a></td></tr><tr><td>Domain</td><td>s3.eu-west-1.amazonaws.com</td></tr><tr><td>Access Method</td><td>Wybierz <strong>'User Credentials'</strong></td></tr><tr><td>Access Key</td><td>Skopiuj z <a href="https://portal.netacea.com/">portalu administracyjnego</a> Netacea</td></tr><tr><td>Secret Key</td><td>Skopiuj z <a href="https://portal.netacea.com/">portalu administracyjnego</a> Netacea</td></tr><tr><td>Period</td><td></td></tr></tbody></table>

4. Rozwiń sekcję **'Advanced options'** i zastosuj wartości określone w poniższej tabeli:

| Opcja                  | Wartość  |
| ---------------------- | -------- |
| Path                   | /        |
| PGP Public Key         | Puste    |
| Select Log line Format | Puste    |
| Compression            | Gzip     |
| Redundancy Level       | Standard |
| ACL                    | None     |
| Server Side Encryption | None     |
| Maximum Bytes          | 0        |

5. Kliknij **'Create'**, aby zapisać punkt końcowy logowania.

### Format logów

{% 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 %}

### Format znacznika czasu

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

### Minimalny zestaw danych Netacea

Powyższy format logów pozwoli Netacea zbierać następujący minimalny zestaw danych do analizy

<table><thead><tr><th width="215">Wymagane pola</th><th>Opis</th></tr></thead><tbody><tr><td>Timestamp</td><td>Czas, w którym żądanie zostało odebrane</td></tr><tr><td>IP Address</td><td>Adres IP, z którego wysłano żądanie</td></tr><tr><td>User Agent</td><td>Łańcuch user agent wysłany w nagłówku przez klienta</td></tr><tr><td>Method</td><td>Metoda HTTP żądania</td></tr><tr><td>Path</td><td>Ścieżka żądanego zasobu</td></tr><tr><td>Query</td><td>Łańcuch zapytania żądania</td></tr><tr><td>Status</td><td>Kod statusu HTTP zwrócony przez serwer</td></tr><tr><td>Referrer</td><td>Strona internetowa, z której użytkownik przeszedł przez link</td></tr><tr><td>Bytes Sent</td><td>Bajty wysłane jako część odpowiedzi serwera</td></tr><tr><td>Client JA3</td><td>Odcisk palca JA3 klienta</td></tr><tr><td>X-Forwarded-For*</td><td>Oryginalny adres IP żądania klienta</td></tr><tr><td>Host</td><td>Host docelowy żądania</td></tr><tr><td>Protocol</td><td>Protokół żądania</td></tr><tr><td>Request Time</td><td>Całkowity czas przetwarzania żądania</td></tr></tbody></table>

\* Przydatne, gdy proxy znajdują się na trasie ruchu od klienta do źródła

### Uwagi dotyczące logowania

Podczas konfiguracji wysyłania logów Fastly, domyślnie wszystkie żądania, w tym zawartość statyczna i medialna, będą wysyłane do bucketu S3. Te dane nie są wymagane przez Netacea. Aby rozwiązać ten problem, musimy dodać warunek logowania do usługi i powiązać go z usługą logowania utworzoną zgodnie z powyższymi krokami.

#### Dodawanie warunku logowania

1. Przejdź do nowo utworzonego 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-b869549315f09db6c5160d8bdc5195db79ee2cc8%2Fimage%20(122).png?alt=media" alt=""><figcaption></figcaption></figure>

2. Kliknij **'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-f9b1247afd61266eff997a4775fbd11e8d47dccb%2Fimage%20(123).png?alt=media" alt=""><figcaption></figcaption></figure>

3. Wprowadź następujące dane w oknie dialogowym

| Pole     | Wartość                                                                                   |
| -------- | ----------------------------------------------------------------------------------------- |
| Name     | np. Netacea\_Log\_Visit                                                                   |
| Apply If | (req.url !\~ "/media/" && req.url !\~ "/static/") && fastly.ff.visits\_this\_service == 0 |
| Priority | 10                                                                                        |

{% hint style="warning" %}
Rozwiń sekcję **'Advanced option'**, aby ustawić Priority
{% endhint %}

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

4. Kliknij **'Save and apply'**

### Zakończenie

* Sprawdź konfigurację pod kątem komunikatów o błędach lub ostrzeżeń.
* Po potwierdzeniu wdróż zmiany, klikając **Activate**.

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

Konfiguracja strumieniowania logów Fastly jest teraz aktywna i powinna wysyłać dane do bucketu S3 Netacea.

### Ostatnie kroki

Po aktywacji dostarczania logów **powiadom swojego Inżyniera ds. Rozwiązań Netacea**. Pozwoli nam to:

* Potwierdzić odbiór danych
* Zweryfikować format i kompletność zestawu danych
* Rozpocząć analizę po zebraniu wystarczającej ilości danych

Jeśli potrzebujesz wsparcia podczas konfiguracji, zespół SE Netacea jest do Twojej dyspozycji — nie wahaj się z nami skontaktować.


---

# 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/fastly.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.
