Что лучший инструмент должен разобрать файлы системного журнала? [закрытый]

Я использую grep, чтобы разобрать через мои торговые регистрации приложений, но он ограничен в том смысле, что я должен визуально тралить через продукцию, чтобы видеть то, что произошло и т.д.

Я задаюсь вопросом, является ли Perl более оптимальным вариантом? Какие-либо хорошие ресурсы, чтобы изучить парсинг бревна и последовательности с Perl?

Я также полагал бы, что Пайтон будет хорош для этого. Perl против Пайтона против 'grep на Linux'?

16
задан brian d foy 4 January 2010 в 00:35
поделиться

8 ответов

Есть программа на Perl под названием Log_Analysis, которая делает за вас много анализа и препроцессинга.

2
ответ дан 30 November 2019 в 22:02
поделиться

Другая возможная интерпретация вашего вопроса - "Есть ли какие-нибудь инструменты, которые облегчают мониторинг журналов?", и чтобы ответить на это, я бы предложил вам взглянуть на Splunk или, может быть, Log4view.

.
1
ответ дан 30 November 2019 в 22:02
поделиться

на linux, вы можете использовать только shell(bash, ksh и т.д.) для разбора лог-файлов, если они не слишком большие по размеру. Другие инструменты обычно grep и awk. Однако, для большей мощности программирования обычно используется awk. Если у вас есть большие файлы для разбора, попробуйте использовать awk.

Конечно, можно использовать Perl или Python или практически любые другие языки с возможностями чтения файлов и манипулирования строками.

.
1
ответ дан 30 November 2019 в 22:02
поделиться

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

Если вы можете использовать регулярные выражения, чтобы найти то, что вам нужно, у вас есть тонна вариантов. Perl является популярным языком и имеет очень удобные родные средства RE. Лично я чувствую себя намного комфортнее с Python и нахожу, что небольшие добавленные сложности при работе с RE несущественны.

Если вы хотите сделать что-то более умное, чем соответствие RE, или хотите иметь много логики, вы можете быть более комфортно себя чувствовать на Python или даже на Java/C++/etc. Например, на Python легко читать построчно, а затем применять различные функции предикатов и реакции на совпадения, что замечательно, если у вас есть набор правил, который вы хотели бы применить.

11
ответ дан 30 November 2019 в 22:02
поделиться

Все языки сценариев - хорошие кандидаты: Perl, Python, Ruby, PHP и AWK подойдут для этого. Использование любого из этих языков лучше, чем просмотр логов, начиная с (маленького) размера.

Ношение Ruby Slippers to Work - пример того, как это делается на Ruby, написанный в Why's неповторимом стиле. Вот основной пример в Perl. Я предлагаю вам выбрать один из этих языков и начать взламывать.

4
ответ дан 30 November 2019 в 22:02
поделиться

Я нахожу этот список бесценным, когда имею дело с любой работой, требующей разбора с питоном.

Я бы не стал использовать perl для разбора больших/сложных логов - просто для удобочитаемости (мне не хватает скорости на perl (большие задания) - но это, вероятно, мой код на perl (я должен его улучшить)).

Однако, если grep пока идеально подходит для ваших нужд - нет причин для того, чтобы завалиться написанием полноценного синтаксического анализатора. Самое простое решение, как правило, лучшее, а grep - отличный инструмент.

1
ответ дан 30 November 2019 в 22:02
поделиться

Обучение языка программирования позволит вам принять вас в систему анализа в течение другого уровня.

Любая динамическая или «сценария» языка, такой как Perl, Ruby или Python, сделает работу. То, что вы должны использовать, действительно зависит от внешних факторов. Среди вещей, которые вы должны рассмотреть:

  • работает работает работает подходящим Langauge?
  • Вы знаете кого-нибудь, кто может Наставник вас на подходящем языке?
  • Попробуйте немного на каждом языке и посмотрите, какой язык вас лучше подходит.

Лично, для приведенной выше задачи я бы использовал Perl. YMMV.

Несколько причин, подобных Perl:

Мощные одноиналиры - если вам нужно сделать реальную быструю, разовую работу, Perl предлагает некоторые действительно отличные короткие сокращения. См. Perlrun -n Для одного примера

Multi-Paradigm Язык - Perl имеет поддержку императивных, функциональных и ориентированных объектно-ориентированных методологий программирования.

Сигилс - те ведущие препинанные символы по переменным, как $ FOO или @bar . Они немного похожи на венгерскую нотацию, не так раздражая.

Moose - невероятная новая система OOP, которая обеспечивает мощные новые методы OO для композиции и повторного использования кода.

Стричения - используют строгий прагма, ловит множество ошибок, что другие динамические языки запускаются в момент компиляции. Я ужасно скучаю, когда я пользуюсь Python или PHP.

Самодисциплина - Perl дает вам свободу писать и делать то, что вы хотите, когда вы хотите. Это означает, что вы должны научиться писать чистый код или пострадаете. К счастью, есть инструменты, чтобы помочь новичку. Perl :: Критик Литальный анализ кода для лучших практик.

2
ответ дан 30 November 2019 в 22:02
поделиться

Давайте посмотрим на один из функций с открытым исходным кодом. Если вы хотите узнать, как он развернут, загрузите пару аналогичных проектов с открытым исходным кодом и учиться у них. Итак, найдите тот, который сделан как твой и изучите его источники.

Почему это должно помочь? Дело в том, что проекты с открытым исходным кодом имеют возможность можно легко построить на машинах пользователей . В противном случае никто не сможет внести свой вклад в них. Поэтому вся необходимая информация о том, как их следует развернуть, обычно включается в Установить или README файлы witihhn Источники, которые вы загрузили. Они обычно состоят из нескольких простых шагов. Для той же цели проверка наличия и версии предварительных условий автоматизированы (в Configure скрипты), а иногда и такие сценарии даже помогают в установке их.

Что обычно ожидается, это что-то вроде

# Download sources (this line is read from your website)
wget http://myapp.org/myapp-source-2.15.tgz
tar -xzf myapp-source-2.15.tgz
cd myapp-2.15
less INSTALL
# read INSTALL file, where instructions about installing prerequisites are
./configure --help
# Read help, learn about possible options
./configure --prefix=/install/here --without-sound
make
make install

в настоящее время некоторые приложения используют Cmake вместо AutoLools (The Thingf с Configure Script).

Я сомневаюсь, что проекты Linux на самом деле требуют NetBeans в качестве системы сборки - это был бы излишек. Но эта IDE, кажется, генерирует Makefiles, поэтому отправляйте их. Вы также можете совершить для удобства для удобства, вы также можете совершить специфические IDE, но это не должно быть основным способом построения вашего мягкого.

Есть еще несколько вещей, которые пользователи ожидают найти в вашем пакете:

  • информация о лицензировании (обычно в лицензии файл и в начале каждого исходного файла)
  • Ссылка на домашнюю страницу проекта (где сообщать об ошибках)
  • Руководящие принципы кодирования (в виде текста FLie)
  • информация для сопровождающих (как вытащить версию, как добавить модуль и т. Д.)
-121-21 -4904380-

Большое преимущество Perl имеет над Python, заключается в том, что при анаразбинии текста является способность использовать регулярных выражений непосредственно как часть язычного синтаксиса. Например:

if ($line =~ m/^Regex/) {
    ... code goes here
}

Perl также назначает групп захвата непосредственно до 1 доллара, 2 доллара и т. Д., Что делает его очень простым для работы. В зависимости от формата и структуры логотипов вы пытаетесь разбираться, это может оказаться довольно полезным (или, если его можно проанализировать как файл фиксированной ширины или использование более простых методов, не очень полезных).

Это все просто синтаксический сахар, правда, и другие языки также позволяют использовать регулярные выражения и группы захвата (на самом деле, связанная статья показывает, как это сделать в Python). Вы просто должны написать немного больше кода и пройти вокруг объектов, чтобы сделать это.

2
ответ дан 30 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: