Ad Widget

Collapse

Zabbix мониторинг лог файла

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Nikolyarost
    Junior Member
    • Jun 2020
    • 4

    #1

    Zabbix мониторинг лог файла

    Добрый день! прошу совета требуется собирать данные с лог файла по конкретным событиям
    есть лог файл вот такого формата
    2020-08-06-17.45.02.656000+180 E278685705H456 LEVEL: Warning
    PID : 4012 TID : 9464 PROC : db2syscs.exe
    INSTANCE: DB2 NODE : 000 DB : MM51
    APPHDL : 0-1200 APPID: *LOCAL.DB2.200806144501
    FUNCTION: DB2 UDB, data management, sqldEscalateLocks, probe:3
    MESSAGE : ADM5502W The escalation of "407514" locks on table "MM
    .SEC_NEP" to lock intent "X" was successful.

    2020-08-06-18.08.00.640000+180 E278686163H456 LEVEL: Warning
    PID : 4012 TID : 9588 PROC : db2syscs.exe
    INSTANCE: DB2 NODE : 000 DB : MM51
    APPHDL : 0-836 APPID: *LOCAL.DB2.200806072717
    FUNCTION: DB2 UDB, data management, sqldEscalateLocks, probe:3
    MESSAGE : ADM5502W The escalation of "402540" locks on table "MM
    .SEC_NEP" to lock intent "X" was successful.

    2020-08-06-18.17.35.109000+180 I278686621H327 LEVEL: Event
    PID : 4428 TID : 11900 PROC : db2fmp.exe
    INSTANCE: DB2 NODE : 000
    FUNCTION: DB2 UDB, Automatic Table Maintenance, db2HmonEvalStats, probe:100
    START : Automatic Runstats: evaluation has started on database MM51

    требуется чтобы в zabbix поступало событие LEVEL: Warning все остальные нет
    но у мне получилось получить только одну строку из сообщения

    Как получить всё сообщение то есть весь блок

    ключ элемента данных у меня выглядит вот так
    log["C:\nik\db2diag.log"] и в таком варианте он не грузит мне все сообщения подскажите что я упускаю
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #2
    упускаете то, что квантом лога для забикса является строка.
    т.е. ваши блоки для забикс - не связанные несколько строк лога.

    Comment

    • Nikolyarost
      Junior Member
      • Jun 2020
      • 4

      #3
      не понятная ерунда создал Элемент
      log["C:\nik\db2diag.log","LEVEL: Warning",,300,"skip"]

      при проверке говорит -Не удалось отправить запрос
      • Не удалось отправить запрос: ошибочный тип элемента данных.
      где посмотреть в чем ошибка ?

      Comment

      • Hamardaban
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • May 2019
        • 2713

        #4
        log - тип элемента =«активный агент». для него проверка может не сработать.

        Comment

        • Nikolyarost
          Junior Member
          • Jun 2020
          • 4

          #5
          Click image for larger version

Name:	1.jpg
Views:	197
Size:	62.0 KB
ID:	407104
          Создал элемент данных ошибок не выдает, но при проверке даёт -не удалось отправить запрос: ошибочный тип элемента данных

          что не нравится не понятно.

          Comment

          • Hamardaban
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • May 2019
            • 2713

            #6
            т.е. вы совсем не поняли что я написал? жаль.
            тогда отсылка к документации - может дойдет после прочтения https://www.zabbix.com/documentation...fig/items/item

            Testing


            It is possible to test an item and, if configured correctly, get a real value in return. Testing can occur even before an item is saved.

            Testing is available for host and template items, item prototypes and low-level discovery rules. Testing is not available for active items.

            Item testing is available for the following passive item types:
            • Zabbix agent
            • SNMP agent (v1, v2, v3)
            • IPMI agent
            • SSH checks
            • Telnet checks
            • JMX agent
            • Simple checks (except icmpping*, vmware.* items)
            • Zabbix internal
            • Zabbix aggregate
            • Calculated items
            • External checks
            • Database monitor
            • HTTP agent

            Comment

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

              #7
              Как верно указал коллега Hamardaban, штатный мониторинг логов при помощи агента Zabbix работает на уровне отдельных строк, не позволяя корректно обрабатывать многострочные сообщения об ошибках (как, например, логи Java-приложений с exception-ами или, как в данном случае, лог сервера IBM db2).

              Могу лишь:
              • посоветовать для мониторинга файла db2diag.log использовать скрипт, вызывающий штатную утилиту db2diag;
              • поделиться своим скриптом для мониторинга СУБД IBM db2, но он писался для работы на платформах Linux и AIX (под Windows "как есть" работать не будет, но может дать какие-то идеи).

              Comment

              • Nikolyarost
                Junior Member
                • Jun 2020
                • 4

                #8
                Суть мне ясна но он даже по строкам не отрабатывает..
                Kos если не жалко можно по смотреть на ваш скрипт пусть он не по windows попробую перестроить под себя.

                Comment

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

                  #9
                  Originally posted by Nikolyarost
                  Kos если не жалко можно по смотреть на ваш скрипт пусть он не по windows попробую перестроить под себя.
                  Ну, та часть скрипта, которая занимается обработкой файла db2diag.log, выглядит так:
                  Code:
                  DB2DIAGSTATE=${ZABBIX_HOME}/db2diag.state
                  TS_FROM=`date "+%Y-%m-%d"-00.00.00`
                  [ -f $DB2DIAGSTATE ] && TS_FROM=`cat $DB2DIAGSTATE`
                  TS_TO=`date "+%Y-%m-%d-%H.%M.%S"`
                  [ "$DIAGPATH" ] || DIAGPATH=/home/db2inst1/sqllib/db2dump
                  cd "$DIAGPATH"
                  db2diag -readfile -level "Severe,Error,Critical" -t ${TS_FROM}.000001:${TS_TO}.000000 -fmt "%{ts}%tz %recid %level %db @function @msg" \
                    | grep -v -E "probe:(40|3260|504)$"
                  echo $TS_TO >$DB2DIAGSTATE
                  Переменная ZABBIX_HOME выставляется чуть раньше в домашнюю директорию пользователя zabbix; там будет лежать файл db2diag.state, содержащий таймстэмп последней проверки. Если такого файла нет, то проверяем, начиная с сегодняшнего дня. На выход даём обработанные утилитой db2diag сообщения (гораздо более компактные), удаляя (grep-ом) те из них, которые, несмотря на свой уровень, нас не интересуют.
                  Сам скрипт запускается через UserParameter с определённым интервалом, получаемое значение в элементе данных определяется как имеющее тип "Text" (поскольку может содержать много строк); в триггере проверяется длина нового элемента данных (strlen()>0 and nodata(30)=0), чтобы через полминуты этот триггер гасить.

                  Comment

                  Working...