Ad Widget

Collapse

Подскажите решение для анализа логов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lohmag
    Junior Member
    • Dec 2013
    • 12

    #1

    Подскажите решение для анализа логов

    Есть файл логов с таким содержимым
    Code:
    1=11720,H,28790,34,1 ;13.3 (7.8) dB
    2=11760,H,28790,23,2 ;11.2 (4.6) dB
    3=11800,H,28790,23,2 ;10.7 (4.1) dB
    4=11840,H,28790,23,2 ;10.1 (3.5) dB
    5=11872,H,14995,12,1 ;8.6 (4.1) dB
    6=11892,H,9997,56,2 ;9.8 (0.5) dB
    7=11920,H,28790,23,2 ;9.3 (2.7) dB
    8=11960,H,28790,35,2 ;8.9 (3.4) dB
    9=12000,H,27990,23,1 ;10.6 (5.6) dB
    10=12040,H,28790,34,1 ;10.2 (4.7) dB
    11=12080,H,26690,35,2 ;10.5 (5.0) dB
    12=12120,H,26690,35,2 ;10.7 (5.2) dB
    13=12160,H,28790,35,2 ;10.2 (4.7) dB
    Нужно чтобы заббиксу передавалось последнее число из каждой строки и по ним строилось 13 разных графиков. Как вариант написать скрипт, и передать его результат UserParameter(у). Но это получается 13 параметров и 13 одновременно запускающихся скриптов, каждый из которых только одну строку парсит? Есть какое-то решение по красивее, с одним работающим скриптом?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3406

    #2
    Я бы написал скрипт, который один раз парсит файл и посылает 13 значений, используя утилиту zabbix_sender. Сам скрипт, в свою очередь, может возвращать одно значение - признак успешности (0/1).

    Единственное, что не очень ясно, - это каким образом этот файл обновляется и как эти обновления синхронизировать с запуском скрипта-парсера. Этот файл переписывается целиком с какой-то периодичностью, или же в него данные дописываются в конец?

    Comment

    • lohmag
      Junior Member
      • Dec 2013
      • 12

      #3
      Файл создается с какой-то переидичностью, каждый раз новый с растущим числом.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by lohmag
        Файл создается с какой-то переидичностью, каждый раз новый с растущим числом.
        Если его создает, допустим, logrotate, то можно на postrotate повесить скрипт с sender-ом, если не нужно дальнейшее наблюдение за логом.

        Comment

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

          #5
          Если я правильно понимаю, что выбирать нужно число в круглых скобках, то для засылки 13-ти значений item-ов вида your.item[1] - your.item[13] получится что-то вроде следующего:
          Code:
          #!/bin/bash 
          sed -n 's/\(^[0-9]*\)=.*(\([0-9.]*\)).*$/- your.item[\1] \2/p' <YourLogFile.log | \
            /usr/local/bin/zabbix_sender -c /usr/local/etc/zabbix_agentd.conf -s YourZabbixHost -i -
          Первая строка скрипта с помощью утилиты sed преобразует исходный файл в вид, пригодный для "скармливания" zabbix_sender-у:
          Code:
          - your.item[1] 7.8
          - your.item[2] 4.6
          - your.item[3] 4.1
          - your.item[4] 3.5
          - your.item[5] 4.1
          - your.item[6] 0.5
          - your.item[7] 2.7
          - your.item[8] 3.4
          - your.item[9] 5.6
          - your.item[10] 4.7
          - your.item[11] 5.0
          - your.item[12] 5.2
          - your.item[13] 4.7
          а вторая строка, собственно, его и отсылает. Подразумевается, что на хосте YourZabbixHost предварительно созданы 13 соответствующих элементов данных с типом "Zabbix Trapper".
          Last edited by Kos; 23-09-2015, 09:44.

          Comment

          • lohmag
            Junior Member
            • Dec 2013
            • 12

            #6
            Решил задачу через zabbix_send

            Comment

            Working...