Ad Widget

Collapse

Непонятный глюк с item

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Flegel
    Member
    • Nov 2009
    • 42

    #1

    Непонятный глюк с item

    Всем доброго дня!

    Что мы имеем:
    UserParameter=fpm,/etc/zabbix/php_fpm.sh
    php_fpm.sh
    #!/bin/sh
    PS=`ps -axu |grep php-cgi |grep -v grep |tail -q |awk '{print $11}' |wc -l`

    if [ $PS = 0 ] ; then
    echo 0
    else
    echo 1
    fi
    Fpm запущен, проверяем скрипт
    [root@web1 /etc/zabbix]# ./php_fpm.sh
    1
    Для проверки запускаем на стороне сервера zabbix_get
    /usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1.int -p 10050 -k fpm
    0

    Ничего не понимаю
    Last edited by Flegel; 29-11-2010, 12:19.
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #2
    какой смысл этого скрипта вообще?

    почему нельзя в UserParameter сразу написать:

    Code:
    UserParameter=fpm,ps -axu |grep php-cgi |grep -v grep |wc -l

    Comment

    • Jimson
      Senior Member
      • Jan 2008
      • 1327

      #3
      думаю что из под юзера "zabbix" команда `ps ax` не покажет вам процессы запущенные не из под пользователя zabbix

      если это fbsd, то
      sysctl -a | grep security.bsd.see_other

      Comment

      • Flegel
        Member
        • Nov 2009
        • 42

        #4
        Originally posted by dotneft
        какой смысл этого скрипта вообще?

        почему нельзя в UserParameter сразу написать:

        Code:
        UserParameter=fpm,ps -axu |grep php-cgi |grep -v grep |wc -l
        Сделал по вашему примеру. Непонятно почему, но значения различаются!

        UserParameter=php,ps -axu |grep php-cgi |grep -v grep |wc -l |awk '{print $1}'
        [zabbix@client ~]$ ps -axu |grep php-cgi |grep -v grep |wc -l |awk '{print $1}'
        51

        [root@server ~]# /usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1.int -p 10050 -k php
        0


        думаю что из под юзера "zabbix" команда `ps ax` не покажет вам процессы запущенные не из под пользователя zabbix

        если это fbsd, то
        sysctl -a | grep security.bsd.see_other
        Из под юзера Zabbix все работает, проблем с правами нет
        [zabbix@client ~]$ ps -axu |grep php-cgi |grep -v grep |wc -l |awk '{print $1}'
        51
        sysctl -a | grep security.bsd.see_other
        security.bsd.see_other_gids: 1
        security.bsd.see_other_uids: 1
        Last edited by Flegel; 29-11-2010, 13:54.

        Comment

        • Flegel
          Member
          • Nov 2009
          • 42

          #5
          Originally posted by dima_dm
          Попробуйте так
          Code:
          userparameter=php,ps -axu |grep php-cgi |grep -v grep |wc -l |awk '{print $$1}'
          Не работает...
          На клиенте вывод такой команды ничего не даёт
          ps -axu |grep php-cgi |grep -v grep |wc -l |awk '{print $$1}'
          На сервере:
          [root@server ~]#/usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1 -p 10050 -k php1
          0

          Comment

          • Jimson
            Senior Member
            • Jan 2008
            • 1327

            #6
            набивайте свою строку "по шагам", вначале просто "ps -axu" проверьте что через zabbix_get возвращается, затем добавляйте конвееры по одному

            P.S. у себя проверил, все работает

            Comment

            • dima_dm
              Senior Member
              • Dec 2009
              • 2697

              #7
              Originally posted by Flegel
              Не работает...
              На клиенте вывод такой команды ничего не даёт

              На сервере:
              Я уже понял, такой приём применяется при использовании key c параметрами. т.е. key[*]. Поэтому и удалил.

              Comment

              • `kk
                Junior Member
                • Jun 2010
                • 1

                #8
                поставьте агенту DebugLevel=4 и посмотрите лог

                Comment

                • Flegel
                  Member
                  • Nov 2009
                  • 42

                  #9
                  Originally posted by Jimson
                  набивайте свою строку "по шагам", вначале просто "ps -axu" проверьте что через zabbix_get возвращается, затем добавляйте конвееры по одному

                  P.S. у себя проверил, все работает
                  Проверил по шагам...
                  ps -axu |grep php-cgi - работает
                  ps -axu |grep php-cgi |grep -v grep |wc -l - уже не работает, т.е.
                  [root@con2 ~]# /usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1 -p 10050 -k php1
                  0
                  Можно Ваш пример в студию?

                  Comment

                  • Flegel
                    Member
                    • Nov 2009
                    • 42

                    #10
                    Originally posted by `kk
                    поставьте агенту DebugLevel=4 и посмотрите лог
                    Давно в debug режиме
                    17365:20101129:151453.224 Requested [php1]
                    17365:20101129:151453.229 Run remote command [ps -axu |grep php-cgi |grep -v grep |wc -l] Result [8] [ 0]...

                    Comment

                    • Jimson
                      Senior Member
                      • Jan 2008
                      • 1327

                      #11
                      Code:
                      jimson[root]:.../devel-zabbix-agent # cat /usr/local/etc/zabbix/zabbix_agentd.conf | g ^UserParam
                      UserParameter=fpm,ps -axu |grep zabbix |grep -v grep |wc -l |awk '{print $1}'
                      jimson[root]:.../devel-zabbix-agent # ps -axu |grep zabbix |grep -v grep |wc -l |awk '{print $1}'
                      25
                      jimson[root]:.../devel-zabbix-agent # /usr/local/etc/rc.d/zabbix_agentd start
                      Starting zabbix_agentd.
                      jimson[root]:.../devel-zabbix-agent # zabbix_get -s localhost -k fpm
                      38
                      так я не понял, "wc -l" не работает или что ? "шаги" они для того что бы не возникало потом вопрос или/или

                      P.S. кстати, лучше "ps axuww"

                      Comment

                      • Flegel
                        Member
                        • Nov 2009
                        • 42

                        #12
                        Originally posted by Jimson
                        Code:
                        jimson[root]:.../devel-zabbix-agent # cat /usr/local/etc/zabbix/zabbix_agentd.conf | g ^UserParam
                        UserParameter=fpm,ps -axu |grep zabbix |grep -v grep |wc -l |awk '{print $1}'
                        jimson[root]:.../devel-zabbix-agent # ps -axu |grep zabbix |grep -v grep |wc -l |awk '{print $1}'
                        25
                        jimson[root]:.../devel-zabbix-agent # /usr/local/etc/rc.d/zabbix_agentd start
                        Starting zabbix_agentd.
                        jimson[root]:.../devel-zabbix-agent # zabbix_get -s localhost -k fpm
                        38
                        так я не понял, "wc -l" не работает или что ? "шаги" они для того что бы не возникало потом вопрос или/или

                        P.S. кстати, лучше "ps axuww"
                        По видимому не работала связка |grep -v grep |

                        С ps axuww стало лучше, но...на клиенте 52 процесса, а на сервере 53

                        UserParameter=php1,ps axuww |grep php-cgi |wc -l |awk '{print $1}'

                        ps axuww |grep php-cgi |wc -l |awk '{print $1}'
                        52

                        /usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1 -p 10050 -k php1
                        53
                        Last edited by Flegel; 29-11-2010, 14:48.

                        Comment

                        • Jimson
                          Senior Member
                          • Jan 2008
                          • 1327

                          #13
                          как то так можно еще попробовать: echo $((`ps axww | grep -c zabbix`-1))

                          Comment

                          • Flegel
                            Member
                            • Nov 2009
                            • 42

                            #14
                            Originally posted by jimson
                            как то так можно еще попробовать: Echo $((`ps axww | grep -c zabbix`-1))
                            Костыль на костыле едет и костылём погоняет...
                            userparameter=php1,echo $((`ps axww | grep -c php-cgi`-3))

                            [root@web1 /etc/zabbix]# echo $((`ps axww | grep -c php-cgi`-3))
                            -2

                            [root@con2 ~]# /usr/local/etc/zabbix1.8.3/sbin/zabbix_get -s web1 -p 10050 -k php1
                            0
                            В моем случае этого достаточно, спасибо!

                            Comment

                            • gdgsoft
                              Senior Member
                              • Apr 2009
                              • 202

                              #15
                              Собственно, наткнулся на проблему с итемом. И не могу понять в чем дело.
                              Под админом
                              /bin/ps ax|/usr/bin/grep -c gdg_aaa.php
                              возвращает двойку.
                              Под пользователем zabbix, через sudo -s -u zabbix возвращает тоже двойку.

                              А дальше все начинается самое интересное:
                              zabbix_agentd -p
                              возвращает:
                              check.aaa [t|3]
                              Почему 3 не понятно, должно быть два, т.к. запущен сам процесс и второй это собственно "grep check.aaa"

                              В то же время:
                              zabbix_get -s localhost -k "check.aaa"
                              2

                              Получается разница между zabbix_agentd и zabbix_get

                              В zabbix_agentd.conf прописано:
                              UserParameter=check.aaa,/bin/ps ax|/usr/bin/grep -c gdg_aaa.php

                              Тип элемента: "Zabbix agent". Тип информации: "Numeric (unsigned)"

                              После того как убиваю процесс "gdg_aaa.php", "zabbix_agentd -p" возвращает:
                              check.aaa [t|2]
                              в то же время zabbix_get -s localhost -k "check.aaa" по прежнему возвращает двойку

                              И как следствие триггер не срабатывает, так как в элементе постоянно ДВОЙКА!
                              В общем, клиника.
                              Что может быть?

                              P.S.: о проблеме в начале ветки хочу сказать, что проблема действительно в "grep -v grep". Сам столкнулся.
                              Zabbix 2.4.2
                              PHP 5.4.5
                              Oracle Linux 6.5
                              VmWare ESXi 4

                              MariaDB 10.0.15
                              Oracle Linux 6.5
                              Supermicro SYS-6027TRF(64Gb+RAID-10 600Gb SAS15k)

                              Comment

                              Working...