# Configuração de Monitoramento

### Pré-requisitos

Antes que a Netacea possa monitorar sua plataforma com sucesso, certifique-se de que você:

1. Forneceu à Netacea sua [Função IAM do Fastly](https://docs.fastly.com/en/guides/creating-an-aws-iam-role-for-fastly-logging), se solicitado.
2. Teve os endpoints de envio de logs e credenciais relevantes compartilhados via [portal Netacea](https://docs.netacea.com/br/informacoes-do-plugin-netacea/accessing-your-integration-settings).
3. Forneceu uma lista de todos os usuários conhecidos, seguros e confiáveis, parceiros e aplicativos de terceiros. Isso inclui uma lista de bots confiáveis e ferramentas automatizadas. Qualquer informação sobre atores maliciosos conhecidos também é valiosa.
4. Forneceu uma lista de casos de uso de proteção e os caminhos vulneráveis a cada um.

### Conjunto Mínimo de Dados Necessário

Para analisar os dados com sucesso, os seguintes dados serão monitorados:

<table><thead><tr><th width="234">Campos Obrigatórios</th><th>Descrição</th></tr></thead><tbody><tr><td>Timestamp</td><td>A hora em que a requisição foi recebida</td></tr><tr><td>Endereço IP</td><td>O endereço IP de onde a requisição foi feita</td></tr><tr><td>User Agent</td><td>A string de user agent enviada no cabeçalho pelo cliente</td></tr><tr><td>Método</td><td>O método HTTP da requisição</td></tr><tr><td>Caminho</td><td>O caminho do recurso solicitado</td></tr><tr><td>Query</td><td>A query string da requisição</td></tr><tr><td>Status</td><td>O código de status HTTP retornado pelo servidor</td></tr><tr><td>Referrer</td><td>A página da web de onde o usuário seguiu um link</td></tr><tr><td>Bytes Enviados</td><td>OS bytes enviados como parte da requisição do usuário</td></tr><tr><td>Protocolo</td><td>O protocolo do ciclo de requisição-resposta.</td></tr><tr><td>Tempo de Requisição</td><td>Quanto tempo a requisição levou em microssegundos.</td></tr><tr><td>Host da Requisição</td><td>O cabeçalho Host da requisição atual.</td></tr><tr><td>Fingerprint JA3</td><td>JA3 é um método para criar fingerprints de clientes SSL/TLS.</td></tr></tbody></table>

{% hint style="info" %}
Além dos campos padrão acima, a integração Netacea adicionará vários campos personalizados ao formato de log.\
\
Estes incluem:<br>

`bc_type`, `user_id`, `integration_type` e `integration_version`.
{% endhint %}

### Etapas de Implementação

1. Faça login na interface web do Fastly.
2. Na página inicial, selecione o serviço apropriado. Você pode usar a caixa de pesquisa para buscar por ID, nome ou domínio.
3. Clique no botão de editar configuração e selecione a opção para clonar a versão ativa. A página de Domínios será exibida.

Todas as alterações de configuração abaixo serão feitas na versão recém-clonada.

{% hint style="info" %}
Anote a versão atualmente ativa caso precise fazer rollback no futuro.
{% endhint %}

### Streaming de Logs

* Navegue até a área de Logging.
* Clique no botão "Create endpoint" para Amazon S3

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

* Insira os seguintes detalhes:

XLOCKX168

<table><thead><tr><th width="186">Campo</th><th>Valor</th></tr></thead><tbody><tr><td>Name</td><td>Insira um nome memorável e legível para o endpoint, como Netacea_Logging.</td></tr><tr><td>Placement</td><td>Format Version Default</td></tr><tr><td>Log Format</td><td><a href="#undefined">Log Format</a></td></tr><tr><td>Timestamp</td><td><a href="#timestamp">Timestamp</a></td></tr><tr><td>Bucket Name</td><td>O nome do bucket Amazon S3 fornecido pelo <a href="../accessing-your-integration-settings">portal Netacea</a>.</td></tr><tr><td>Access Method</td><td>O ARN da Função IAM ou Credenciais de Usuário fornecidos pelo <a href="../accessing-your-integration-settings">portal Netacea</a>.</td></tr><tr><td>Period</td><td></td></tr></tbody></table>

169XLOCKX

| Path                     | /                                                                                                                                              |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Domain                   | <p>O domínio do endpoint Amazon S3 que foi fornecido pela Netacea.</p><p>Se não especificado, use <code>s3.eu-west-1.amazonaws.com</code>.</p> |
| Select a log line format | Blank                                                                                                                                          |
| Compression              | Gzip                                                                                                                                           |

{% hint style="info" %}
Qualquer opção não especificada acima deve ser deixada com o valor padrão.
{% endhint %}

#### Log Format

{% code overflow="wrap" fullWidth="false" %}

```
{"@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
```

### Considerações sobre Logging

O Fastly permite que os usuários habilitem o recurso do Host chamado "[Shielding](https://developer.fastly.com/learning/concepts/shielding/)" que tem alguns benefícios como reduzir a carga na origem, melhorar a taxa de acerto de cache, etc. Habilitar esse recurso em um serviço Fastly que usa nossa Integração resulta em duplicação de logs.

Ao configurar o envio de logs do Fastly por padrão, ele enviará todas as requisições, incluindo conteúdo estático e de mídia que não é necessário para a Netacea.\
\
Para resolver esse problema, precisamos adicionar uma Condição ao serviço e anexá-la ao Netacea Logging.

* Navegue até a área de Conditions
* Clique em "Create Condition"

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

* Insira os seguintes detalhes na janela popup:

<table><thead><tr><th width="186">Campo</th><th>Valor</th></tr></thead><tbody><tr><td>Type</td><td>Response</td></tr><tr><td>Name</td><td>ex.: 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 (padrão)</td></tr></tbody></table>

* Clique em "Save" e navegue até a área de Logging
* Encontre Netacea Logging e clique em "Attach a condition"

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

* Na janela popup, selecione a condição recém-criada

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

### Finalizando

Verifique se você completou as seguintes etapas:

* Certifique-se de que nenhum aviso de erro esteja aparecendo

Agora você está pronto para implantar a versão que estava editando clicando em "Activate".

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

O envio de logs agora será implantado no serviço para o qual foi configurado. Você pode verificar se a implantação está correta:

* Revisando a versão ativa para o novo job de envio de logs.
* Solicitando que a Netacea revise as métricas internas de ingestão.
* Solicitando que a Netacea valide o conteúdo e formato dos dados.
