Ad Widget

Collapse

zabbix_sender ошибка "invalid 'timestamp' value detected"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Wi5hMaCTeP
    Junior Member
    • Feb 2022
    • 7

    #1

    zabbix_sender ошибка "invalid 'timestamp' value detected"

    Добрый день!
    Сразу скажу что я новичок в теме Zabbix.

    Исходные данные:
    Есть готовый сборщик использования лицензий в кластере 1С. Уже накоплена определенная статистика.
    Информация собирается и пишется в отдельной базе 1С в периодическом регистре сведений.

    Задача:
    Помимо выгрузки в реальном времени очень хочется иметь возможность догружать информацию в случае недоступности сервера Zabbix с реальным временем сбора данных, а не текущим временем загрузки.

    Что сделано:
    В Zabbix создан новый узел сети, сделаны элементы данных с типом "Zabbix Траппер".
    При помощи zabbix_sender сделана отправка данных в Zabbix. Выгрузка идет с ключом -i "имя_файла", так как объем данных довольно большой.
    Данные выгружаются нормально, в Zabbix всё встает на свои места.

    Проблема:
    Для "догрузки" данных (в том числе накопленной истории) я добавляю поле "timestamp" в файл выгрузки и ключ -T
    При выгрузке получаю ошибку "invalid 'timestamp' value detected".
    Значение "Timestamp" я получаю как разницу текущей даты и даты 1970.01.01.
    Строка в файле имет следующую структуру:
    "1C Licenses" License.Count 1644489870 3


    Я уже поискал аналогичные проблемы по форуму и в гугле, но, к сожалению, ничего дельного не нашел.
    В том числе пробовал подставить напрямую значние из мануала - не проходит.
    Может кто-то уже сталкивался с такой проблемой и подскажет решение или даст ссылку, где это описано.

    Заранее спасибо!
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Довольно давно используем zabbix_sender v4.0.18 в сочетании с сервером Zabbix v5.0.x (на данный момент - 5.0.19) без проблем, в том числе и с параметрами "-T" и "-i".
    Правда, обычно имя хоста Zabbix передаём отдельным параметром (-s "ИмяХоста"), а в исходном файле проставляем вместо него знак "минус".

    Покажите, пожалуйста, полную командную строку для вызова zabbix_sender-а, а также его версию и платформу.
    Где и каким образом вы видите ошибку?

    Comment

    • Wi5hMaCTeP
      Junior Member
      • Feb 2022
      • 7

      #3
      Версия zabbix_sender 5.0.19.

      Click image for larger version

Name:	2022-02-14_12-04-22.jpg
Views:	357
Size:	15.0 KB
ID:	439608

      Версия сервера Zabbix так же 5.0.19

      Click image for larger version

Name:	2022-02-14_12-09-39.jpg
Views:	354
Size:	24.1 KB
ID:	439609

      Вызов происходит вот такой командой:
      zabbix_sender.exe -z szbbx1 -i "c:\Temp\v8_8135_1e.txt" -T -vv

      Click image for larger version

Name:	2022-02-14_12-14-40.jpg
Views:	348
Size:	16.0 KB
ID:	439611
      Attached Files

      Comment

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

        #4
        Любопытно. А у вас в этом файле только одна строка со значением или несколько? Потому как ругается только на первую строку.
        Я бы ещё убедился в том, что кодировка файла с данными - именно UTF-8 (а не, например, UTF-16 c BOM-символом в начале, из-за чего первая ограничивающая имя Zabbix-хоста кавычка не воспринимается корректно).
        Ну и можно попробовать приём, о котором я сказал выше: если все данные предназначены для одного хоста, то указать это имя в параметрах команды sabbix_sender, а в файл вместо этого писать просто знак "минус".

        Comment

        • Wi5hMaCTeP
          Junior Member
          • Feb 2022
          • 7

          #5
          Спасибо за подсказку на счет BOM. Кодпировку UTF-8 я проверял, но на BOM не обратил внимение.
          Предварительно выгрузку пошла на нескольких строках.

          После финальной реализации опишу что в итоге получилось.

          Comment

          • Wi5hMaCTeP
            Junior Member
            • Feb 2022
            • 7

            #6
            В итоге проблема действительно была в BOM.
            Рабочий код для 1С, чтобы файл выгружался корректно:

            ПотокВПамяти = Новый ПотокВПамяти;
            ЗаписьТекста = Новый ЗаписьТекста(ПотокВПамяти, КодировкаТекста.UTF8,,, Ложь);

            // Построчное наполнение файла

            ЗаписьТекста.Закрыть();

            ДанныеФайла = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
            ДанныеФайла.Записать(ИмяФайла);

            В конструкторе "Новый ЗаписьТекста" важен 5-й параметр Ложь. Это признак использовать BOM или нет.
            Работает только при использова конструктора на основе потока. Для конструктора по файлу - не работает, там другой параметр.

            Цитата из СП:

            ЗаписьТекста (TextWriter)

            На основании потока

            Синтаксис:

            Новый ЗаписьТекста(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <ЗаписатьBOM>)

            Comment

            Working...