Вопрос

YQL SHOW TABLES имеет CSV и HTML , Как насчет таблицы для журналов доступа Apache?

Это было полезно?

Решение

Теперь есть таблица регулярных выражений

http://developer.yahoo.com/yql/console/?q= выберите% 20 *% 20from% 20regex% 20where% 20expression% 20% 3D% 20% 22% 22% 20and% 20text% 3D% 22test% 22 & усилителя (*.); ENV = HTTP% 3A% 2F% 2Fdatatables.org% 2Falltables .env

Если у вас есть регулярное выражение для вашего формата журнала, вы можете использовать эту таблицу для его анализа.

Другие советы

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

Вот начало обычной таблицы анализа журнала. Код «как есть» будет слепо разбиваться на пустые места, что не совсем точно, но это только начало. Возможно, вы захотите передать URL файла журнала, разделить записи на новую строку, а затем проанализировать каждую строку.

<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
    <meta>
        <author></author>
        <sampleQuery>select * from {table}</sampleQuery>
    </meta>
    <bindings>
        <select itemPath="" produces="XML">
            <inputs>
                <key id="url" type="xs:string" paramType="variable"/>
            </inputs>
            <execute><![CDATA[

                    //http://en.wikipedia.org/wiki/Common_Log_Format
            var entry = '208.240.243.170 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326';

            var names = ['IP', 'RFC 1413', 'userid', 'date', 'request', 'status', 'size'];
            var values = entry.split(' ');

            var resp = {};

            for (var i in names) {
                var name = names[i];
                resp[name] = values[i];
            }

            response.object = resp;

      ]]></execute>
        </select>
    </bindings>
</table>

Вы можете запустить его так: используйте " http: // {ваш домен} /table.xml" как таблица; выберите * из таблицы

Затем вы можете расширить поиск географических данных по ip: используйте " http: // {ваш домен} /table.xml" как таблица; выберите * из pidgets.geoip, где ip in (выберите IP из таблицы)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top