Назад | Перейти на главную страницу

Как я могу просматривать файлы журналов в Linux и применять собственные файловые системы во время просмотра?

(Я попросил этот вопрос о stackoverflow но может быть лучше здесь ...)

Мне нужно прочитать несколько гигантских файлов журнала в системе Linux. В журналах много беспорядка. На данный момент делаю примерно так:

cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less

Но это громоздко - каждый раз, когда я хочу добавить еще один фильтр, мне нужно выйти less и отредактируйте командную строку. Некоторые фильтры относительно сложные и могут быть многострочными.

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

Есть ли инструмент, который может сделать это за меня? Я не могу установить новое программное обеспечение, так что надеюсь, что это уже будет установлено - например, less, vi, что-то в Python или Perl lib и т. Д.

Изменение кода, генерирующего журнал, на меньшее количество - не вариант.

  1. Чтение больших файлов журналов - не лучшая идея
    • вам нужно сначала отфильтровать их до нужных строк, а затем посмотреть на них
    • даже тогда, если возможно (и если отфильтрованных строк тоже много),
      вы должны запустить вторичные фильтры и скрипты подсчета для их анализа
  2. Если у вас есть большой статический файл и вы знаете фильтры для удаления из него строк,
    Всегда лучше сохранять отфильтрованный вывод (а не пытаться сразу его просмотреть).
    • Таким образом, вы можете запускать вторичные фильтры для отфильтрованного вывода, и им не нужно будет снова запускать все это
    • поэтому в вашем примере сохраните первый вывод в новый файл, и когда вы знаете другой фильтр, примените его к этому сохраненному файлу
    • конечно, это подразумевает некоторое пространство для хранения отфильтрованного файла.
      Будет лучше, если ваши фильтры сильно уменьшат фактический файл.
  3. Обычный инструмент linux, например 'grep', 'sed','AWK'обычно достаточно для очень хорошей обработки текстового файла журнала.
    Я часто обрабатывал файлы журналов размером порядка 10 ГБ с помощью этих вещей.
    Вы можете создавать свои собственные инструменты из этих вещей вbash scripts'.
  4. Не недооценивайте 'vim', он также может обрабатывать большие файлы (но это займет время, поэтому отдайте ему отфильтрованные файлы)

У вас определенно не будет этого установленного, но если это будет обычная вещь, которую вы должны делать, возможно, стоит изучить Splunk. Splunk существует для индексирования таких больших наборов данных, чтобы помочь вам найти то, что вы ищете.