Ad Widget

Collapse

Диагностика zabbix_sender

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • as.mironov
    Junior Member
    • Sep 2016
    • 6

    #1

    Диагностика zabbix_sender

    Доброго времени суток, All! Я тут немножко голову сломал. Вот что значит вечер пятницы...

    Есть Zabbix 2.4. В нём есть настроенный хост (FreeBSD). На нём и сервер, и агент. Данные идут, всё ок.

    Создал тестовый итем my_test типа траппер, значение - числовое целое. Пытаюсь отправить в него значение с помощью zabbix_sender.

    Пробую традиционным путём - получается:
    Code:
    $  /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -z 127.0.0.1 -k my_test -o 10
    info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000063"
    sent: 1; skipped: 0; total: 1
    Пробую вариант для нескольких элементов данных - фейл:
    Code:
    $ /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -i - -vv
    - my_test 11
    zabbix_sender [21707]: DEBUG: answer [{"response":"success","info":"processed: 0; failed: 1; total: 1; seconds spent: 0.000034"}]
    info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000034"
    sent: 1; skipped: 0; total: 1
    Что я делаю не так?
    sudo пробовал. Указывать явным образом сервер (-z) и хост (-s) пробовал. Не помогает
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Originally posted by as.mironov

    Пробую вариант для нескольких элементов данных - фейл:
    Code:
    $ /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -i - -vv
    - my_test 11
    zabbix_sender [21707]: DEBUG: answer [{"response":"success","info":"processed: 0; failed: 1; total: 1; seconds spent: 0.000034"}]
    info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000034"
    sent: 1; skipped: 0; total: 1
    Что я делаю не так?
    sudo пробовал. Указывать явным образом сервер (-z) и хост (-s) пробовал. Не помогает
    Если вы хотите передать значения нескольких айтемов сразу с помощью опции -i, то эти данные сначала надо поместить в файл (структура файла описана в доке) и посылать, например, так:
    /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -i /tmp/file_name

    Comment

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

      #3
      Originally posted by Semiadmin
      Если вы хотите передать значения нескольких айтемов сразу с помощью опции -i, то эти данные сначала надо поместить в файл (структура файла описана в доке) и посылать, например, так:
      /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -i /tmp/file_name
      Да не, тут всё OK: если в качестве имени файла передавать минус ("-"), то он вместо файла читает из stdin. Проверено, работает (у нас так много чего заскриптовано ещё с версии 2.0).

      Указывать явным образом сервер (-z) и хост (-s) пробовал. Не помогает
      Это нужно в том случае, если они не прописаны в конфиге, на который ссылается ключ "-c". Для проверки можно попробовать не задавать параметр "-c", а явно указать и сервер, и хост. Только я бы ещё, всё-таки, попробовал бы не вводить данные для stdin руками, а использовать, например, конвейер; примерно так:
      Code:
      echo "- my_test 10" | /usr/local/bin/zabbix_sender -z 127.0.0.1 -s ВашХост -i -
      "ВашХост" должен совпадать (включая регистр букв) с тем именем, которое задано для хоста в веб-интерфейсе (параметр "Host name", не путать с "Visible name").

      Comment

      • as.mironov
        Junior Member
        • Sep 2016
        • 6

        #4
        Это нужно в том случае, если они не прописаны в конфиге, на который ссылается ключ "-c". Для проверки можно попробовать не задавать параметр "-c", а явно указать и сервер, и хост. Только я бы ещё, всё-таки, попробовал бы не вводить данные для stdin руками, а использовать, например, конвейер; примерно так:
        Я в общем-то так и делал, руками стал пробовать от безысходности

        Результат, к сожалению, тот же:

        Code:
        $ echo "- my_test 7" | sudo -u zabbix /usr/local/bin/zabbix_sender -i - -vv -z 172.16.220.27 -s 172.16.220.27
        zabbix_sender [19719]: DEBUG: answer [{"response":"success","info":"processed: 0; failed: 1; total: 1; seconds spent: 0.000041"}]
        info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000041"
        sent: 1; skipped: 0; total: 1
        Code:
        $ echo "- my_test 7" | sudo /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix24/zabbix_agentd.conf -i - -vv
        zabbix_sender [28443]: DEBUG: answer [{"response":"success","info":"processed: 0; failed: 1; total: 1; seconds spent: 0.000038"}]
        info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000038"
        sent: 1; skipped: 0; total: 1
        При этом я почти уверен, что ошибка какая-нибудь тупая... но какая? Zabbix даёт нуль диагностической инфы

        Comment

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

          #5
          Originally posted by as.mironov
          При этом я почти уверен, что ошибка какая-нибудь тупая... но какая? Zabbix даёт нуль диагностической инфы
          Да, с диагностикой у него, к сожалению, не очень; но это уже, видимо, особенности API. В общем случае, общение агента в активном режиме (либо утилиты zabbix_sender - они используют тот же протокол общения) с сервером сводится к отправке на сервер какого-то количества метрик и получению ответа со статистикой (сколько передано всего, сколько из них принято и обработано успешно и т.д.). Сервер не возвращает назад никаких сведений о том, почему ему не удалось что-то обработать, и zabbix_sender об этом просто "не знает" (соответственно, и что-либо внятное сказать не может).

          Реально из ответа видно, что, как минимум, пересылка на сервер отрабатывает успешно (оба раза возвращается: "sent: 1"). Т.е. zabbix_sender вызывается, данные получает, и на сервер отправляет. Следовательно, ошибку искать надо в другом месте.

          В моей практике сервер отказывался обрабатывать принятые данные в следующих случаях:
          • на указанном хосте отсутствовал элемент данных с таким ключом. Например: неверно указано имя хоста, опечатка в наименовании ключа айтема (особенно, если он включает в себя пробелы, кавычки и прочие символы, которые обрабатываются шеллом), либо элемент данных для LLD ещё не создан. Скажем, у Вас указано: "-s 172.16.220.27" - хост действительно именно так называется? На нём реально присутствует элемент данных с ключом my_test? Тип этого элемента данных - "Zabbix trapper"?
          • для указанного элемента данных явно задан список адресов, с которых можно принимать данные (поле "Allowed hosts"), и он не соответствует тому хосту, на котором запускают zabbix_sender. В этом случае, если я не путаю, в логе Zabbix-сервера пишется соответствующее сообщение.

          Comment

          • as.mironov
            Junior Member
            • Sep 2016
            • 6

            #6
            Нашёл грабельки.
            Имя хоста в "-s" было неверным, но это ладно. Zabbix-агент был настроен на работу с двумя zabbix-серверами. И нужный был вторым в списке. А агент, видимо, ломился на первый. На котором нужного элемента данных не было.
            Когда я добавил к указанию конфига (ключ -c) явное указание сервера (ключ -z), всё заработало.

            Comment

            • manst
              Junior Member
              • Feb 2018
              • 10

              #7
              а как быть с виндошным Evenlog? может есть какая функция , которая определяет что нет записи события со времени последнего?

              сорри , это я не туда
              Last edited by manst; 22-02-2018, 10:26.

              Comment

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

                #8
                Originally posted by manst
                а как быть с виндошным Evenlog? может есть какая функция , которая определяет что нет записи события со времени последнего?
                Извините, я не понял Вашего вопроса.
                Какое отношение диагностика проблем с zabbix_sender-ом имеет к виндовым EventLog?
                Сформулируйте, пожалуйста, вопрос получше, при необходимости - начните новую тему.

                Comment

                Working...