Ведение журнала ошибок 404 (с полями целевого URL и URL-адреса реферера)

Я хочу собирать и анализировать данные 404 для решения любых реальных проблем на сайте ASP.NET MVC (с ELMAH). Главное требование - хранить эту информацию в более специализированном и плотном, но все же доступном для запросов формате, включая ссылающийся сайт / URL.

В настоящее время я могу просмотреть 404 в ELMAH. Однако я не хочу, чтобы ELMAH собирал все мои 404-е (по крайней мере, не в формате по умолчанию), потому что эти журналы ошибок слишком быстро становятся большими. Лишь около 1% журнала ELMAH 404 обычно представляют собой релевантные данные, например, регистрируют нерелевантные сведения об исключениях при обычном сканировании уязвимостей. Затем обнаружение реальных ошибок становится очень трудным или даже невозможным, если мне приходится обрезать мою таблицу ELMAH еженедельно.

Кроме того, даже после сбора всех этих данных в ELMAH, он не предлагает специализированных полей для критических полей URL target и referer (для запроса или агрегирования), которые делают возможным управление 404.

Если есть пакет (например, через NuGet), который может сохранять в SQL, включает уровень представления, может сортировать по наиболее распространенным ошибкам или ошибкам с фактическими источниками ссылок и даже позволяет помечать их как просмотренные / адресованные, чтобы они не отображались в будущем сообщает, что было бы идеальным решением. Любое решение, обеспечивающее часть этого, было бы отличным началом.

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

Однако я бы предпочел пакетное решение, в котором не нужно использовать ELMAH. Я могу вручную добавить фильтр в ELMAH (Elmah сообщает о нежелательных ошибках 404, ELMAH - фильтрация ошибок 404), если ELMAH не является частью решения.


person shannon    schedule 26.02.2014    source источник
comment
Прокомментируйте, пожалуйста, если вы отрицаете / закрываете - как это не по теме? После установки ELMAH ответственность за 404 ложится на приложение. Если вы думаете, что есть простой способ вывести этот вопрос за пределы области программирования, не будет ли это примечание вежливым? В последнее время люди, кажется, думают, что отсутствие видимого кода - плохой вопрос.   -  person shannon    schedule 26.02.2014


Ответы (1)


Я один из разработчиков https://elmah.io. elmah.io предлагает некоторые функции, которые вы ищете. Вы можете искать ошибки по различным ключевым свойствам. Также фильтрующая часть может быть реализована с помощью нашей опции правил, где вы можете игнорировать ошибки от определенных пользовательских агентов и так далее.

Мы также создаем реализацию ErrorLog для ELMAH, позволяющую сохранять ошибки в Elasticsearch: https://github.com/elmahio/Elmah.Io.ElasticSearch. Вы можете искать и объединять все свои 404, используя пользовательский интерфейс для Elasticsearch, например Kibana.

person ThomasArdal    schedule 26.02.2014
comment
Это отличный ответ. Мне нравится идея elmah.io, а также ваша ссылка на Elasticsearch. К сожалению, при использовании сотен 404-х запросов в день от 50 до 100 долларов в месяц. Цена на elmah.io - это обязательство по оплате, которое я не готов встроить в это приложение. - person shannon; 27.02.2014
comment
Я полностью понимаю. Если вы не можете отфильтровать большинство ошибок с помощью правил игнорирования, вам следует самостоятельно посмотреть на хостинг. Зачем вам вообще все эти 404? Вы не можете что-нибудь сделать, чтобы это исправить? - person ThomasArdal; 27.02.2014
comment
Большинство ошибок 404 - это сканирование уязвимостей. Многие из них также являются недействительными ссылками на изображения и стили из документов, опубликованных участниками, что является артефактом устаревшего процесса преобразования. Есть куча, которые выглядят как действительно плохие рефералы, но на самом деле это сложно сказать с таким шумом. - person shannon; 27.02.2014
comment
Иногда, конечно, очень сложно определить 404-е. Во многих случаях я смотрю ссылку и думаю, что это то, что кто-то разумно ожидал найти на нашем сайте, исходя из нашего рынка, но затем я найду URL-адрес в матрице уязвимостей. - person shannon; 27.02.2014
comment
Но разве вы не можете идентифицировать эти ошибки с помощью пользовательского агента, сообщения или чего-то подобного? В этом случае просто добавьте правила игнорирования этих ошибок. Кстати, elmah.io все еще находится в стадии бета-тестирования, и все пакеты бесплатны. - person ThomasArdal; 27.02.2014
comment
Для сканирования уязвимостей действительно нет хорошего способа отфильтровать те, о которых я знаю, без дорогой подписки на службу межсетевого экрана. Очевидно, хакеры пытаются имитировать разумные запросы, включая пользовательский агент. - person shannon; 27.02.2014
comment
Кроме того, Томас, к вашему сведению, поскольку вы строите цены. Другой источник многих из наших 404-х - это альтернативные домены, которые мы приобрели для нашего бренда, которые, похоже, получили кучу недействительных, но безобидных маркетинговых ссылок со всего мира. - person shannon; 07.03.2014