Gere eventos internos para acionar políticas de eventos
Entendendo os eventos internos
Eventos internos são eventos que você cria para acionar uma política de eventos. Eventos internos não são gerados pelos processos do Junos OS e não têm nenhuma mensagem de log de sistema associada. Você pode configurar até 10 eventos internos e gerar um evento interno com base em um intervalo de tempo ou na hora do dia. As políticas de eventos podem combinar com eventos internos da mesma forma que se comparam em outros eventos.
Se você tentar confirmar uma configuração com mais de 10 eventos internos, o Junos OS gera um erro e o commit falha.
Para configurar um evento interno, inclua as seguintes declarações no nível de [edit event-options]
hierarquia:
[edit event-options] generate-event { event-name (time-interval seconds <start-time start-time> | time-of-day time) <no-drift>; }
Você pode configurar a opção time-interval
de gerar eventos em uma frequência específica ou configurar a opção time-of-day
de gerar eventos em uma hora específica do dia. A partir do Junos OS Release 14.1, você pode configurar a opção no-drift
para eventos internos. Quando você configura no-drift
, o Junos OS não propaga o atraso causado no desencadeamento de um evento para o desencadeamento do próximo evento.
A opção start-time
permite que você especifique a data e a hora do início para eventos baseados em intervalo. Dessa forma, a opção start-time
deve ser configurada com a opção time-interval
. Se você configurar a opção start-time
por si mesmo ou com a opção time-of-day
e confirmar a configuração, o dispositivo gera um erro e o commit falha. Por exemplo:
[edit event-options generate-event event-midnight start-time] 'start-time "2020-9-1.16:50:00 -0700"' 'time-interval' is mandatory for 'start-time' configuration error: commit failed: (statements constraint check failed)
Como gerar eventos em uma hora específica do dia
Para gerar um evento em uma hora específica do dia, configure a time-of-day
declaração e especifique o momento em que o evento ocorrerá. Um time-of-day
evento é relativo ao tempo do dispositivo local e está configurado usando formato hh:mm:ss
de tempo de 24 horas. Você pode incluir opcionalmente uma compensação de UTC para especificar um tempo em relação ao UTC (Tempo universal coordenado). A sintaxe é hh:mm:ss(+|-)hhmm
, onde o sinal é mais (+) para leste da UTC e menos (-) para oeste da UTC.
Tempo universal coordenado é o tempo no meridiano de longitude de 0°, também conhecido como meridiano de Meridian de Greenwich. O tempo padrão na maioria dos fusos horários é um número integral de horas compensadas pela UTC.
Se você omitir a compensação da UTC, o Junos OS gera automaticamente a compensação para a time-of-day
declaração na configuração com base na configuração do fuso horário local para o dispositivo. Por exemplo, considere um dispositivo que usa o Horário Padrão oriental (UTC−05:00) para seu horário local. O comando a seguir configura um evento interno chamado event-midnight
, que é gerado às 12:00 (00:00) todas as noites.
[edit] user@host# set event-options generate-event event-midnight time-of-day 00:00:00
A configuração resultante inclui automaticamente a compensação do dispositivo da UTC.
user@host# show event-options generate-event { event-midnight time-of-day "00:00:00 -0500"; }
Se você configurar o tempo em relação à UTC, e a compensação for diferente da do dispositivo, o Junos OS converte automaticamente o tempo para refletir o tempo local do dispositivo e compensar a UTC na configuração. O exemplo a seguir configura um evento interno adicional chamado event-midnight-cst
que é gerado todas as noites às 12:00 (00:00:00) com uma compensação que está seis horas atrás da UTC.
[edit] user@host# set event-options generate-event event-midnight-cst time-of-day 00:00:00-0600
A configuração resultante exibe o evento usando o horário local do dispositivo e compensação da UTC.
user@host# show event-options generate-event { event-midnight time-of-day "00:00:00 -0500"; event-midnight-cst time-of-day "01:00:00 -0500"; }
Se o mesmo dispositivo for enviado para um local diferente e estiver configurado para usar um novo fuso horário, quaisquer eventos internos configurados refletirão a nova compensação local de horário e fuso horário. Por exemplo:
[edit] user@host# set system time-zone America/Los_Angeles user@host# commit
user@host# show event-options generate-event { event-midnight time-of-day "21:00:00 -0800"; event-midnight-cst time-of-day "22:00:00 -0800"; }
Se você modificar o tempo do sistema emitindo o comando do set date
modo operacional, recomendamos que você também emita o comando ou o commit full
restart event-process
comando. Caso contrário, um evento interno baseado na hora do dia pode não ser gerado no momento configurado.
Por exemplo, se você configurar o dispositivo para gerar um evento interno às 15:55:00, e então você modificar o tempo do sistema de 15:47:17 a 15:53:00, o evento é gerado quando o tempo do sistema é aproximadamente 16:00 em vez de na hora configurada, 15:55:00. Você pode corrigir esse problema emitindo o comando ou o commit full
restart event-process
comando.
As políticas de eventos podem combinar com eventos internos da mesma forma que se comparam em outros eventos. O exemplo a seguir gera um evento interno chamado it-is-midnight
às 00:00 (00:00) todas as noites. Quando o processo realizado recebe o it-is-midnight
evento, ele aciona a política do midnight-chores
evento, que toma certas ações.
[edit event-options] generate-event { it-is-midnight time-of-day "00:00:00 -0500"; } policy midnight-chores { events it-is-midnight; then { ... actions ... } }
Como gerar eventos em intervalos de tempo repetidos
Você pode gerar um evento em intervalos repetidos, por exemplo, a cada hora, configurando a time-interval
declaração e especificando a frequência de intervalo em segundos. O intervalo de tempo pode variar de 60 a 2.592.000 segundos. O Junos OS gera o primeiro evento a partir de aproximadamente um intervalo de tempo após você confirmar a configuração.
Por exemplo, o comando a seguir configura um evento chamado que event-every-hour
é gerado a cada hora:
[edit] user@host# set event-options generate-event event-every-hour time-interval 3600
A política de eventos a seguir toma certas ações a cada 3600 segundos quando o event-every-hour
evento é gerado:
[edit event-options] generate-event { event-every-hour time-interval 3600; } policy hourly-checks { events event-every-hour; then { ... actions ... } }
Em dispositivos suportados, você pode configurar opcionalmente a data e a hora em que o Junos OS começa a gerar eventos baseados em intervalos. Configurar um horário de início permite que o dispositivo gere eventos em momentos previsíveis, por exemplo, mesmo após uma reinicialização do dispositivo. Para especificar um horário de início de um evento, configure a opção start-time
, além da opção time-interval
. O tempo de início é relativo ao tempo local do dispositivo e está configurado usando um formato de tempo de 24 horas. A sintaxe é: yyyy-mm-dd.hh:mm
. Por exemplo:
[edit event-options generate-event] user@host# set every-fifteen-minutes time-interval 900 start-time 2020-09-01.16:50
Se você não configurar a opção, o start-time
Junos OS gera o primeiro evento em aproximadamente um intervalo de tempo após confirmar a configuração, dependendo do tempo necessário para a operação de confirmação ser concluída. Se você configurar um horário de início que ocorra após o tempo de confirmação, o Junos OS gera o primeiro evento na hora de início configurada e o próximo evento em um intervalo de tempo após o horário de início, e assim por diante. Se você configurar um tempo de início cronologicamente antes do tempo de confirmação, então o Junos OS gera o primeiro evento na próxima vez que for um número integral de intervalos de tempo após o tempo de início. A Tabela 1 compara os diferentes cenários para os tempos de eventos iniciais com base no horário de início, se configurado e no momento em que a configuração é comprometida.
|
|
Tempo de compromisso |
Primeiro evento |
Segundo evento |
---|---|---|---|---|
900 |
– |
2020-09-01.17:00:08 |
2020-09-01.17:15:30 |
2020-09-01.17:30:30 |
900 |
2020-09-01.17:10 |
2020-09-01.17:00:08 |
2020-09-01.17:10:00 |
2020-09-01.17:25:00 |
900 |
2020-09-01.16:50 |
2020-09-01.17:00:08 |
2020-09-01.17:05:00 |
2020-09-01.17:20:00 |
900 |
2020-09-01.16:50 |
2020-09-01.17:17:08 |
2020-09-01.17:20:00 |
2020-09-01.17:35:00 |
Da mesma forma, se você configurar um horário de início, o Junos OS ainda gera o próximo evento com base no tempo de início configurado, mesmo se você reiniciar o dispositivo ou reiniciar o processo de evento. A Tabela 2 compara os tempos iniciais de eventos após a reinicialização do dispositivo. Como mostrado na tabela, quando você especifica um horário de início, o dispositivo gera previsivelmente o próximo evento como um número integral de intervalos de tempo após o horário de início. Quando você não especifica um horário de início, o próximo evento é um intervalo de tempo após o dispositivo voltar on-line e iniciar o processo de evento. Neste caso, levou vários minutos para o dispositivo reiniciar e iniciar os processos do Junos OS, de modo que o evento ocorre bem após o tempo para o próximo evento esperado.
|
|
Primeiro evento |
Tempo de reinicialização |
Próximo evento |
---|---|---|---|---|
900 |
– |
2020-09-01.16:50:00 |
2020-09-01.16:55:00 |
2020-09-01.17:13:08 |
900 |
2020-09-01.16:50 |
2020-09-01.16:50:00 |
2020-09-01.16:55:00 |
2020-09-01.17:05:00 |
Você pode incluir opcionalmente uma compensação de UTC para especificar um horário de início em relação à UTC, anexando-se (+|-)hhmm
à hora, onde o sinal é mais (+) para leste de UTC e menos (-) para oeste da UTC, por exemplo, 2020-09-14.11:00-0800. Mesmo se você especificar uma compensação de UTC, a start-time
configuração sempre exibe o tempo e a compensação de UTC para o fuso horário local do dispositivo.
O exemplo a seguir configura o tempo de início com uma compensação da UTC:
[edit event-options generate-event] user#host# set every-twenty-minutes time-interval 1200 start-time 2020-09-16.20:30-0200
A configuração resultante exibe o tempo de evento e a compensação de UTC para o fuso horário local do dispositivo.
[edit event-options generate-event] user@host# show every-twenty-minutes time-interval 1200 start-time "2020-9-16.17:30:00 -0500";