Пользовательский аудит и журналы Azure Storage

Я пишу небольшое приложение, которое читает и пишет из хранилища BLOB-объектов Azure (изображения, документы и т. Д.). Мне нужно реализовать некоторые записи, которые будут регистрировать такие действия, как:

  1. файл загружен
  2. Файл удален
  3. Обновления файлов
    и т.п.

Итак, мне нужно, чтобы мой журнал выглядел примерно так:

  1. Пользователь John Doe Создайте контейнер "containerName" на 2016-05-05
  2. Пользователь Mike Smith удалил блоб test.jpg
    так далее...

UserIds и другая дополнительная информация будет отправлена ​​через метод.
Пример: CreateImage(String CreatedBy)

Вопрос:
Каков наилучший способ хранения и создания журналов такого типа? Самый простой - иметь базу данных SQL с таблицей Audit и всеми необходимыми столбцами. Но я знаю, что в Azure есть Azure Diagnostics. Это можно использовать для хранения и запроса журналов? Например, мне нужно будет просмотреть все манипуляции с файлами по пользователю, по дате и т. Д.

1 ответ

Я бы пошел, используя один из этих способов:

1) Таблицы хранилища Azure для журналов. Здесь вы можете хранить все, что вам нужно относительно логов. Затем, если вам нужна функциональность для получения /filter/etc, вы можете заглянуть в LINQ to Azure Tables или даже LINQPad, если вам нужно программное обеспечение для настольных ПК. Тем не менее, некоторые соображения дизайна должны быть приняты во внимание - руководство по проектированию здесь.

2) Информация о приложении. Используя пользовательскую функциональность событий, вы можете перейти к мощной регистрации, а затем на портале посмотреть, как это происходит. Вы можете прикрепить некоторые метаданные к пользовательскому событию, а затем агрегировать / фильтровать / просматривать их, используя удобный веб-интерфейс. Или подключите log4net к AI, если вы хотите передавать логи в AI. AI может экспортировать свои журналы в хранилище Azure непрерывно, поэтому вы можете взять их и погрузиться в них позже.

ИМХО, я бы не сказал, что база данных SQL является подходящим хранилищем для журналов - это выглядит слишком много (с точки зрения ресурсов, может быть, цены и т. Д.) Для хранения журналов в полноценной БД. Не очень актуальное, но интересное чтение о работе с большим количеством записей.

Другие вопросы по тегам