# - \#2 Intervalos personalizados

#### Visão geral

É possível criar regras de personalização que afetem quando um item será
coletado. São duas as formas, a primeira é conhecida como *Intervalos
Flexíveis* e permite redefinir o intervalo entre coletas. A segunda
forma é o *Agendamento*, nesta forma de coleta é possível especificar
exatamente quando ocorrerão as coletas, não apenas o intervalo entre
elas.

#### Intervalos flexíveis

Os intervalos flexíveis permitem redefinir o intervalo entre coletas em
períodos específicos. Para definir a personalização é preciso informar
dois valores:

-   *Período* – O período (dia e hora) em que o intervalo flexível
    estará ativo (mais detalhes em [períodos de
    tempo](/pt/manual/appendix/time_period))
-   *Intervalo* – o intervalo entre coletas que deverá ser considerado
    em um determinado período

Podem ser definidos até sete intervalos flexíveis por item. Se os
períodos dos intervalos flexíveis se sobrepuser, será considerado o
menor intervalo entre coletas. Observe que se o intervalo flexível for
igual a '0', a monitoração não ocorrerá. Fora dos períodos definidos nos
intervalos flexíveis, o intervalo padrão será adotado.

Observe que se o intervalo entre coletas for exatamente igual ao tamanho
do período em que ele é válido, a coleta ocorrerá somente uma vez. Se o
intervalo entre coletas for maior do que o período de validade da
personalização, a coleta poderá não ocorrer. Se o intervalo entre
coletas for menor do que o período de validade do intervalo flexível, a
coleta poderá ocorrer mais de uma vez.

Se o intervalo flexível for configurado para o valor '0' o item não será
monitorado durante o período flexível, retornando a ser coletado quando
o período flexível estiver inativo.

Exemplos:

|Intervalo|Período|Descrição|
|---------|--------|-----------|
|10|1-5,09:00-18:00|O item será verificado a cada 10 segundos durante a período flexível.|
|0|1-7,00:00-7:00|O item não será verificado durante a madrugada.|
|60|1-7,12:00-12:01|O item será verificado as 12:00 todo dia. Observe que este era uma solução alternativa enquanto não tínhamos o agendamento de coletas. A partir do Zabbix 3.0 não é recomendável utilizar-se do recurso de intervalo flexível para a coleta em horário agendado, para isso use o Agendamento.|

#### Agendamento de coletas

O recurso de agendamento de coletas é utilizado para garantir a coleta
de um item em um momento específico. Enquanto o intervalo flexível é
utilizado para redefinir o intervalo entre coletas, o agendamento é
utilizado para especificar uma coleta em um momento específico, de forma
independente do período padrão. As coletas serão executadas em paralelo.

Um agendamento é definido como:
`md<filtro>wd<filtro>h<filtro>m<filtro>s<filtro>` onde:

-   **md** - dia do mês
-   **wd** - dia da semana
-   **h** - hora
-   **m** - minuto
-   **s** – segundo

```{=html}
<!-- -->
```
    * 

`<filtro>` é usado para definir o valor para o prefixo (dias, horas,
minutos, segundos) e é definido como:
`[<de>[-<até>]][/<salto>][,<filter>]` onde:

-   `<de>` e `<ate>` definem o range de valores possíveis (incluindo
    eles próprios). Se `<até>` for omitido o filtro irá considerar que o
    range é `<de> - <de>`. Se o `<de>` também for omitido o filtro irá
    considerar que o range engloba todos os valores possíveis.
-   `<salto>` define o valor a saltar dentro do range. Por padrão o
    `<salto>` é igual a 1, isso significa que todos os valores possíveis
    no range serão aceitos.

As definições de filtro são opcionais, entretanto, cada filtro
selecionado deverá ter um range ou um *<salto>* definido.

Lista de valores válidos para `<de>` e `<até>` para cada tipo de filtro:

|Prefixo|Descrição|*<de>*|*<até>*|
|-------|-----------|------------|--------------|
|md|Dias do mês|1-31|1-31|
|wd|Dias da semana|1-7|1-7|
|h|Horas|0-23|0-23|
|m|Minutos|0-59|0-59|
|s|Segundos|0-59|0-59|

O valor `<de>` deverá ser menor ou igual ao valor definido em `<até>`. O
valor do `<salto>` deverá ser maior ou igual a 1 e menor ou igual ao
menor valor dos campos `<de>` - `<até>`.

O primeiro campo de um filtro, tendo apenas um dígito, poderá receber o
prefixo '0'. Por exemplo `md01-31` e `h/02` são intervalos válidos, mas
`md01-031` e `wd01-07` não são válidos.

Múltiplos agendamentos podem ser utilizados ao se separar pelo caracter
`;`. Se If a time is matched by several intervals it is executed only
once. For example, `wd1h9;h9` will be executed only once on Monday at
9am.

Examples:

|Intervalo|Descrição|
|---------|-----------|
|m0-59|Coleta a cada minuto|
|h9-17/2|Coleta a cada 2 horas, começando as 9 e terminando as 17 (9:00, 11:00 ...)|
|m0,30 or m/30|Coleta em todo o minuto 30 de cada hora|
|m0,5,10,15,20,25,30,35,40,45,50,55 ou m/5|Coleta a cada cinco minutos|
|wd1-5h9|Coleta de segunda a sexta, as 9:00|
|wd1-5h9-18|Coleta de segunda a sexta, de nove as 18, uma vez por hora (9:00,10:00,...,18:00)|
|h9,10,11 or h9-11|Coleta todo dia as 9:00, 10:00 e 11:00|
|md1h9m30|Coleta no primeiro dia de cada mês as 09:30|
|md1wd1h9m30|Coleta no primeiro dia de cada mês, mas só se o dia for também uma segunda feira|
|h9m/30 ou h9m0-59/30|Coleta as 09:00 e as 09:30|
|h9,10m/30|Coleta as 9:00, 9:30, 10:00, 10:30|
|h9-10m30|Coleta as 9:30, 10:30|
|h9m10-40/30|Coleta as 9:10, 9:40|
|h9,10m10-40/30|Coleta as 9:10, 9:40, 10:10, 10:40|
|h9m10-40 ou h9m10-40/1|Coleta as 9:10, 9:11, 9:12, ... 9:40|
|h9-12,15|Coleta as 9:00, 10:00, 11:00, 12:00, 15:00|
|h9-12,15m0 ou h9-12,15m0s0|execute at 9:00, 10:00, 11:00, 12:00, 15:00|
|h9-12s30|Coleta as 9:00:30, 10:00:30, 11:00:30, 12:00:30|
|h9m/30;h10|Coleta as 9:00, 9:30, 10:00|
