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.
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
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.
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}'
Se está tudo bem, tente usar $$ em vez de $ (mytime="$$ ...)
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.
Tags zabbix zabbix-agent