Arquivos XML

Escrito por Hitfy

Documentação para implantação de:

Arquivos XML

Arquivos XML com Discovery

Arquivos XML do TMS


Arquivos XML

Documentação para criar itens personalizados que monitoram os arquivos.


Para monitorar arquivos, utilizar a chave:

vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]


Onde:

  • file - caminho completo para o arquivo
  • regexp - expressão regular no padrão GNU
  • encoding - identificador do código de página
  • start line - número da primeira linha a pesquisar (por padrão é a primeira linha do arquivo).
  • end line - número da última linha a pesquisar (por padrão a última linha do arquivo).
  • output - parâmetro opcional de formatação. A sequência de escape \0 será substituída pelo texto encontrado enquanto a sequência de escape \N (onde N=1...9) será substituída pela Nth ocorrência (ou um texto vazio se N for maior que a quantidade de ocorrências).


Para mais informações, visitar a documentação oficial do Zabbix:

https://www.zabbix.com/documentation/4.4/en/manual/config/items/itemtypes/zabbix_agent


Arquivos XML com Discovery

Template: Template_Descoberta_Arquivo_XML_Padrao

Aplicar a template padrão e então alterar as macros de configuração.


Definir o caminho a ser monitorado nas macros onde se encontra a consulta PowerShell.


Diretório Exemplo:

C:\TMS\Producao\*\Arquivo.extensão


Arquivo Exemplo:

tasks.xml


A pasta será descoberta quando existir o arquivo informado no diretório.

Com isso, basta editar as macros "{$DISC1}" e "{$DISC2}" com as informações, conforme exemplo:

[System.Collections.ArrayList]$dados = @(); $i = Get-ChildItem -Path C:\TMS\Producao; foreach($dir in $i){ $file = $dir.FullName; $path = \"$file\tasks.xml\"; if(Test-Path -Path $path){ $index = $dados.Add($dir) } }; $result = $dados | select @{Name=\"{#N}\";Expression={$_.Name}} | ConvertTo-Json -Compress; Write-Output '{\"data\":' $result '}'


Arquivos XML do TMS

Template: Template_TMS-XML_Padrao

Esta template funciona assim como a de Descoberta.


Basta editar a macro "{$COMANDO}" com o diretório e arquivo:

powershell "$(get-childitem C:\TMS).getfiles('tasks.xml') | select-object * | select @{Name=\"{#N}\";Expression={$_.FullName}} | convertto-json -compress"