Expressões regulares compatíveis com Perl (PCRE, PCRE2) são suportadas no Zabbix.
Há dois modos de usar expressões regulares no Zabbix:
Você pode informar manualmente uma expressão regular nos locais suportados. Note que a expressão pode não começar com @ porque esse símbolo é usado no Zabbix para referenciar expressões regulares globais.
É possível ficar sem stack quando usando expressões regulares. Consulte a página de manual pcrestack para mais informações.
Note que em correspondência multilinear, as âncoras ^
e $
correspondem ao início/fim de cada linha respectivamente, em vez do início/fim da string completa.
Há um editor avançado para criação e teste de expressões regulares complexas no Zabbix Frontend.
Uma vez que uma expressão regular é criada desta forma, ela pode ser usada em vários locais no Frontend referenciando seu nome, prefixado com @, por exemplo, @meuregexcustomizado.
Para criar uma expressão regular global:
A aba Expressões permite definir o nome da expressão regular e adicionar subexpressões.
Todos os campos de entrada obrigatórios estão marcados com um asterisco vermelho.
Parâmetro | Descrição | |
---|---|---|
Nome | Defina o nome da expressão regular. Quaisquer caracteres Unicode são permitidos. | |
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 caractere inclusa - corresponde a substring Qualquer string de caractere inclusa - corresponde qualquer substring de uma lista delimitada. A lista delimitada inclui uma vírgula (,), um ponto (.) ou uma barra (/). String de caractere não inclusa - corresponde qualquer string exceto a substring Resultado é VERDADEIRO - corresponde a expressão regular Resultado é FALSO - não corresponde à expressão regular |
|
Expressão | Informe 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 está ativo apenas quando o tipo de expressão "Qualquer string de caractere inclusa" estiver selecionado. | |
Sensível a maiúsculas/minúsculas | Uma caixa de seleção para especificar se uma expressão regular é sensível à capitalização de letras. |
Uma barra (/) na expressão é tratada literalmente, em vez de um delimitador. Desta forma é possível salvar expressões contendo uma barra, sem erros.
Um nome de expressão regular customizada no Zabbix pode conter vírgulas, espaços, etc. Nos casos onde isto pode incorrer em má interpretação quando referenciando (por exemplo, uma vírgula no parâmetro de uma chave de item) a referência completo pode ser colocada entre quotas da seguinte forma: "@Meu regex customizado para objetivo1, objetivo2".
Nomes de expressão regular não devem ser quotados em outros locais (por exemplo, em propriedades de regra LLD).
Na aba Teste a expressão regular e suas subexpressões pode ser testadas pelo fornecimento de uma string de teste.
Os resultados mostram e estado de cada subexpressão e o estado da expressão customizada total.
O estado de expressão customizada total é definido como Resultado combinado. Se várias subexpressões são definidas o Zabbix usa o operador lógico AND para calcular o Resultado combinado. Isto significa que se ao menor um Resultado for Falso, o Resultado combinado também terá um estado Falso.
O Zabbix vem com várias expressões regulares globais em seu conjunto de dados padrão.
Nome | Expressão | Correspondências |
---|---|---|
Descoberta de sistemas de arquivo | ^(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 começando com "Software Loopback Interface". |
^lo$ |
"lo" | |
^(In)?[Ll]oop[Bb]ack[0-9._]*$ |
Strings que opcionalmente começam com "In", e então têm "L" ou "l", então "oop", então "B" ou "b", então "ack", que pode ser opcionalmente seguido por qualquer número de dígitos, pontos ou sublinhas. | |
^NULL[0-9.]*$ |
Strings começando com "NULL" opcionalmente seguidas por qualquer número de dígitos ou pontos. | |
^[Ll]o[0-9.]*$ |
Strings começando 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 começando com "Nu" opcionalmente seguidas 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 (Memória física)" ou "Virtual memory (Memória virtual)" ou "Memory buffers (Buffers de memória)" ou "Cached memory (Memória em cache)" ou "Swap space (Memória de troca)" |
Nomes de serviço 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. |
Estado de início de serviço Windows para descoberta | ^(automatic\|automatic delayed)$ |
"automatic (automático)" ou "automatic delayed (automático com atraso)" |
Uso da seguinte expressão em descoberta de baixo-nível para descobrir bancos de dados, exceto um banco de dados com um nome específico:
Tipo de expressão escolhido: "Resultado é FALSO". Não corresponde ao nome, contendo string "TESTDATABASE".
Uso da seguinte expressão regular incluindo um modificador em linha (?i) para corresponder os caracteres "erro":
Tipo de expressão escolhido: "Resultado é VERDADEIRO". Os caracteres "erro" são correspondidos.
Uso da seguinte expressão regular incluindo múltiplos modificadores em linha para corresponder aos caracteres após uma linha específica:
(?<=testar (?i)tudo(?-i) apos esta linha\n)(?sx).*# nós adicionamos o modificador s para permitir . corresponder a caracteres de nova linha
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 de manual pcresyntax. Para mais informações sobre a sintaxe PCRE, por favor consulte a documentação HTML PCRE.
Localização | Expressão regular | Expressão regular global | Comentários | |
---|---|---|---|---|
Itens do Agent | ||||
eventlog[] | Sim | Sim | 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 | parâmetro cmdline |
||
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 package |
|||
vfs.dir.count[] | parâmetros regex_incl , regex_excl , regex_excl_dir |
|||
vfs.dir.size[] | parâmetros regex_incl , regex_excl , regex_excl_dir |
|||
vfs.file.regexp[] | parâmetro regexp |
|||
vfs.file.regmatch[] | ||||
web.page.regexp[] | ||||
SNMP traps | ||||
snmptrap[] | Sim | Sim | parâmetro regexp |
|
Pré-processamento de valor de item | Sim | Não | parâmetro pattern |
|
Funções para itens de gatilho/calculados | ||||
count() | Sim | Sim | parâmetro pattern se parâmetro operator é regexp ou iregexp |
|
countunique() | Sim | Sim | ||
find() | Sim | Sim | ||
logeventid() | Sim | Sim | parâmetro pattern |
|
logsource() | ||||
Descoberta de baixo-nível | ||||
Filters (filtra) | Sim | Sim | Campo Expressão regular | |
Overrides (sobrescreve) | Sim | Não | Nas opções corresponde (matches), não corresponde (does not match) para condições Operação | |
Condições de ação | Sim | Não | Nas opções corresponde (matches), não corresponde (does not match) para condições de autoregistro Nome do host (Host name) e Metadados do host (Host metadata) | |
Monitoramento web | Sim | Não | Variáveis com um prefixo regex: Campo String requerida |
|
Contexto de macro de usuário | Sim | Não | Em contexto de macro com um prefixo regex: | |
Funções de macro | ||||
regsub() | Sim | Não | parâmetro pattern |
|
iregsub() | ||||
Mapeamento de ícone | Sim | Sim | Campo Expressão | |
Mapeamento de valor | Sim | Não | Campo Valor se o tipo de mapeamento é regexp |