Ad Widget

Collapse

некорректное поведение триггера

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alekseev
    Junior Member
    • Sep 2018
    • 8

    #1

    некорректное поведение триггера

    настроил триггер для мониторинга службы nfs-server с таким вот выражением:
    Code:
    {SERVER1 nfs-server:proc.num[nfs-server].last(#2)}=0
    , по логике 0 - работает, 1 - не работает, но как только я его активирую, начинает маячить на экране что данный сервис не работает, но он работает и по аналогии у меня настроено множество триггеров, и они при таких же условиях отрабатывают нормально, к примеру этот
    Code:
    {SERVER2 crond:proc.num[crond].last(#2)}=0
    , в чём может быть трабл?
    Last edited by alekseev; 05-12-2018, 11:34.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    1) А почему Вы проверяете второе с конца (т.е. предыдущее) значение?
    по логике 0 - работает, 1 - не работает
    2) proc.num() возвращает количество процессов. Т.е. 0 - процесса нет, больше ноля - процесс есть. Почему в Ваших рассуждениях логика обратная?

    Comment

    • alekseev
      Junior Member
      • Sep 2018
      • 8

      #3
      я немного запутался., для Centos 7 когда процесс падает, тоесть равен нулю, данный триггер срабатывает на ура, когда сервис действительно остановлен
      Code:
      {Server1 crond:proc.num[crond].last(#2)}=0
      почему тоже самое не работает на Ubuntu 18 я не понимаю, как будто он по какой то другой логике работает, сервис работает - триггер выводит сообщение что нет.
      Last edited by alekseev; 05-12-2018, 12:27.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Ещё раз повторю: триггерная функция last(#2) возвращает второе с конца (т.е. предыдущее) значение. Для неё ещё есть сокращение prev(). В применении к данной задаче в этом мало смысла. Обычно используют либо last() (т.е. одно последнее значение), либо (если надо анализировать несколько значений) - max(#2)=0 (т.е. оба последних значения были нулевыми).

        Что касается другого дистрибутива, то там запросто тот же (по функциям) демон может называться немного по-другому. Скажем, бинарник демона syslog мог называться syslogd, rsyslog или syslog-ng.
        Покажите вывод команды
        Code:
        ps -ef | grep [c]ron
        на вашем Centos-е и на Ubuntu.

        Comment

        • alekseev
          Junior Member
          • Sep 2018
          • 8

          #5
          на centos вывод
          /usr/sbin/crond -n

          на ubuntu вывод
          /usr/sbin/cron -f

          но! что удалось узнать, к примеру на той же ubuntu, если я мониторю nginx через данное выражение

          Code:
           
           {Server1 nginx:proc.num[nginx].last(#2)}=0
          то при останове службы триггер сразу срабатывает и работает как и должен работать, а вот nfs-server заставить не могу....

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #6
            Originally posted by alekseev
            на centos вывод
            /usr/sbin/crond -n

            на ubuntu вывод
            /usr/sbin/cron -f
            При этом у вас мониторится процесс с помощью метрики proc.num[crond], т.е. ищется процесс с именем crond.
            Ещё вопросы есть?

            Comment

            • alekseev
              Junior Member
              • Sep 2018
              • 8

              #7
              в конечном итоге это косяк этого сервиса
              решил свой вопрос с помощью данного выражения:
              Code:
              {имя_сервера:net.tcp.port[ip:port].last(#2)}=0
              спс за помощь!

              Comment

              Working...