Ad Widget

Collapse

перестает работать UserParameter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • daevy
    Member
    • Apr 2009
    • 37

    #1

    перестает работать UserParameter

    Всем привет! такая проблема всплывает время от времени, завел на почтовике следующий параметр

    Code:
    UserParameter=postfix.queue,mailq |grep Requests |awk '{print $5}'
    который показывает сколько писем в очереди постфикса, параметр одно время работал потом как то перестал:-) на запрос

    Code:
    zabbix_get -s 10.1.0.3 -k postfix.queue
    стал выдавать ZBX_NOTSUPPORTED, я бился не смог запустить плюнул))) оно както заработало потом, сейчас опять перестало работать в чем проблема? может быть из-за того что в очереди нет писем и команда mailq выдает пустой результат (ненулевой)??
    Last edited by daevy; 07-08-2009, 11:30.
  • Alexei
    Founder, CEO
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Sep 2004
    • 5654

    #2
    Originally posted by daevy
    может быть из-за того что в очереди нет писем и команда mailq выдает пустой результат (ненулевой)??
    Именно так. User parameter не должен возвращать пустую строку.
    Alexei Vladishev
    Creator of Zabbix, Product manager
    New York | Tokyo | Riga
    My Twitter

    Comment

    • daevy
      Member
      • Apr 2009
      • 37

      #3
      +

      блин грустно:-) а это учтётся в следующих релизах?

      Comment

      • Alexei
        Founder, CEO
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Sep 2004
        • 5654

        #4
        Originally posted by daevy
        блин грустно:-) а это учтётся в следующих релизах?
        Почему грустно? Переписываем User Parameter так, чтобы он не возвращал пустую строку и все. А как прикажете Zabbix'у обрабатывать пустые значения?
        Alexei Vladishev
        Creator of Zabbix, Product manager
        New York | Tokyo | Riga
        My Twitter

        Comment

        • daevy
          Member
          • Apr 2009
          • 37

          #5
          +

          некоторые команды могут ничего не выводить по этому в таких случаях подстроить UserParameter будет очень проблематично, в таких случаях вижу выход только в написании дополнительного скрипта в котором будет выполняться команда и пустое значение будет преобразовываться в нуль. и в UserParameter выполнять этот самый скрипт.
          А ненулевые значения можно принимать за ноль, например в zabbix_agentd реализовать такую возможность и чтобы она могла быть доступна в качестве опции типа
          ChangeEmptyValuesToZero=yes/no
          :-)
          по умолчанию пусть стоит в NO, кому надо включит.

          Comment

          • noname
            Senior Member
            • Jan 2008
            • 120

            #6
            echo "" | perl -e'print "none" if /^$/'

            Comment

            • Alexei
              Founder, CEO
              Zabbix Certified Trainer
              Zabbix Certified SpecialistZabbix Certified Professional
              • Sep 2004
              • 5654

              #7
              Originally posted by daevy
              некоторые команды могут ничего не выводить по этому в таких случаях подстроить UserParameter будет очень проблематично, в таких случаях вижу выход только в написании дополнительного скрипта в котором будет выполняться команда и пустое значение будет преобразовываться в нуль. и в UserParameter выполнять этот самый скрипт.
              А ненулевые значения можно принимать за ноль, например в zabbix_agentd реализовать такую возможность и чтобы она могла быть доступна в качестве опции типа
              ChangeEmptyValuesToZero=yes/no
              :-)
              по умолчанию пусть стоит в NO, кому надо включит.
              Не думаю, что добавление "|| echo 0" (или awk, grep, etc) проблематично. А почему собственно 0, а не 1 или "No data"? Если UserParameter должен возвратить число, извольте написать его так, чтобы он это делал. Если мы будем добавлять новые опции по случаю и без, ни к чему хорошему это не приведёт.
              Alexei Vladishev
              Creator of Zabbix, Product manager
              New York | Tokyo | Riga
              My Twitter

              Comment

              • daevy
                Member
                • Apr 2009
                • 37

                #8
                +

                Originally posted by alexei
                || echo 0
                ой-йёё вот я пень как мне это в голову не пришло:d спасибо!!

                хотя в случай с mailq, || echo 0 не прокатывает, даже при пустой очереди, выполнение команды считается успешным и команда после || не выполянется. решил задачу через условие if..fi получилось правда длинее.

                if [ -z `mailq |grep Request |awk '{print $5}'` ]; then echo 0; else mailq |grep Request |awk '{print $5}'; fi
                Last edited by daevy; 07-08-2009, 11:28.

                Comment

                Working...