Ad Widget

Collapse

Не выводит кириллицу

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • IkarusKam
    Member
    • Dec 2023
    • 40

    #1

    Не выводит кириллицу

    Click image for larger version

Name:	image.png
Views:	175
Size:	14.6 KB
ID:	489969

    При запросе - zabbix_get не может вывести русский язык. При этом сам PowerShell скрипт выводит кириллицу в своей строке. Кодировка файла - UTF8.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Чтобы вам помочь, мы должны сами гадать - что же это за скриншот вы тут приложили, какие действия выполняете, о каком таком файле идёт речь, какая у вас конфигурация и версии компонентов Zabbix?

    Comment

    • IkarusKam
      Member
      • Dec 2023
      • 40

      #3
      Originally posted by Kos
      Чтобы вам помочь, мы должны сами гадать - что же это за скриншот вы тут приложили, какие действия выполняете, о каком таком файле идёт речь, какая у вас конфигурация и версии компонентов Zabbix?
      И вправду, поспешил, извиняюсь!

      Здравствуйте!
      Версия Zabbix - Zabbix 6.4.8
      Версия Zabbbix Agent 2 - 7.0.3
      Файл формата txt.

      Выполняется такой PowerShell скрипт -
      __________________________________________________ _________________________________

      $SQLServer = "nameserver"

      Invoke-Sqlcmd -ServerInstance $SQLServer -Username "login" -Password "password" -Verbose -TrustServerCertificate -InputFile "C:\Temp\Sql_backup\backup.sql" | Out-File "C:\Temp\Sql_backup\Text2.txt" -Encoding utf8

      Get-Content "C:\Temp\Sql_backup\Text2.txt" -Encoding utf8

      ​_________________________________________________ __________________________________

      На скриншоте показывает вывод, если вызвать данный скрипт с помощью ключа

      zabbix_get -s 127.0.0.1 -k testsql

      Еще раз прошу прощение за не полную информацию и еще раз спасибо!

      Comment

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

        #4
        Насколько я понял, zabbix_get запускается с той же машины, где работает Zabbix агент, а скрипт запускается через UserParameter в конфиге агента.
        А если попробовать запустить zabbix_get с той же машины, где работает Zabbix сервер?

        Comment

        • IkarusKam
          Member
          • Dec 2023
          • 40

          #5
          Originally posted by Kos
          Насколько я понял, zabbix_get запускается с той же машины, где работает Zabbix агент, а скрипт запускается через UserParameter в конфиге агента.
          А если попробовать запустить zabbix_get с той же машины, где работает Zabbix сервер?
          К сожалению к сервера тоже не известные символы за место кириллицы.
          Вот пример того что выводится -
          Click image for larger version

Name:	image.png
Views:	120
Size:	1.7 KB
ID:	490057

          Comment

          • Griboed0ff
            Senior Member
            • Sep 2022
            • 153

            #6
            Originally posted by IkarusKam

            К сожалению к сервера тоже не известные символы за место кириллицы.
            Вот пример того что выводится -
            Click image for larger version

Name:	image.png
Views:	120
Size:	1.7 KB
ID:	490057
            попробуйте мои советы отсюда: https://www.zabbix.com/forum/in-russ...576#post489576 у меня не возникает проблем с кодировками powershell

            Comment

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

              #7
              Originally posted by Griboed0ff
              попробуйте мои советы отсюда: https://www.zabbix.com/forum/in-russ...576#post489576 у меня не возникает проблем с кодировками powershell
              Как раз хотел привести эту ссылку, вы меня опередили

              Comment

              • IkarusKam
                Member
                • Dec 2023
                • 40

                #8
                Originally posted by Griboed0ff

                попробуйте мои советы отсюда: https://www.zabbix.com/forum/in-russian/489400-правило-обнаружения-прототипы-данных-кодировка-и-т-п?p=489576#post489576 у меня не возникает проблем с кодировками powershell
                Загвоздка в том, что PowerShell сам по себе выводит данные как требуется
                Click image for larger version

Name:	image.png
Views:	125
Size:	51.9 KB
ID:	490100

                Comment

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

                  #9
                  Originally posted by IkarusKam
                  Загвоздка в том, что PowerShell сам по себе выводит данные как требуется
                  Вероятнее всего - выводить-то выводит, но не в кодировке UTF-8. Вероятнее всего, в каком-нибудь Windows-1251 или UTF-16.

                  Comment

                  • Andrew Grekhov
                    Member
                    • Aug 2021
                    • 45

                    #10
                    Сохраните результат в файл. Расширение не txt и не html, чтобы автоперекодировщики не перехватили.
                    Откройте его в любимом hex-редакторе, по кодам определите кодировку.
                    Проблема может вообще оказаться в отсутствии нужных шрифтов в системе.

                    Comment

                    • Griboed0ff
                      Senior Member
                      • Sep 2022
                      • 153

                      #11
                      Originally posted by IkarusKam

                      Загвоздка в том, что PowerShell сам по себе выводит данные как требуется
                      Click image for larger version  Name:	image.png Views:	5 Size:	51.9 KB ID:	490100
                      Как и подсказывают коллеги, на самой машине может все быть как надо, так как для винды это нормальная кодировка, но при разных лишних действиях кодировка, которую вы применили к файлам меняется при выводе данных. На самом деле вывод в файл это лишнее действие, задаете кодировку и сразу читаете, да и объявление переменных тоже можно было бы опустить и завернуть это все в system.run. например так
                      Code:
                      system.run[cmd /c chcp 65001 > nul & powershell.exe -c "Invoke-Sqlcmd -ServerInstance 'nameserver' -Username 'login' -Password 'password' -Verbose -TrustServerCertificate -InputFile 'C:\Temp\Sql_backup\backup.sql'"]
                      или так
                      Code:
                      system.run[powershell.exe -c "chcp 65001; Invoke-Sqlcmd -ServerInstance 'nameserver' -Username 'login' -Password 'password' -Verbose -TrustServerCertificate -InputFile 'C:\Temp\Sql_backup\backup.sql'"
                      В таком случае должны быть включены удаленные команды в конфиге агента. Обычно мне это дает свободу действий, в плане без доступа к машине запускать скрипты и менять их содержимое когда надо.
                      А password поместить в макрос типа скрытого текста или секретного хранилища(если есть).

                      Но весь этот велосипед с powershell, можно было бы заменить простой проверкой типа "Монитор баз данных", выполнить нужный селект и получить стандартный json, который парсится заббиксом на ура.
                      Last edited by Griboed0ff; 22-08-2024, 21:35.

                      Comment

                      • IkarusKam
                        Member
                        • Dec 2023
                        • 40

                        #12
                        Originally posted by Griboed0ff


                        Но весь этот велосипед с powershell, можно было бы заменить простой проверкой типа "Монитор баз данных", выполнить нужный селект и получить стандартный json, который парсится заббиксом на ура.
                        Огромное спасибо за совет, попробую!
                        Но я не такой гуру и мастер zabbixА)

                        Как вы уже поняли у меня обычный powershell скрипт, который выполняет sql скрипт) Велосипед конечно, но по другому не умею и боюсь спрашивать как правильно все это перенести в json

                        Comment

                        • Griboed0ff
                          Senior Member
                          • Sep 2022
                          • 153

                          #13
                          Originally posted by IkarusKam

                          Огромное спасибо за совет, попробую!
                          Но я не такой гуру и мастер zabbixА)

                          Как вы уже поняли у меня обычный powershell скрипт, который выполняет sql скрипт) Велосипед конечно, но по другому не умею и боюсь спрашивать как правильно все это перенести в json
                          На сервере\прокси заббикс настраивается odbc драйвер, с учетом того, что у вас mssql, то есть официальная инструкция, а потом просто в интерфейсе заббикса вставите запрос, пользователя и пароль, тип проверки "Монитор баз данных" db.odbc.discovery, на выходе получаете json, далее что угодно.

                          Comment

                          Working...