Фильтрация отчетов об ошибках в рабочей среде рельсов - PullRequest
0 голосов
/ 08 января 2019

Приложения имеют уведомления, отправляемые по электронной почте в виде настроек в `environment / production.rb ':

Rails.application.config.middleware.use ExceptionNotification::Rack,
  :email => {
    :email_prefix => "[error] -  ",
    :sender_address => %{"notifier" no-reply@domain.ws},
    :exception_recipients => %w{notifications@domain4.us}
  }

Все плохие актеры, проверяющие приложение, генерируют ошибку 404 (, включая google с 'A=0 строкой ), которая, в свою очередь, генерирует уведомления, которые в целом являются шумовым загрязнением. (нет смысла блокировать ips, мы только что наблюдали цепочку зондов с одной и той же строкой из 12 разных ip-адресов ...)

Случайный побочный эффект, связанный с включением i18n и добавлением локали в URL, означает, что все эти ошибки относятся к одному типу some_darned_string "is not a valid locale". Обработка ошибки 404 приемлема с точки зрения снижения производительности относительно оставления плохого актера в темноте.

Однако возникает вопрос, как мы можем условно фильтровать ExceptionNotification :: Rack, чтобы не отправлять почту, когда в ее содержимом есть строка is not a valid locale.

1 Ответ

0 голосов
/ 08 января 2019

Вы можете добавить пользовательские исключения в список игнорирования

См. Игнорировать исключения

Есть также несколько полезных опций, таких как ignore_crawlers или ignore_if, которые позволят вам фильтровать исключения по их содержимому

...