UserParameter do Zabbix retorna dois valores e nenhum está correto

1

Eu criei a velocidade de medida do parâmetro do usuário das gravações no lun iscsi que se parece com isso:

UserParameter=write.perf.mon[*], mytime="$(time -p  (dd if=/dev/zero of=$1 oflag=direct bs=4k count=1000) 2>&1 1>/dev/null )"; echo "$mytime" | grep real | awk '{print $$2}'

Se executado a partir do shell com valores corretos, ele produzirá a seguinte saída:

2.78

Quando é executado pelo agente zabbix, consigo ver o comando correto no log, mas ele mostra o seguinte:

7770:20150921:123734.823 Run remote command [ mytime="$(time -p  (dd if=/dev/zero of=path_to_file oflag=direct bs=4k count=1000) 2>&1 1>/dev/null )"; echo "$mytime" | grep real | awk '{print $2}'] Result [4] [0.00]...

E o zabbix coleta zeros.

Por favor, ajude com qualquer pista porque é assim e como ela pode ser corrigida

Obrigado,

Dmitry

    
por Dmitry Sterh 21.09.2015 / 22:17

2 respostas

0

Verifique o usuário que executa o zabbix_agent.
Por padrão, esse é o usuário zabbix . Verifique se sua cadeia de comandos em execução com seus direitos mostra o valor correto. Muito provavelmente você não tem direitos suficientes.

    
por 14.10.2015 / 08:55
0
  1. Tente executar seu script pelo usuário zabbix

    su zabbix & & mytime="$ (tempo -p (dd se = / dev / zero de = path_to_file oflag = direto bs = 4k count = 1000) 2 > & 1 1 > / dev / null)"; echo "$ mytime" | grep real | awk '{print $ 2}'

  2. Se está tudo bem, tente usar $$ em vez de $ (mytime="$$ ...)

  3. Check UnsafeUserParameters está definido como "on" na sua máquina do agente do zabbix. Parece que sua variável path_to_file contém '/'. Consulte o manual do usuário:

Unless UnsafeUserParameters agent daemon configuration option is enabled, it is not allowed to pass flexible parameters containing these symbols: \ ' “ ' * ? [ ] { } ~ $ ! & ; ( ) < > | # @. Additionally, newline is not allowed either.

    
por 17.11.2015 / 20:30