Ad Widget

Collapse

Мониторинг логов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Victor Sklyarov
    Senior Member
    • Apr 2016
    • 184

    #1

    Мониторинг логов

    Как указать кодировку Windows-1251 при мониторинге логов? log[файл,<регулярное выражение>,<кодировка>,<макс. кол-во строк>,<режим>,<вывод>,<максзадержка>]
    В какой кодировке агент будет отправлять найденную стоку на сервер?
    Правильно ли я понимаю, что искать фразу на кириллице с кодировкой 1251 нельзя, поскольку её нельзя задать в ключе в кодировке 1251?
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    В ключе айтема надо указать "WINDOWS-1251". Тогда агент правильно прочтет запись из лога, перекодирует ее в UTF-8 и отправит на сервер.

    Comment

    • Victor Sklyarov
      Senior Member
      • Apr 2016
      • 184

      #3
      Возможно что-то недопонимаю, но ни log ни log.count ничего не находят. Имеется текст лога:
      ###############
      [10.02.22 05:27:15,433] Controller.Show_3: OPTClient.Controllers.ErrorMessageController, OPTClient.Controllers.ErrorMessageController
      [10.02.22 05:27:15,439] ShowOptWindowCallback 4: Type: ErrorMessage, Buttons , message:
      tag = NotAvialableNoPaper size = 30 sizeCE = 10
      name = ru value = СЕРВИС НЕДОСТУПЕН
      ОТСУТСТВУЕТ ЧЕКОВАЯ ЛЕНТА size = 30 sizeCE = 10, message1: , request:
      [10.02.22 05:27:16,280] ShowOptWindowCallback 1: Type: DispensersRu, Buttons , message: , message1: , request:
      ##############
      Ключи, даже не пытаюсь искать кириллицу
      log[{$OPTCLIENTLOG},"(\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+)",WINDOWS-1251,,,"\1 СЕРВИС НЕДОСТУПЕН: \2"]
      log.count[{$OPTCLIENTLOG},"(\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+)",WINDOWS-1251]

      Вставляю текст лога на тестовый сайт https://regex101.com регулярка (\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+) находит 2127 совпадений, однако log не присылает ни одного совпадения и log.count = 0

      Comment

      • forzasakh
        Junior Member
        • Jun 2021
        • 5

        #4
        Originally posted by Victor Sklyarov
        Возможно что-то недопонимаю, но ни log ни log.count ничего не находят. Имеется текст лога:
        ###############
        [10.02.22 05:27:15,433] Controller.Show_3: OPTClient.Controllers.ErrorMessageController, OPTClient.Controllers.ErrorMessageController
        [10.02.22 05:27:15,439] ShowOptWindowCallback 4: Type: ErrorMessage, Buttons , message:
        tag = NotAvialableNoPaper size = 30 sizeCE = 10
        name = ru value = СЕРВИС НЕДОСТУПЕН
        ОТСУТСТВУЕТ ЧЕКОВАЯ ЛЕНТА size = 30 sizeCE = 10, message1: , request:
        [10.02.22 05:27:16,280] ShowOptWindowCallback 1: Type: DispensersRu, Buttons , message: , message1: , request:
        ##############
        Ключи, даже не пытаюсь искать кириллицу
        log[{$OPTCLIENTLOG},"(\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+)",WINDOWS-1251,,,"\1 СЕРВИС НЕДОСТУПЕН: \2"]
        log.count[{$OPTCLIENTLOG},"(\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+)",WINDOWS-1251]

        Вставляю текст лога на тестовый сайт https://regex101.com регулярка (\[\d{2}.\d{2}.\d{2} \d{2}:\d{2}:\d{2},\d{3}\]) ShowOptWindowCallback \d?: Type: ErrorMessage, Buttons ,.+\n.+\n.+\n(.+) находит 2127 совпадений, однако log не присылает ни одного совпадения и log.count = 0
        Я использую вот такой ключ и логи читаются, попробуйте
        Code:
        log[C:\Logs\Test\logs\test_log.txt,INFO,Windows-1251]

        Comment

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

          #5
          Originally posted by Victor Sklyarov
          Возможно что-то недопонимаю, но ни log ни log.count ничего не находят. Имеется текст лога:
          Судя по регулярному выражению и образцу лога, вы пытаетесь обрабатывать многострочное сообщение (у вас даже в регулярном выражении присутствует "\n").
          Увы - к сожалению, агент не умеет обрабатывать такие логи; он каждую строку анализирует отдельно и независимо от остальных строк (и кодировка тут ни при чём).
          Есть открытый ещё в 2012 году enhancement request (ссылка), который на данный момент имеет всего 19 голосов и потому считается не сильно актуальным. Тем не менее, его собирались поставить в очередь на реализацию где-то в районе версии 6.4.

          Comment

          Working...