Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

12 Expressões regulares

Visão geral

Expressões regulares compatíveis com Perl (PCRE, PCRE2) são suportadas no Zabbix.

Existem duas maneiras de usar expressões regulares no Zabbix:

  • inserindo manualmente uma expressão regular
  • usando uma expressão regular global criada no Zabbix

Expressões regulares

Você pode inserir manualmente uma expressão regular nos locais suportados. Observe que a expressão não pode começar com @ porque esse símbolo é usado no Zabbix para referenciar expressões regulares globais.

É possível ficar sem pilha ao usar expressões regulares. Consulte a página de manual do pcrestack para mais informações.

Observe que, na correspondência multilinha, os delimitadores ^ e $ correspondem ao início/fim de cada linha, respectivamente, em vez do início/fim de toda a string.

Veja também exemplos de escape correto em vários contextos.

Expressões regulares globais

Existe um editor avançado para criar e testar expressões regulares complexas no frontend do Zabbix.

Uma vez que uma expressão regular tenha sido criada dessa forma, ela pode ser usada em vários locais no frontend, referenciando seu nome, prefixado com @, por exemplo, @minhaexpressaoregular.

Para criar uma expressão regular global:

  • Vá para: Administração → Geral
  • Selecione Expressões regulares no menu suspenso
  • Clique em Nova expressão regular

A aba Expressões permite definir o nome da expressão regular e adicionar subexpressões.

Todos os campos obrigatórios estão marcados com um asterisco vermelho.

Parâmetro Descrição
Nome Defina o nome da expressão regular. Qualquer caractere Unicode é permitido.
Expressões Clique em Adicionar no bloco Expressões para adicionar uma nova subexpressão.
Tipo de expressão Selecione o tipo de expressão:
String de caracteres incluída - corresponde à substring
Qualquer string de caracteres incluída - corresponde a qualquer substring de uma lista delimitada. A lista delimitada inclui uma vírgula (,), um ponto (.) ou uma barra (/).
String de caracteres não incluída - corresponde a qualquer string, exceto a substring
Resultado é VERDADEIRO - corresponde à expressão regular
Resultado é FALSO - não corresponde à expressão regular
Expressão Digite a substring/expressão regular.
Delimitador Uma vírgula (,), um ponto (.) ou uma barra (/) para separar strings de texto em uma expressão regular. Este parâmetro só está ativo quando o tipo de expressão "Qualquer string de caracteres incluída" é selecionado.
Diferenciar maiúsculas de minúsculas Uma caixa de seleção para especificar se uma expressão regular diferencia maiúsculas de minúsculas.

Uma barra (/) na expressão é tratada literalmente, e não como um delimitador. Dessa forma, é possível salvar expressões contendo uma barra, sem erros.

Um nome de expressão regular personalizada no Zabbix pode conter vírgulas, espaços, etc. Nos casos em que isso possa levar a uma má interpretação ao referenciar (por exemplo, uma vírgula no parâmetro de uma chave de item), toda a referência pode ser colocada entre aspas assim: "@Minha expressão regular personalizada para propósito1, propósito2".  Os nomes das expressões regulares não devem ser colocados entre aspas em outros locais (por exemplo, nas propriedades da regra LLD).

Na aba Testar, a expressão regular e suas subexpressões podem ser testadas fornecendo uma string de teste.

Os resultados mostram o status de cada subexpressão e o status total da expressão personalizada.

O status total da expressão personalizada é definido como Resultado combinado. Se várias subexpressões forem definidas, o Zabbix usa o operador lógico AND para calcular o Resultado combinado. Isso significa que, se pelo menos um Resultado for Falso, o Resultado combinado também terá o status Falso.

Expressões regulares globais padrão

O Zabbix vem com várias expressões regulares globais em seu conjunto de dados padrão.

Nome Expressão Corresponde
Sistemas de arquivos para descoberta ^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|apfs|ntfs|fat32|zfs)$ "btrfs" ou "ext2" ou "ext3" ou "ext4" ou "jfs" ou "reiser" ou "xfs" ou "ffs" ou "ufs" ou "jfs" ou "jfs2" ou "vxfs" ou "hfs" ou "refs" ou "apfs" ou "ntfs" ou "fat32" ou "zfs"
Interfaces de rede para descoberta ^Software Loopback Interface Strings que começam com "Software Loopback Interface".
^lo$ "lo"
^(In)?[Ll]oop[Bb]ack[0-9._]*$ Strings que opcionalmente começam com "In", depois têm "L" ou "l", depois "oop", depois "B" ou "b", depois "ack", que podem ser seguidas opcionalmente por qualquer número de dígitos, pontos ou sublinhados.
^NULL[0-9.]*$ Strings que começam com "NULL" seguidas opcionalmente por qualquer número de dígitos ou pontos.
^[Ll]o[0-9.]*$ Strings que começam com "Lo" ou "lo" e opcionalmente seguidas por qualquer número de dígitos ou pontos.
^[Ss]ystem$ "System" ou "system"
^Nu[0-9.]*$ Strings que começam com "Nu" seguidas opcionalmente por qualquer número de dígitos ou pontos.
Dispositivos de armazenamento para descoberta SNMP ^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$ "Physical memory" ou "Virtual memory" ou "Memory buffers" ou "Cached memory" ou "Swap space"
Nomes de serviços do Windows para descoberta ^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$ "MMCSS" ou "gupdate" ou "SysmonLog" ou strings como "clr_optimization_v2.0.50727_32" e "clr_optimization_v4.0.30319_32" onde, em vez de pontos, você pode colocar qualquer caractere, exceto nova linha.
Estados de inicialização de serviços do Windows para descoberta ^(automatic|automatic delayed)$ "automatic" ou "automatic delayed"

Exemplos

Exemplo 1

Uso da seguinte expressão na descoberta de baixo nível para descobrir bancos de dados, exceto um banco de dados com um nome específico:

^TESTDATABASE$

regexp_expr_2.png

Tipo de expressão escolhido: "O resultado é FALSO". Não corresponde ao nome, contendo a string "TESTDATABASE".

Exemplo com um modificador de regex embutido

Uso da seguinte expressão regular incluindo um modificador embutido (?i) para corresponder aos caracteres "error":

(?i)error

regexp_expr_3a.png

Tipo de expressão escolhido: "Resultado é VERDADEIRO". Os caracteres "error" são correspondidos.

Outro exemplo com um modificador regex embutido

Uso da seguinte expressão regular incluindo múltiplos modificadores embutidos para corresponder aos caracteres após uma linha específica:

(?<=match (?i)everything(?-i) after this line\n)(?sx).*# adicionamos o modificador s para permitir que . corresponda a caracteres de nova linha

regexp_expr_4_new.png

Tipo de expressão escolhido: "Resultado é VERDADEIRO". Os caracteres após uma linha específica são correspondidos.

O modificador g não pode ser especificado em linha. A lista de modificadores disponíveis pode ser encontrada na página do manual pcresyntax. Para mais informações sobre a sintaxe PCRE, consulte a documentação HTML do PCRE.

Suporte a expressões regulares por local

Localização Expressão regular Expressão regular global Correspondência multilinha Comentários
Itens do agent
eventlog[] Sim Sim Sim parâmetros regexp, severity, source, eventid
eventlog.count[] parâmetros regexp, severity, source, eventid
log[] parâmetro regexp
log.count[]
logrt[] Sim/Não parâmetro regexp suporta ambos, parâmetro file_regexp suporta apenas expressões não globais
logrt.count[]
proc.cpu.util[] Não Não parâmetro cmdline
proc.get[]
proc.mem[]
proc.num[]
sensor[] parâmetros device e sensor no Linux 2.4
system.hw.macaddr[] parâmetro interface
system.sw.packages[] parâmetro regexp
system.sw.packages.get[] parâmetro regexp
vfs.dir.count[] parâmetros regex_incl, regex_excl, regex_excl_dir
vfs.dir.get[] parâmetros regex_incl, regex_excl, regex_excl_dir
vfs.dir.size[] parâmetros regex_incl, regex_excl, regex_excl_dir
vfs.file.regexp[] Sim parâmetro regexp
vfs.file.regmatch[]
web.page.regexp[]
Traps SNMP
snmptrap[] Sim Sim Não parâmetro regexp
Pré-processamento de valor de item Sim Não Não parâmetro pattern
Funções para triggers/itens calculados
count() Sim Sim Sim parâmetro pattern se o parâmetro operator for regexp ou iregexp
countunique() Sim Sim
find() Sim Sim
logeventid() Sim Sim Não parâmetro pattern
logsource()
Descoberta de baixo nível
Filtros Sim Sim Não campo Expressão regular
Substituições Sim Não Nas opções corresponde, não corresponde para condições de Operação
Condições de ação Sim Não Não Nas opções corresponde, não corresponde para condições de autoregistro Nome do host e Metadados do host
Scripts Sim Sim Não campo Regra de validação de entrada
Monitoramento web Sim Não Sim Variáveis com prefixo regex:
campo String obrigatória
Contexto de macro de usuário Sim Não Não No contexto de macro com prefixo regex:
Funções de macro
regsub() Sim Não Não parâmetro pattern
iregsub()
Indicadores de link em mapas Sim Não Não campo Padrão (para itens de texto)
Mapeamento de ícones Sim Sim Não campo Expressão
Mapeamento de valores Sim Não Não campo Valor se o tipo de mapeamento for regexp