Execute scripts de eventos em uma política de eventos
Os scripts de eventos são scripts extensíveis de linguagem de folha de estilo (XSLT), scripts de sintaxe alternativa de linguagem de linguagem de estilo (SLAX) ou scripts python que uma política de eventos pode ser executada quando é acionada. Os scripts de eventos podem executar qualquer função disponível por meio de chamadas de procedimento remoto de protocolo Junos XML ou Junos XML (RPCs). Além disso, você pode passar para um script de evento um conjunto de argumentos que você define.
Os scripts de eventos podem construir e executar um comando de modo operacional, receber a saída de comando, inspecionar a saída e determinar a próxima ação apropriada. Esse processo pode ser repetido até que a fonte do problema seja determinada. O script pode então relatar a origem do problema para você na CLI ou alterar automaticamente a configuração do dispositivo.
Você pode configurar uma política de eventos que executa scripts de eventos e envia a saída desses scripts para um local específico para análise. Para configurar tal política, inclua as seguintes declarações no nível de [edit event-options] hierarquia:
[edit event-options] policy policy-name { events [ events ]; then { event-script filename { arguments { argument-name argument-value; } destination destination-name; output-filename filename; output-format (text | xml); } } }
events No comunicado, você pode listar vários eventos. Se um ou mais dos eventos listados ocorrerem, o processo em caso de execução das ações configuradas sob a then hierarquia. As ações de política de eventos podem incluir a execução de um ou mais scripts de eventos, que são configurados incluindo a event-script filename declaração. O processo eventd executa os scripts na ordem em que eles aparecem na configuração. Os scripts que você faz referência na event-script declaração devem estar localizados no /var/db/scripts/diretório de eventos no disco rígido do dispositivo ou no /config/scripts/evento/ diretório na memória flash Além disso, os scripts de eventos devem ser habilitados no nível de [edit event-options event-script file] hierarquia. Para obter mais informações, consulte Store e Habilite scripts de automação do Junos.
Se os scripts estiverem localizados em memória flash, você deve configurar a load-scripts-from-flash declaração no nível de [edit system scripts] hierarquia.
Para obter informações detalhadas sobre os requisitos e restrições ao executar scripts de automação do Python em dispositivos que executam o Junos OS, consulte requisitos para executar scripts de automação de Python em dispositivos Junos.
Você pode configurar a arguments declaração para passar argumentos a um script de evento como pares de nome/valor. Os valores de argumento podem incluir variáveis que contêm informações sobre o evento de desencadeamento ou outros eventos recebidos. O script do evento pode então fazer referência a essas informações durante a execução. Para obter informações detalhadas sobre a passagem de argumentos para scripts de eventos, consulte Configurando uma política de eventos para passar argumentos a um script de eventos.
Você pode configurar scripts de eventos para escrever sua saída em um arquivo. Quando o processo combinado executa os scripts, ele envia o arquivo com a saída de script para o local especificado na destination declaração. destination Na declaração, inclua um nome de destino configurado no nível de [edit event-options destinations] hierarquia. Para obter mais informações, veja Exemplo: Definir destinos para o arquivamento de arquivos por políticas de eventos.
output-filename Na declaração, defina uma string descritiva que será incluída no nome do arquivo. Cada arquivo carregado também inclui o nome de host e o temporizador no nome do arquivo para garantir que cada nome de arquivo seja único. Se uma política for acionada várias vezes em um período de 1 segundo, um número de índice é aplicado ao nome do arquivo para garantir que os nomes dos arquivos ainda sejam únicos. A faixa de número do índice é de 001 a 999.
A partir do Junos OS Release 14.1R3, a convenção de nomenclatura para um arquivo de saída de comando gerada por um script de evento é alterada. Quando uma política de eventos executa um script de eventos e o script gera um arquivo de saída, o nome do arquivo depende da versão do Junos OS em execução no dispositivo. Antes do Junos OS Release 14.1R3, o nome do arquivo tem a seguinte convenção de nomenclatura:
hostname_output-filename_YYYYMMDD_HHMMSS_index-number
A partir do Junos OS Release 14.1R3, o nome de arquivo coloca a output-filename corda após o temporizante.
hostname_YYYYMMDD_HHMMSS_output-filename_index-number
Por exemplo, em um dispositivo chamado r1 que executa o Junos OS Release 14.1R3 ou uma versão posterior, se você configurar a output-filename declaração como eventos de ifl, e esta política de evento for acionada três vezes em 1 segundo, os arquivos serão nomeados:
r1_20060623_132333_ifl eventos
events_001 de r1_20060623_132333_ifl
r1_20060623_132333_ifl-events_002
Para as destination declarações e output-filename declarações, existem quatro cenários de configuração:
Você pode omitir as declarações e
output-filenameasdestinationdeclarações. Essa opção faz sentido quando o script do evento não tem saída. Por exemplo, o script do evento pode executar apenasrequestcomandos, que não têm saída.Você pode incluir as declarações e
output-filenameasdestinationdeclarações. Se você incluir aoutput-filenamedeclaração na configuração, você também deve incluir adestinationdeclaração na configuração. Neste caso, a saída de script é redirecionada para o arquivo de saída, e o arquivo é enviado para o destino especificado na configuração.Você pode incluir a
destinationdeclaração na configuração. Você pode omitir aoutput-filenamedeclaração na configuração e especificar um nome de arquivo de saída no script de caso. A saída de script é enviada para o destino especificado na configuração. Se você não incluir adestinationdeclaração na configuração, a saída de script não será enviada.Neste cenário, a política de eventos extrai o nome de arquivo do script do evento. O script do evento escreve o nome de arquivo de saída como STDOUT. A sintaxe do XML a ser usada no script de eventos é:
<output> <event-script-output-filename>filename</event-script-output-filename> </output>
O
<event-script-output-filename>elemento deve ser a primeira tag de criança dentro da<output>tag dos pais.Em um dispositivo chamado
device2, configure uma ação de script de eventos com um destinohoste omite aoutput-filenamedeclaração. Defina o destinohostcomo ftp://user@device1//tmp.No script1.xsl do script do evento, escreva a seguinte saída para STDOUT:
<event-script-output-filename>/var/cmd.txt</event-script-output-filename>
Configure a política de eventos da
policy1seguinte forma:[edit event-options] policy policy1 { then { event-script script1.xsl { destination host; } } } destinations { host { archive-sites { "ftp://user@device1//tmp" password "$ABC123"; ## SECRET-DATA*** } } }Neste exemplo, o arquivo /var/cmd.txt reside no dispositivo2 . A política de eventos usa o Protocolo de transferência de arquivos (FTP) para enviar este arquivo para o /tmp directory no dispositivo1.
A política de eventos lê o nome de arquivo de saída /var/cmd.txt de
STDOUT. Em seguida, a política de eventos envia o arquivo /var/cmd.txt para o destino configurado, que é o /tmp directory no dispositivo1. A política de eventos renomeia o arquivo /var/cmd.txt como device2_YYYYMMDD_HHMMSS_cmd.txt_index-number.Você pode incluir as
destinationdeclarações eoutput-filenameas declarações e também especificar um nome de arquivo de saída diretamente dentro do script do evento. Se você fizer isso, o nome de arquivo de saída especificado na configuração substitui o nome de arquivo de saída especificado no script de caso.
O formato padrão e único para saída de script de eventos é Junos Extensible Markup Language (XML).
A saída de script de eventos é sempre emitida no formato XML, mesmo se você configurar a output-format text declaração sob a [edit event-options policy policy-name then event-script filename] hierarquia.