Ad Widget

Collapse

Мониторинг file.log на Linux, по тексту сообщения

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Liet-Kynes
    Junior Member
    • Feb 2019
    • 20

    #1

    Мониторинг file.log на Linux, по тексту сообщения

    Добрый день, не удается настроить мониторинг по тексту лог файла Linux file.log, в котором содержится сообщения типа:

    2019-02-18 10:10:10,023 ERROR Не удалось подключиться к серверу.

    Для мониторинга сообщений с типом ERROR, были использованы следующие элементы данных, с тригерами следующего вида:

    vfs.file.regexp[/home/User/file.log](тип, журнал лог файлов)
    vfs.file.regmatch[/home/User/file.log](тип, журнал лог файлов)
    log[/home/User/file.log]

    1.{servernamee:vfs.file.regmatch[/home/ossedo/OzerTest/errors.log].str(ERROR)}=1
    2.{servername:vfs.file.regexp[/home/ossedo/OzerTest/errors.log].regexp(ERROR)}=1

    Не смотря на указанные настройки, Zabbix агент не снимает содержимое Лог файла. В чём может быть проблема?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Агент Zabbix на Linux работает, как правило, от своего пользователя (обычно - пользователь zabbix). Убедитесь, что у этого пользователя хватает прав читать нужный файл, который находится в чужой домашней директории.

    Comment

    • Liet-Kynes
      Junior Member
      • Feb 2019
      • 20

      #3
      Спасибо за ответ, я не правильно проводил тестирование. Дело в том, что запись {servernamee:vfs.file.regmatch[/home/ossedo/OzerTest/errors.log].str(ERROR)}=1 опирается в первую очередь не на содержимое, а на дату изменения файла в ОС Linux, что технически невозможно воспроизвести на файле внося в него ручные изменения.

      Comment

      • Liet-Kynes
        Junior Member
        • Feb 2019
        • 20

        #4
        Скажите пожалуйста, за какой период снимает данные элемент log[/home/User/file.log]?
        Допустим я снимаю данные 1 раз в день, в этот период в лог файле зафиксировалось несколько сообщений об ошибке в одно время. С типом ERROR1 и ERROR2

        сработают ли в этом случае триггеры, при расхождении записи лог файла и даты модификации файла ?
        1.{servernamee:vfs.file.str[/home/ossedo/OzerTest/errors.log].str(ERROR1)}=1
        2.{servernamee:vfs.file.str[/home/ossedo/OzerTest/errors.log].str(ERROR2)}=1

        Можно ли доработать триггер или элемент данных, чтобы он снимал данные за период?
        Last edited by Liet-Kynes; 18-02-2019, 13:01.

        Comment

        • Alexey Golovko
          Member
          • Dec 2018
          • 37

          #5
          Что Вы имеете ввиду под расхождением записи лог файла и даты модификации файла?
          Из документации:
          The server and agent keep the trace of a monitored log's size and last modification time (for logrt) in two counters. Additionally:
          • The agent also internally uses inode numbers (on UNIX/GNU/Linux), file indexes (on Microsoft Windows) and MD5 sums of the first 512 log file bytes for improving decisions when logfiles get truncated and rotated.
          • On UNIX/GNU/Linux systems it is assumed that the file systems where log files are stored report inode numbers, which can be used to track files.

          Comment

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

            #6
            Я тоже не совсем понял вопроса.

            При использовании ключа log[...] читаются новые строки, добавляемые в файл. Каждая строка пересылается как своё отдельное значение элемента данных. Период опроса лишь указывает, как часто проверять, не добавилось ли что-то в этот файл (обычно несколько секунд). Если по каким-то критериям обнаруживается, что файл был пересоздан (например, его размер стал меньше), то он перечитывается целиком, и на сервер посылается целая "пачка" новых значений.

            Для ключей vfs.file.regexp[...] и vfs.file.regmatch[...] каждый раз перечитывается весь файл заново (с той периодичностью, которая задана), возвращается либо одна строка (подпадающая под регулярное выражение), либо 1/0 (есть совпадение или нет).

            Ключа vfs.file.str[...] вообще не существует.

            запись {servernamee:vfs.file.regmatch[/home/ossedo/OzerTest/errors.log].str(ERROR)}=1 опирается в первую очередь не на содержимое, а на дату изменения файла в ОС Linux
            Повторюсь: при использовании ключа vfs.file.regmatch[...] вообще "по барабану", какая там дата изменения файла: этот файл перечитывается целиком каждый раз. Возвращается нолик или единица, искать в возвращаемом значении строку "ERROR" бесполезно - её там никогда не будет. Но с таким ключом, как Вы указали, у вас, вероятно, данный айтем просто перейдёт в состояние "not supported", т.к. требуется, как минимум, второй параметр - регулярное выражение. Последнее замечание, кстати, относится и к ключу vfs.file.regexp[...].

            Comment

            • Liet-Kynes
              Junior Member
              • Feb 2019
              • 20

              #7
              Благодарю за ответы, стало понятнее, но можно ли где-то посмотреть готовый пример?

              Comment

              • Alexey Golovko
                Member
                • Dec 2018
                • 37

                #8
                У Вас сложность возникает с составлением айтема или же триггера? В той же документации можно найти и готовые примеры. Для большей ясности, опишите какой функционал Вы хотите получить в итоге. А так же о самом лог файле, есть ли ротация, прим. кол-во новых строк в сек/мин.

                Comment

                • Liet-Kynes
                  Junior Member
                  • Feb 2019
                  • 20

                  #9
                  Имею статичный лог файл, куда при наличии ошибок заносится событие с типом "error", например "не удалось подключиться к серверу x"

                  при использовании элемента данных "log[/home/User/file.log]", на вкладку мониторинг, последние данные не записываются(вносил изменения в файл вручную, добавляя строку с ошибкой), так же не срабатывает триггер {server:log[/home/User/file.log].str(error)}=1
                  При использовании этого выражение на другом, постоянно изменяемом лог файле, последние данные успешно обновляются.

                  Требуется: сделать срабатывание триггера при появлении события error с текстом "не удалось подключиться к серверу".
                  закрывать триггер если файл не обновляется 5 минут.

                  Прошу прощения за глупые вопросы, я недавно познакомился с Zabbix.

                  Comment

                  • Alexey Golovko
                    Member
                    • Dec 2018
                    • 37

                    #10
                    Триггер и не сработает если в айтем не упало никаких данных, я так понял, что айтем у Вас вовсе не отрабатывает и изменения файла вручную тут роли не играет, после добавления нового айтема, агент должен был перебрать его и отправить на сервер содержимое файла и на вкладке мониторинг - последние данные должно было что-то появиться. Из этого - какой выбран тип агента? Должен Zabbix agent (active), какой установлен Update interval? Не падает ли айтем в not supported?

                    Comment

                    • Liet-Kynes
                      Junior Member
                      • Feb 2019
                      • 20

                      #11
                      Да, вы всё правильно поняли.

                      Айтем настроен следующим образом:
                      Тип: Заббикс агент()активный)
                      Тип информации: Журнал(лог)
                      Интервал обновления: 30s
                      Период хранения: 90d

                      Каким образом можно проверить, что айтем не падает not supported? Если судить по веб интерфейсу, то айтем в него не падает.
                      Last edited by Liet-Kynes; 19-02-2019, 10:05.

                      Comment

                      • Alexey Golovko
                        Member
                        • Dec 2018
                        • 37

                        #12
                        На вкладке items, там где Вы собственно и создаете новые айтемы для хоста. См. вложение.
                        Attached Files

                        Comment

                        • Liet-Kynes
                          Junior Member
                          • Feb 2019
                          • 20

                          #13
                          Состояние "Активировано"
                          Attached Files

                          Comment

                          • Alexey Golovko
                            Member
                            • Dec 2018
                            • 37

                            #14
                            Вы писали про использования этого же выражения на другом лог-файле, это на этом же хосте?

                            Comment

                            • Semiadmin
                              Senior Member
                              • Oct 2014
                              • 1625

                              #15
                              Originally posted by Liet-Kynes
                              Каким образом можно проверить, что айтем не падает not supported? Если судить по веб интерфейсу, то айтем в него не падает.
                              Насколько я понимаю, для активных проверок ситуация с Not supported несколько сложнее, чем для пассивных, обрабатываемых поллером. Айтем для лога станет Not supported только в том случае, если ошибку пришлет сам агент, например, нет такого файла лога или нет прав на доступ к логу. Если же проблема в том, что сам активный агент настроен криво, то айтем Not supported не станет, просто не будут приходить данные.

                              Comment

                              Working...