Gere eventos internos para acionar políticas de eventos
Entender 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 do 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 coincidir com eventos internos da mesma forma que correspondem a outros eventos.
Se você tentar cometer 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 acionamento de um evento para o acionamento do próximo evento.
A opção start-time
permite especificar a data de início e o horário para eventos baseados em intervalo. Assim, a opção start-time
deve ser configurada com a opção time-interval
. Se você configurar a opção start-time
por si só ou com a opção time-of-day
e cometer a configuração, o dispositivo gera um erro e o confirmação 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 local do dispositivo e está configurado usando o formato hh:mm:ss
de tempo de 24 horas. Opcionalmente, você pode incluir uma compensação de UTC para especificar um tempo em relação à UTC (Coordinated Universal Time). A sintaxe é hh:mm:ss(+|-)hhmm
, onde o sinal é mais (+) para leste de UTC e menos (-) para oeste de UTC.
Tempo universal coordenado é o tempo no meridiano de longitude de 0°, também conhecido como meridiano de Greenwich. O tempo padrão na maioria dos fusos horários é um número integral de horas de compensação da UTC.
Se você omitir a compensação de UTC, o Junos OS gera automaticamente a compensação para a time-of-day
declaração na configuração com base na configuração de fuso horário local para o dispositivo. Por exemplo, considere um dispositivo que usa o Horário Padrão oriental (UTC<05:00) para o horário local. O comando a seguir configura um evento interno chamado event-midnight
, que é gerado às 00: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 a compensação da UTC na configuração. O exemplo a seguir configura um evento interno adicional chamado event-midnight-cst
que é gerado todas as noites às 00: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 de 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, qualquer evento interno configurado refletirá 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 commit full
ou o 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 depois modificar o tempo do sistema de 15:47:17 às 15:53:00, o evento é gerado quando o tempo do sistema é aproximadamente 16:00 em vez de no momento configurado, 15:55:00. Você pode corrigir esse problema emitindo o commit full
ou o restart event-process
comando.
As políticas de eventos podem coincidir com eventos internos da mesma forma que correspondem a 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 eventuais recebe o it-is-midnight
evento, ele aciona a política de midnight-chores
eventos, 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 intervalada 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 seguinte comando configura um evento chamado event-every-hour
que é 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 se 3601 segundos passarem e o event-every-hour
evento não tiver sido gerado:
[edit event-options] generate-event { event-every-hour time-interval 3600; } policy check-heartbeat { events event-every-hour; within 3601 not 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 tempo 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 a hora 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 tempo de início que ocorra após o tempo de confirmação, o Junos OS gera o primeiro evento na hora de início configurado e o próximo evento em um intervalo de tempo após o tempo de início, e assim por diante. Se você configurar um tempo de início cronologicamente antes do tempo de confirmação, o Junos OS gera o primeiro evento da próxima vez que for um número integral de intervalos de tempo após o início. A Tabela 1 compara os diferentes cenários para os tempos iniciais de eventos com base no tempo de início, se configurado e no momento em que a configuração é comprometida.
|
|
Tempo de confirmação |
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 tempo 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 de evento iniciais após a reinicialização do dispositivo. Conforme mostrado na tabela, quando você especifica um horário de início, o dispositivo gera o próximo evento como um número integral de intervalos de tempo após o 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. Nesse caso, o dispositivo demorou vários minutos para reiniciar e iniciar os processos do Junos OS, de modo que o evento ocorra bem depois do 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 tempo de início em relação à UTC, anexando-se (+|-)hhmm
ao tempo, onde o sinal está mais (+) para leste de UTC e menos (-) para oeste da UTC, por exemplo, 2020-09-14.11:00-0800. Mesmo que você especifique 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 de 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";