Девид Малкольм (David Malcolm) из компании Rad Hat опубликовал (http://dmalcolm.livejournal.com/1301.html) исходные тексты утилиты "show", написанной на языке Python. Утилита позволяет использовать SQL-подобный синтаксис запросов для получения и обработки информации из таких источников данных, как лог http-сервера, файловая система /proc, словари dict, база установленных RPM-пакетов, лог пакетного менеджера yum, содержимое определенного RPM пакета и т.д.
Примеры:- Вывод списка хостов, числа запросов и размера отданных данных из всех логов apache:
show host, "count(*)", "total(size)" from /var/log/httpd/*access_log* group by host;
- Получение из лога apache списка несуществующих страниц:
show distinct request from /var/log/httpd/*access_log* where status = 404;
- Подсчет числа запросов и трафика для каждого из лог-файлов apache:
show filename, "count(*)", "total(size)" from /var/log/httpd/*access_log* group by filename order by "total(size)" desc;
- Выбор ...
URL: http://dmalcolm.livejournal.com/1301.html
Новость: http://www.opennet.me/opennews/art.shtml?num=20917
наконец то. первый шаг к аналогу WMI под унихами
да брось. кому нужно тормозилово вроде WMI??
а лишний слой абстракции удаляет системных администраторов от реального понимания работы системы.
Толковых windows-спецов можно по пальцам пересчитать даже в объемах России. Вместо того чтобы включить в дистр венды Gnu Utils они придумали "power"недошелл. Всё должно быть сделано настолько простым, насколько это возможно, но не проще... (c) Альберт Эйнштейн. Чтобы люди реально понимали устройство системы.
>да брось. кому нужно тормозилово вроде WMI??если сами перестанете тормозить - поймёте
Со своими пространными посылами вы умудрились слить, даже ничего не сказав. Про WMI смешно весьма, вы с ним хоть работали?
>WMI смешно весьма, вы с ним хоть работали?Работал. Не смешите мои тапки.
тоже пробовал... кроме академического интереса применения не нашёл.
а вот обратная задача, чтоб к б/д обращаться как к фс - действительно интересна. типа так:
http://www.linux.com/feature/127055
и почти любую прогу, которая даже и не знает о существовании субд, можно заставить работать с субд.
Немного оффтопик, но вдруг кто знает. Какие системные вызовы нужно реализовать чтоб фс считалась фс?
на сайте fuse можно очень быстро познакомиться с этим вопросом.
вообще отличный проект (моё мнение). имеется ввиду по таким критериям, как организация работы, доки, и т.д.
http://fuse.sourceforge.net/
у них также есть примеры фс с описаниями.
и вот список уже реализованных... впечатляет... http://apps.sourceforge.net/mediawiki/fuse/index.php?title=F...
а да!
там на первой страничке сразу есть ссылка на простейшую реализацию фс в 100 строчек кода.
догадайтесь как называется. :-D
http://fuse.sourceforge.net/helloworld.html
Поскольку SQL кривой и корявый язык. Типа SQL - это Кобол сегодня.Т.е. всю эту логику работы с базами данных можно представить в виде набора простых и понятных математических операций. Но разработчики SQL имели перед собой совсем другие задачи - чтобы эта логика была понятна простым англоговорящим секретаршам. Вот так и появился этот ужас, который теперь суют в каждый мобильный телефон.
>англоговорящим секретаршам. Вот так и появился этот ужас, который теперь суют
>в каждый мобильный телефон.Не, я конечно могу распихать на простые сущности сложную конструкцию.Но как по мне, если это можно сбагрить на железку и озаботить этим вопросом ее - а так ли уж это плохо?Я ленивый а работенка явно машинная и рутинная по природе своей :).Да, можно запрячь человека на ассемблере программить и даже транслировать человекочитаемое представление в опкоды вручную.А зачем?Это реально нужно в некоторых специальных случаях.А в общем случае - это зачастую получается просто ничем не оправданный геморрой :).С SQL похожая история.Применительно к БД это как программирование на высокоуровневых и среднеуровневых языках по сравнению с программированием на ассемблере.
P.S. да, в конечном итоге вся цифровая техника сводится к набору простейших математических операций.А из капель сливаются реки.Для некоторых это открытие? =)
это они сделали что-то издалека напоминающее LINQ под С#?
>это они сделали что-то издалека напоминающее LINQ под С#?мне напоминает WML
типа
Select * from Win32_LogicalDisk WHERE DriveType=3
выдаст таблицу со свободным местом и другой статистикой
Select * from Win32_Process
выдаст таблицу аналог 'ps'
если я правильно мыслю это шаг в эту сторону
>если я правильно мыслю это шаг в эту сторонуВ какую сторону?
В сторону df и ps ?Скажем так, на мой взгляд, тулза интересная.
Может помочь сэкономить время.
Но если у меня у логов апача свой формат?
Или я храню их в SQL?
Или у меня не апач даже?
Вот.
Имхо, надо все-таки уметь пользоваться ps, top, df, grep, awk, cut, sed.
А также хоть чуть-чуть понимать что-нибудь из sh/python/perl/C/php для админских нужд.
>В какую сторону?
>В сторону df и ps ?Какая тут связь? не смеши, линюхоид! Питекантропские df...
>Но если у меня у логов апача свой формат?
На нет и суда нет, твои трудности.
>Или я храню их в SQL?
дак еще лучше! чистый sql!!!!
>>В какую сторону?
>>В сторону df и ps ?
>
>Какая тут связь? не смеши, линюхоид! Питекантропские df...Прочтите пост, на который я отвечал.
Вот он:
>мне напоминает WML
>типа
>Select * from Win32_LogicalDisk WHERE DriveType=3
>выдаст таблицу со свободным местом и другой статистикой
>Select * from Win32_Process
>выдаст таблицу аналог 'ps'
>если я правильно мыслю это шаг в эту сторонуЧеловек описал то, что делается утилитами df и ps.
Утилиты эти появились задолго до WMI.
Поэтому резонный вопрос, в сфере администрирования кто в чью сторону двигается.
*nix к Windows, или все же Windows к *nix?>>Но если у меня у логов апача свой формат?
>
>На нет и суда нет, твои трудности.Имменно.
Это не трудности.>>Или я храню их в SQL?
>
>дак еще лучше! чистый sql!!!!Именно.
К чему я это?
Имхо, надо все-таки уметь пользоваться ps, top, df, grep, awk, cut, sed.
А также хоть чуть-чуть понимать что-нибудь из sh/python/perl/C/php для админских нужд.P.S.
Windows админы могут пропустить мой пост мимо глаз.
я тебе рекомендую найти какую-нибудь винду, скачать в гугле wmiexplorer и посмотреть что там можно найти, и подсчитать сколько тебе нужно будет запомнить команд, чтобы выдрать эту всю информацию под линухом и через WMI с потенциально любой ОС.
Хотя обычно линухоиды дальше своей консоли мир не видят.
>Хотя обычно линухоиды дальше своей консоли мир не видят.обычно как раз наоборот.
если линуксоид хоть как-то с виндой работать может, то виндузятник с линухом - нет.
бывают конечно исключения,.. но они только подтверждают правила.
Ну да. Так мне надо запомнить, что df это "disk free", а так мне надо запомнить "Win32_LogicalDisk" + "DriveType=3"? Или вместо ps (process status, например) Win32_Process? В чём разница-то?Тем более, что я не удивлюсь, если при частом использовании вышеприведённых Вами команд люди будут писать себе для них алиасы, сокращая похожим образом :-)
В общем, для скриптов - дело вкуса и привычки, а для интерактивной работы - один хрен, по-моему.
О-о-о! а оскорбления действительно необходимы?у df, du, ps и пр. есть масса своих преимуществ. они работают быстро, у них нет посредника, следовательно они работают всегда, что ведет к следующему - там нечему ломаться, т.к. они просты и работают на системах от наручных часов, смартыонов,.. до мейнфреймов.
а благодаря fuse их можно заставить работать и с субд (я чуть выше писал, но повторюсь - http://www.linux.com/feature/127055)
а вот это вообще пёрл:
>>Но если у меня у логов апача свой формат?
>На нет и суда нет, твои трудности.который и доказывает не универсальность и академичность данного подхода.... системные вызовы к фс известны, универсальны, входят в стандарт POSIX... эмуляция ими sql более интересная задача, чем эмуляция sql'ем системных вызовов.
>В сторону df и ps ?В сторону того, что удалённо через одну дырку сможешь удобно мониторить приблуды.
Конечно, знание ps/cut/awk это очень круто и увеличивает либидо.
Кстат-те, вкурсе что ps/df под разными системами могут выдавать всё по-разному?
>>В сторону df и ps ?
>
>В сторону того, что удалённо через одну дырку сможешь удобно мониторить приблуды.
>
>Конечно, знание ps/cut/awk это очень круто и увеличивает либидо.
>Кстат-те, вкурсе что ps/df под разными системами могут выдавать всё по-разному?В курсе.
При знании grep/cut/sed/awk это не проблема и даже не препятствие.Даже не знаю, что сказать насчет либидо.
Я ps/cut/awk просто использую в работе.
>Даже не знаю, что сказать насчет либидо.
>Я ps/cut/awk просто использую в работе.вот и я тоже в толк не возьму - чего это они так реагируют? завидуют штоли?
я их даже на винду ставлю... удобно блин...
шедулер там вообще кошмар... cron тоже ставлю... скриптовые языки? пц совсем... тоже ставлю..
>При знании grep/cut/sed/awk это не проблема и даже не препятствие.Вот только команды будут разные для HP-UX, Solaris, Linux.
.. и windows, да?Разные, но хотя бы похожие, в отличие от.
>Но если у меня у логов апача свой формат?
>Или я храню их в SQL?
>Или у меня не апач даже?
>Вот.Вот именно для такого случая это и делается. Это универсальный интерфейс. Из-за своей универсальности тормознут.
>Имхо, надо все-таки уметь пользоваться ps, top, df, grep, awk, cut, sed.
Ну и как пользоваться этими утилитами программисту, который написал софтину для свода вместе информации о серевере и о твоем формате логов не знает? Так ведь можно и о данных сказать: "а зачем это понятие файловой системы? Надо пользоваться hex-просмотрщиком. А может мне удобно данные только в чётных блоках хранить. Это же совсем не сложно с помощью ps, top, df, grep, awk, cut, sed дописать все программы, чтоб они читали данные из четных блоков"
>А также хоть чуть-чуть понимать что-нибудь из sh/python/perl/C/php для админских нужд.
Чтоб этим пользоваться для админских нужд и нужны единые интерфейсы к данным/программам. Чтоб не приходилось каждый раз копаться в логах новой программы, без проблем менять на сервере схожие по функциям программы.
с этой штукой можно очень офигенно генерить всяческие отчёты. например, мне очень не хватало её для анализа логов сквида, которым я раздаю инет двум друзьям. теперь можно точно посчитать сколько каждый из них кушает трафика.
Вы в лесу живете? Про sarg не слышали совсем?
>Вы в лесу живете? Про sarg не слышали совсем?Sarg? Этот тормоз? Как же... видели. А если мне удобней squid поменять на другой proxy, то sarg вообще идёт лесом. А если логи анализировать надо не для того, чтоб глазами смотреть, а дальше обрабатывать?
а grep`ить уже не кошерно xD ?
>а grep`ить уже не кошерно xD ?Чтоб грепить - надо как минимум знать формат того, что грепишь. А если ты вместо одной программы хочешь использовать новую, а программа мониторинга ничего не знает о ней?
Да и перл в пару строчек ишо никто не отменял...
самый лучший и известный скрипт на перл занимает одну строчку:-)
Что-то я не пойму товарищей, которые подняли крик "зачем это нужно?". Появился еще один, на мой взгляд, удобный инструмент. Обратите внимание: "ЕЩЕ ОДИН"!!! Не вместо df, ps, top, df, grep, awk, cut, sed и т.д., а В ДОПОЛНЕНИЕ к ним. Что тут плохого? "...лишний слой абстракции удаляет системных администраторов от реального понимания работы системы..." - ну и что? Кому этот слой мешает - тот не будет его пользовать, а кому он требуется - спасибо за него скажет. В чем проблема-то? Зачем всем навязывать свое мнение? Это не объективная позиция.
+1
>Что-то я не пойму товарищей, которые подняли крик "зачем это нужно?". Появился
>еще один, на мой взгляд, удобный инструмент. Обратите внимание: "ЕЩЕ ОДИН"!!!
>Не вместо df, ps, top, df, grep, awk, cut, sed и
>т.д., а В ДОПОЛНЕНИЕ к ним. Что тут плохого? "...лишний слой
>абстракции удаляет системных администраторов от реального понимания работы системы..." - ну
>и что? Кому этот слой мешает - тот не будет его
>пользовать, а кому он требуется - спасибо за него скажет. В
>чем проблема-то? Зачем всем навязывать свое мнение? Это не объективная позиция.
>Народ правильно говорит. Этот "еще один инструмент" не универсален, в отличии от grep, awk и т.д. Начнет юный падаван осваивать этот show, упрется в стену с каким-нибудь нестандартным логом, и пойдет учить cat, grep и awk, зря потратив время.
>Народ правильно говорит. Этот "еще один инструмент" не универсален, в отличии от
>grep, awk и т.д. Начнет юный падаван осваивать этот show, упрется
>в стену с каким-нибудь нестандартным логом, и пойдет учить cat, grep
>и awk, зря потратив время.Так cat, grep и awk тоже не универсальны. Именно из-за их не универсальности/не удобности и появились perl, python, sql...
не правда.
они не просто универсальны. они абсолютно универсальны.
и perl, python, sql придумали уж точно не для этого.
я уж и не знаю, как охарактеризовать умственные способности того, кто будет писать программу на perl, python и тем более sql программу для того, чтобы заменить
$cat log_file|egrep -i Вася
>не правда.
>они не просто универсальны. они абсолютно универсальны.
>и perl, python, sql придумали уж точно не для этого.
>я уж и не знаю, как охарактеризовать умственные способности того, кто будет
>писать программу на perl, python и тем более sql программу для
>того, чтобы заменить
>$cat log_file|egrep -i Вася$egrep -i Вася log_file ;)
>Что-то я не пойму товарищей, которые подняли крик "зачем это нужно?". Появился
>еще один, на мой взгляд, удобный инструмент. Обратите внимание: "ЕЩЕ ОДИН"!!!
>Не вместо df, ps, top, df, grep, awk, cut, sed и
>т.д., а В ДОПОЛНЕНИЕ к ним. Что тут плохого? "...лишний слой
>абстракции удаляет системных администраторов от реального понимания работы системы..." - ну
>и что? Кому этот слой мешает - тот не будет его
>пользовать, а кому он требуется - спасибо за него скажет. В
>чем проблема-то? Зачем всем навязывать свое мнение? Это не объективная позиция.
>Могу предположить, что товарищи не хотят, чтобы новые админы, например, для анализа логов апача знали и умели применять только эту тулзу.
Т.е. есть опасения, что эта тулза поможет сужению кругозора админов.
К чему приводит сужение кругозора?
Ну например при получении ошибки "wrong password (you have Caps Lock pressed)" кто-то скажет "вот убунта глючная, надо её переустановить".
>>Могу предположить, что товарищи не хотят, чтобы новые админы, например, для анализа
>логов апача знали и умели применять только эту тулзу.
>Т.е. есть опасения, что эта тулза поможет сужению кругозора админов.
>К чему приводит сужение кругозора?А причем тут кругозор? Для разных задач есть разные инструменты. Одним и тем же людям в разных условиях удобны разные инструменты, и наоборот - в одних и тех же условиях, разным людям удобны разные инструменты.
>Ну например при получении ошибки "wrong password (you have Caps Lock pressed)"
>кто-то скажет "вот убунта глючная, надо её переустановить".Не надо утрировать. Ты же не поднимаешь свой "кругозор" до уровня, чтоб быстро починить неожиданно сдохший процессор? Ты или в ремонт его относишь, или, благодаря единому интерфейсу, просто ставишь новый. А ведь в большинстве случаев всё можно починить.
Всегда есть предел необходимых и достаточных знаний.
>>>Могу предположить, что товарищи не хотят, чтобы новые админы, например, для анализа
>>логов апача знали и умели применять только эту тулзу.
>>Т.е. есть опасения, что эта тулза поможет сужению кругозора админов.
>>К чему приводит сужение кругозора?
>
>А причем тут кругозор? Для разных задач есть разные инструменты. Одним и
>тем же людям в разных условиях удобны разные инструменты, и наоборот
>- в одних и тех же условиях, разным людям удобны разные
>инструменты.Согласен.
Я только рад, если люди будут знать и уметь пользоваться разными инструментами, но выбирать то, что им больше нравится.
И я буду не рад, если люди будут знать и уметь только один инструмент, причем довольно узкоспециализированный.
И не будут знать, как сделать что-то ещё, не укладывающееся в возможности этого инструмента.>>Ну например при получении ошибки "wrong password (you have Caps Lock pressed)"
>>кто-то скажет "вот убунта глючная, надо её переустановить".
>
>Не надо утрировать. Ты же не поднимаешь свой "кругозор" до уровня, чтоб
>быстро починить неожиданно сдохший процессор? Ты или в ремонт его относишь,
>или, благодаря единому интерфейсу, просто ставишь новый. А ведь в большинстве
>случаев всё можно починить.
>Всегда есть предел необходимых и достаточных знаний.Кстати, простите, но утрируете вы.
Ваш пример не подходит - чинить процессор не входит в компетенцию админа (сетевого, системного, баз данных, и т.д.).
Зато в компетенцию админа очень даже входит разобраться по логам, почему apache выдает ошибку при каком-то запросе.
Или по логам определить, на основании чего почтовый сервер отбрасывает письмо, не являющееся спамом.И в таких случаях очень часто и происходит поднятие кругозора до нужного уровня.
С гуглением, чтением манов и книг и расспросами коллег.
>Что-то я не пойму товарищей, которые подняли крик "зачем это нужно?"зачем же ставить именно так вопрос?
>Появился еще один, на мой взгляд, удобный инструмент.именно.
и мы здесь и обсуждаем - применять или нет.
каждый высказывает свой мнение.... и потом решает сам и для себя.
и вот доказательство - никто из присутствующих не сможет закрыть этот проект, даже если он "не нужен" :-DDDDDDDDDDDDDDпо крайней мере я именно за этим сюда захожу... иногда встречаются интересные люди с интересным мнением.
>Что-то я не пойму товарищей, которые подняли крик "зачем это нужно?". Появился
>еще один, на мой взгляд, удобный инструмент. Обратите внимание: "ЕЩЕ ОДИН"!!!
>Не вместо df, ps, top, df, grep, awk, cut, sed и
>т.д., а В ДОПОЛНЕНИЕ к ним. Что тут плохого? "...лишний слой
>абстракции удаляет системных администраторов от реального понимания работы системы..." - ну
>и что? Кому этот слой мешает - тот не будет его
>пользовать, а кому он требуется - спасибо за него скажет. В
>чем проблема-то? Зачем всем навязывать свое мнение? Это не объективная позиция.
>Потому что это, извините мой французский, подъ%бка, а не инструмент ... Какой смысл в этих select-ах без полноценных индексов, поскольку выборка всё равно сведётся к последовательному скану по логу, так же как и в grep-е? Чтобы почувствовать себя немного DBA?
+1
а можно сказать и так - эту хрень придумали, чтобы несчастным DBA, которым успели засрать свой моск SQLем дать хоть какая-ту возможность анализировать логи привычным для англоязычных домохозяек способом :)
для разового использования я могу написать кучу грепов с авками и седами, а вот если нужно выполнять некую команду регулярно, и она выполняется не мгновено, то я задумываюсь об оптимизации выборки данных и как правило пишу скрипт на perl.
возможно, данная тузла, по времени выполнения, зачастую, будет быстрее набора кучи грепов и в тоже время нужную команду на ней можно будет сообразить быстрее, а как по мне, так время это весьма такой определяющий фактор.
Мало того, если grep egrep для построчного поиска после компиляции цикл поиска будет содержать что то вроде rep scasb/w/d с оптимизацией (для других процов соответственно другие фичи), то в show несколько слоёв абстракции и результат - проигрывание в производительности.
Всякие wmi хороши только для винды, где всё причёсано по ветру и "подкупает" своей простотой.Нам счастье, что оно не гениально.