Este documento descreve o Embedded Event Manager (EEM), que é uma ferramenta de solução de problemas que foi adicionada no Adaptive Security Appliance (ASA) versão 9.2(1). A funcionalidade é semelhante ao Cisco IOS? EEM com base. É uma maneira poderosa de executar comandos CLI com base em eventos ASA (syslogs) e salvar a saída. Este documento aborda uma introdução ao recurso, bem como alguns exemplos de miniaplicativos EEM.
O uso do EEM requer que o ASA esteja configurado no modo de contexto único.
As informações neste documento são baseadas no ASA versão 9.2(1) ou posterior.
Esta seção inclui as diretrizes e limitações para este recurso.
Atualmente, o EEM só é suportado em firewalls ASA executados em modo de contexto único. Os firewalls configurados em modo de contexto múltiplo não são suportados no momento.
Atualmente, o EEM é suportado nos modos de firewall roteado e transparente.
O comando event manager applet cria/edita um applet do event manager, um processo que vincula eventos a ações e saídas. O <nome> é limitado a 32 caracteres e não pode ter espaços. Insere um submodo applet do event manager.
ASA(config)# [no] event manager applet
Uma descrição pode ser adicionada a um miniaplicativo. Isso é apenas para fins informativos. O <text> é limitado a 256 caracteres.
ASA(config-applet)# [no] description
Vários eventos podem ser adicionados a um miniaplicativo que aciona o miniaplicativo para chamar as ações configuradas nele. Eles são definidos com a palavra-chave event. Vários eventos podem ser configurados para cada miniaplicativo.
O primeiro tipo de evento suportado é syslog. O ASA usa IDs de syslog para identificar syslogs que disparam um applet. Isso é concluído por meio da palavra-chave id, que pode ser um único syslog ou um intervalo. A palavra-chave opcional ocorre indica o número de vezes que o syslog deve ocorrer para o miniaplicativo ser chamado (o padrão é 1). A palavra-chave period opcional indica a quantidade de tempo, em segundos, em que o evento deve ocorrer. Limita a frequência de chamada do applet para, no máximo, o período configurado. Uma ocorrência de 5 com um período de 30, significa que o syslog deve ocorrer 5 vezes em 30 segundos antes do evento ser disparado. Se o syslog ocorrer 11 vezes em 30 segundos, o miniaplicativo será acionado apenas uma vez. Um valor de 0 para o período significa que nenhum período é definido.
Vários syslogs podem ser configurados, mas os intervalos não podem se sobrepor.
ASA(config-applet)# [no] event syslog id[- ASA(config-applet)# no event syslog id] [occurs ]
[period] [- ]
O valor de ocorrência <n> tem um intervalo permitido de 1 a 4294967295. O valor do período <seconds> tem um intervalo permitido de 0 a 604800. Um valor 0 (zero) significa que nenhum período está configurado.
Neste exemplo, o EEM age quando detecta uma condição de bloco de memória baixa. Se os blocos de 1550 bytes disponíveis forem esgotados, ele coletará o show block pool 1550 dump e salvará no disco. Ele faz isso, no máximo, a cada 10 minutos.
event manager applet depletedblock
description "Take a snapshot of block output when it is depleted"
event syslog id 321007 period 600
action 1 cli command "show blocks pool 1550 dump"
output file rotate 10
O EEM também pode ser configurado para executar uma ação periodicamente. Ao configurar um evento baseado em temporizador, use a palavra-chave timer na configuração de eventos. Há três opções baseadas em temporizador:
ASA(config-applet)# [no] event timer absolute time
ASA(config-applet)# no event timer absolute
ASA(config-applet)# [no] event timer countdown time
ASA(config-applet)# no event timer countdown
ASA(config-applet)# [no] event timer watchdog time
ASA(config-applet)# no event timer watchdog
Por exemplo, essa configuração de evento executa ping em 192.168.1.100 a cada 1 minuto. Isso pode ser usado para garantir que um túnel VPN seja mantido ativo e operacional mesmo durante períodos de tráfego ocioso. Ele usa o temporizador watchdog para executar a cada 60 segundos.
event manager applet period-event
description "Run a command once per minute"
event timer watchdog time 60
action 0 cli command "ping 192.168.1.100"
output none
Este miniaplicativo registra as informações de alocação de bloco de memória a cada hora e grava a saída em um conjunto rotativo de arquivos de log, já que mantém registros válidos por um dia. Ele usa o temporizador watchdog para executar a cada 1 hora.
event manager applet blockcheck
description "Log block usage"
event timer watchdog time 3600
output rotate 24
action 1 cli command "show blocks old"
Esses miniaplicativos desabilitam a interface especificada (Gig 0/0) entre a meia-noite e as 3 da manhã. Ela usa o temporizador absoluto para executar uma vez por dia.
event manager applet disableintf
description "Disable the interface at midnight"
event timer absolute time 0:00:00
output none
action 1 cli command "interface GigabitEthernet 0/0"
action 2 cli command "shutdown"
action 3 cli command "write memory"
!
event manager applet enableintf
description "Enable the interface at 3am"
event timer absolute time 3:00:00
output none
action 1 cli command "interface GigabitEthernet 0/0"
action 2 cli command "no shutdown"
action 3 cli command "write memory"
Esses miniaplicativos EEM também podem ser chamados manualmente. Para fazer isso, o applet deve configurar event none. Para executar um applet manualmente, insira o comando event manager run seguido do nome do applet. Se o applet estiver configurado para qualquer mecanismo de disparo de eventos além de 'none', a tentativa de executá-lo manualmente gerará um erro. Com o uso de um dos exemplos anteriores, 'esgotetedblock', você vê:
ASA# event manager run depletedblock
ERROR: Applet not configured with 'event none'
Os eventos manuais podem ser usados de forma semelhante a uma macro. Por exemplo, um evento manual pode ser usado para executar alguns comandos em ordem. Neste exemplo, ele salva a configuração, faz ping em um host e limpa todos os shuns.
event manager applet clean-up
event none
action 0 cli command "write mem"
action 1 cli command "ping 192.168.1.100"
action 2 cli command "clear shun"
output none
O evento crashinfo aciona um applet quando ocorre um travamento no ASA. Independentemente do valor do comando output, os comandos action são direcionados para o arquivo crashinfo. A saída é gerada antes que a parte show tech das informações de travamento seja gerada.
ASA(config-applet)# [no] event crashinfo
Quando o miniaplicativo é acionado, as ações no miniaplicativo são executadas. Cada ação tem um ordinal que é usado para especificar a ordem das ações. Várias ações podem ser configuradas por miniaplicativo; mas cada ordinal só pode ser usado uma vez. Os comandos são comandos CLI típicos, como show block. Os orçamentos são altamente recomendados, mas não são obrigatórios.
ASA(config-applet)# [no] actioncli command " ASA(config-applet)# no action"
O valor do identificador da ação <n> tem um intervalo de 0 a 4294967295. O valor do <comando> deve ser citado, caso contrário, ocorrerá um erro se o comando consistir em mais de uma palavra. O comando é executado no modo de configuração como um usuário com nível de privilégio 15 (o mais alto). O comando pode não aceitar qualquer entrada; como input será desativado se um comando tiver a opção noconfirm. Isso deve ser usado, já que os comandos não são processados interativamente.
A saída das ações pode ser direcionada para um local especificado através do comando output. Somente um valor de saída pode ser ativado de cada vez. O valor padrão é output none. Esse valor descarta qualquer saída dos comandos de ação.
ASA(config-applet)# [no] output none
O comando output console envia a saída dos comandos action para o console.
ASA(config-applet)# [no] output console
O comando output file direciona a saída dos comandos action para arquivos. Há quatro opções que podem ser usadas. A nova opção grava a saída do applet em um novo arquivo para cada invocação. O nome de arquivo tem o formato eem-<applet>-<timestamp>.log. Onde <applet> é o nome do applet e <timestamp> é um timestamp datado no formato YYYMMDD-hmss.
ASA(config-applet)# [no] output file new
A opção rotate é usada para criar um conjunto de arquivos que são girados de forma semelhante ao mecanismo de rotação de log do Linux. O formato do nome de arquivo é eem-<applet>-<x>.log. Onde <applet> é o nome do applet e <x> é o número do arquivo. O arquivo mais recente é indicado pelo número 0 (zero) e o arquivo mais antigo é indicado pelo número mais alto (<n>-1). Quando um novo arquivo deve ser gravado, o arquivo mais antigo é excluído e todos os arquivos subsequentes são renumerados antes que o 0º arquivo seja gravado.
ASA(config-applet)# [no] output file rotate
O valor de rotação <n> tem um intervalo de 2 a 100.
A opção overwrite é usada para gravar sempre a saída do comando action em um único arquivo que é truncado sempre.
ASA(config-applet)# [no] output file overwrite
A opção append é usada para sempre gravar a saída do comando action em um único arquivo, mas esse arquivo é anexado a cada vez.
ASA(config-applet)# [no] output file append
O argumento <filename> é um nome de arquivo local (para o ASA). O comando overwrite também pode usar ftp:, tftp: e smb: arquivos de destino.
O EEM também pode ser configurado no ASDM. Escolha Configuration > Device Management > Advanced > Embedded Event Manager. Nesta seção do ASDM, você pode configurar seus applets EEM com os mesmos parâmetros discutidos anteriormente. Depois de configurar um applet, clique em Apply para enviar a configuração para o ASA.
Use esta seção para confirmar se a sua configuração funciona corretamente.
Todos esses comandos são usados no modo exec.
Este comando mostra a configuração atual do sistema do gerenciador de eventos.
ASA# show running-config event manager
Este comando executa um applet do gerente de eventos que foi configurado com event none. Se você executar um miniaplicativo que não foi configurado com evento nenhum, um erro será relatado.
ASA# event manager run
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
16-Jul-2014 |
Versão inicial |