# Fastly

### **Fastly log streaming naar S3**

Om real-time toegangslogs van Fastly naar een Amazon S3-bucket te verzenden, kunt u **Fastly log streaming** configureren met Amazon S3 als bestemming. Hieronder vindt u de gedocumenteerde stappen die nodig zijn om real-time streaming naar een door Netacea gehoste S3-bucket in te stellen, met behulp van de logging-functionaliteit van Fastly en een aangepast logformaat dat voldoet aan de vereisten van Netacea.

### **Vereisten**

Om webverkeerslogs succesvol naar Netacea te streamen, dient u het volgende te controleren:

* U heeft een actief Fastly-account met toegang tot het Fastly Control Panel.
* Een Fastly-service is beschikbaar en geconfigureerd om uw productieverkeer te verwerken.
* U heeft de benodigde AWS S3-bucketgegevens (bucketnaam, regio, pad en inloggegevens) van Netacea ontvangen. Deze zijn te vinden [hier](https://netacea.gitbook.io/portal-docs/user-guides-and-videos/portal-setup-and-log-shipping-guide).
* U bent op de hoogte van de [minimaal vereiste dataset](#netacea-minimum-dataset)-velden die Netacea nodig heeft voor loganalyse.

### Gegevens verzenden: Real-Time Streaming

Deze optie logt elk verzoek en levert logs in batches. Dit is configureerbaar om aan de vereisten van de POV te voldoen.

### **Implementatiestappen**

1. Log in op het [Fastly control panel](https://manage.fastly.com/).
2. Selecteer vanaf de [Home](https://manage.fastly.com/home)-pagina de juiste service. U kunt het zoekvak gebruiken om te zoeken op ID, naam of domein.
3. Klik op **Edit configuration** en selecteer vervolgens de optie om de actieve versie te klonen.

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

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

{% hint style="warning" %}
Alle configuratiewijzigingen hieronder worden aangebracht in de **nieuw gekloonde versie.**
{% endhint %}

### **Log Streaming instellen**

1. Navigeer naar het **Logging**-gebied.
2. Klik op de knop **'Create endpoint'** voor Amazon S3

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

3. Voer de gegevens uit de onderstaande tabel in:

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

<table><thead><tr><th width="196">Veld</th><th>Waarde</th></tr></thead><tbody><tr><td>Name</td><td>Voer een gemakkelijk te onthouden, leesbare naam in voor het eindpunt, zoals <strong>Netacea_Logging</strong></td></tr><tr><td>Placement</td><td>Format Version Default</td></tr><tr><td>Log Format</td><td>Plak het <strong>Log Format</strong> te vinden <a href="#log-format">hier</a></td></tr><tr><td>Timestamp</td><td>Plak het <strong>Timestamp Format</strong> te vinden <a href="#timestamp-format">hier</a></td></tr><tr><td>Bucket Name</td><td>De naam van de Amazon S3-bucket verstrekt door Netacea binnen het <a href="https://portal.netacea.com/">admin portal</a></td></tr><tr><td>Domain</td><td>s3.eu-west-1.amazonaws.com</td></tr><tr><td>Access Method</td><td>Selecteer <strong>'User Credentials'</strong></td></tr><tr><td>Access Key</td><td>Kopieer vanuit het Netacea <a href="https://portal.netacea.com/">admin portal</a></td></tr><tr><td>Secret Key</td><td>Kopieer vanuit het Netacea <a href="https://portal.netacea.com/">admin portal</a></td></tr><tr><td>Period</td><td></td></tr></tbody></table>

4. Vouw de sectie **'Advanced options'** uit en pas de specifieke waarden toe die in de onderstaande tabel staan vermeld:

| Optie                  | Waarde   |
| ---------------------- | -------- |
| Path                   | /        |
| PGP Public Key         | Leeg     |
| Select Log line Format | Leeg     |
| Compression            | Gzip     |
| Redundancy Level       | Standard |
| ACL                    | None     |
| Server Side Encryption | None     |
| Maximum Bytes          | 0        |

5. Klik op **'Create'** om het logging-eindpunt op te slaan.

### 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 Format

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

### Netacea minimale dataset

Het bovenstaande logformaat stelt Netacea in staat om de volgende minimale dataset voor analyse te verzamelen

<table><thead><tr><th width="215">Vereiste velden</th><th>Beschrijving</th></tr></thead><tbody><tr><td>Timestamp</td><td>Het tijdstip waarop het verzoek werd ontvangen</td></tr><tr><td>IP Address</td><td>Het IP-adres van waaruit het verzoek werd gedaan</td></tr><tr><td>User Agent</td><td>De user agent-string die door de client in de header werd verzonden</td></tr><tr><td>Method</td><td>De HTTP-methode van het verzoek</td></tr><tr><td>Path</td><td>Het pad van de gevraagde resource</td></tr><tr><td>Query</td><td>De querystring van het verzoek</td></tr><tr><td>Status</td><td>De HTTP-statuscode die door de server werd geretourneerd</td></tr><tr><td>Referrer</td><td>De webpagina van waaruit de gebruiker een link volgde</td></tr><tr><td>Bytes Sent</td><td>Het aantal bytes verzonden als onderdeel van de serverrespons</td></tr><tr><td>Client JA3</td><td>De JA3-vingerafdruk van de client</td></tr><tr><td>X-Forwarded-For*</td><td>Het oorspronkelijke IP-adres van een clientverzoek</td></tr><tr><td>Host</td><td>De bestemmingshost van het verzoek</td></tr><tr><td>Protocol</td><td>Het protocol van het verzoek</td></tr><tr><td>Request Time</td><td>De totale tijd die nodig was om het verzoek te verwerken</td></tr></tbody></table>

\* Nuttig wanneer proxy's zich in de verkeerslijn van client > origin bevinden

### Overwegingen bij logging

Bij het configureren van Fastly log shipping worden standaard alle verzoeken, inclusief statische en media-content, naar de S3-bucket verzonden. Deze gegevens zijn niet vereist door Netacea. Om dit op te lossen, moeten we een logging-conditie aan de service toevoegen en deze koppelen aan de logging-service die is aangemaakt door de bovenstaande stappen te volgen.

#### Een logging-conditie toevoegen

1. Navigeer naar het nieuw aangemaakte logging-eindpunt:

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

2. Klik op **'Create a new response condition'**

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

3. Voer de volgende gegevens in het pop-upvenster in

| Veld     | Waarde                                                                                    |
| -------- | ----------------------------------------------------------------------------------------- |
| Name     | bijv. Netacea\_Log\_Visit                                                                 |
| Apply If | (req.url !\~ "/media/" && req.url !\~ "/static/") && fastly.ff.visits\_this\_service == 0 |
| Priority | 10                                                                                        |

{% hint style="warning" %}
Vouw de sectie **'Advanced option'** uit om de Priority in te stellen
{% endhint %}

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

4. Klik op **'Save and apply'**

### Afronden

* Controleer de configuratie op eventuele foutmeldingen of waarschuwingen.
* Zodra bevestigd, implementeer uw wijzigingen door op **Activate** te klikken.

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

Uw Fastly log streaming-configuratie is nu actief en zou gegevens naar de Netacea S3-bucket moeten verzenden.

### Laatste stappen

Zodra de loglevering actief is, **informeer uw Netacea Solutions Engineer**. Dit stelt ons in staat om:

* De ontvangst van gegevens te bevestigen
* Het datasetformaat en de volledigheid te valideren
* Met de analyse te beginnen zodra een voldoende volume aan gegevens is verzameld

Als u ondersteuning nodig heeft tijdens de installatie, staat het Netacea SE-team klaar om te helpen — aarzel niet om contact op te nemen.
