Ad Widget

Collapse

Глючит макрос получаемый в процессе lld

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Belfigor
    Member
    • Jul 2016
    • 69

    #1

    Глючит макрос получаемый в процессе lld

    Имею утилиту, возвращающую результат на LLD запрос.
    Пример JSON который я получаю:
    Code:
    {
            "data": [
                    {
                            "{#UTMIP}": "10.189.173.11",
                            "{#UTMALIAS}": "{$1234.MIRA_11}"
                    },
                    {
                            "{#UTMIP}": "10.189.173.13",
                            "{#UTMALIAS}": "{$2345.KOROLEVA_29}"
                    },
                    {
                            "{#UTMIP}": "10.189.173.14",
                            "{#UTMALIAS}": "{$3456.ENGELSA_76}"
                    }
    Собственно возникла проблема с передачей русского текста из cmd хоста, на zabbix сервер. Постоянно были кракозыбры, если не в цмд, то до сервера таки вместо русских букв доходили кракозябры.
    Было придумано решение, получать при LLD не готовые алиасы, а макросы, в алиасах на которые прописан уже русский текст.
    В шаблоне во вкладке Macros прописаны записи вида:
    {$2345.KOROLEVA_29} => 2345, ул. Королева, 29/1
    В Item prototype - Name указано: {#UTMALIAS} - Дата истечения
    В Item prototype - New Application Prototype указано: {#UTMALIAS}

    А в результате у меня получается что в Name, полученный при LLD макрос заменяется на алиас, а в New Application Prototype помещается макрос в чистом виде

    Почему в одном месте макрос подменяется, а в другом этот же макрос не подменяется?
    Attached Files
    Last edited by Belfigor; 02-08-2017, 14:05.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Какой-то больно жесткий у вас костыль ... Выходит, для каждого вновь обнаруженного адреса надо вручную макрос создавать.
    Если не получается преобразование кодировки в скрипте, то есть вариант попроще - писать json в файл и читать его заббикс-агентом с указанием кодировки, напр. vfs.file.contents[file,CP866].
    Правда, есть ограничение на размер файла в 64к.
    Last edited by Semiadmin; 02-08-2017, 15:22.

    Comment

    • Belfigor
      Member
      • Jul 2016
      • 69

      #3
      То что руками создавать каждый макрос то да, беда большая
      Нашел вот такую вот тему: https://www.zabbix.com/forum/showthread.php?t=45253
      Вроде это как раз такой метод решения. Спасибо, буду пробовать

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Видел эту тему. Но там описываются всякие ухищрения в скриптах для перекодировки, я же предлагаю быть проще - получили в консоли windows русские буквы, записали в файл, ну и ладно. Предоставьте конвертацию cp866 - utf8 агенту заббикс, он это умеет.

        Comment

        • Belfigor
          Member
          • Jul 2016
          • 69

          #5
          Originally posted by Semiadmin
          Видел эту тему. Но там описываются всякие ухищрения в скриптах для перекодировки, я же предлагаю быть проще - получили в консоли windows русские буквы, записали в файл, ну и ладно. Предоставьте конвертацию cp866 - utf8 агенту заббикс, он это умеет.
          Дак да, там в конце той темы описан способ с файлом, его и буду сегодня пробовать.Буду создавать файл с JSON массивом и потом пытаться его читать вашим способом. Разницы от моего тукещего метода нету совсем, я так же формировал файлик, просто писал туда данные в формате ini и при вызове программы со специальным параметром читал этот файл и формировал в cmd json массив. Даже проще получится

          Comment

          Working...