Я играл с Log Parser последние несколько дней, мы пытаемся сохранить определенные идентификаторы событий из журналов безопасности наших контроллеров домена. Поскольку это журналы с большим объемом трафика, данные в них, как правило, сохраняются не более 15–30 минут. Поэтому мне нужно запускать этот запрос примерно каждые 10 минут в качестве запланированной задачи, чтобы убедиться, что я не потеряю никаких данных.
Мне (наконец-то!) Удалось запустить запрос, который извлекает соответствующие данные из журналов с соответствующими идентификаторами событий и записывает их в базу данных SQL. Проблема, с которой я сталкиваюсь, заключается в том, что оператор select завершается с ошибкой «неизвестное поле», если я пытаюсь извлечь свойство EventRecordID (которое я могу видеть в XML для любого события).
Он генерирует RecordNumber; однако кажется, что это число относится к запросу, а не к самой записи события. Это означает, что у меня есть уникальный номер записи для каждого события каждый раз, когда я запускаю запрос, поэтому, если событие все еще находится в журналах в течение нескольких последовательных запусков, оно записывается в базу данных несколько раз.
Как я могу заставить это записывать только один экземпляр вент в базе данных?
Хорошо, я не знаю, есть ли ответ на этот вопрос. т.е. документация / объяснение поля RecordNumber или почему анализатор журнала не может прочитать поле EventRecordID.
Однако один из ответов, отправленных на этот вопрос ServerFault в любом случае позволит мне выполнить то, что мне нужно. (Я поддержал этот ответ, но OP не пометил его как решение).
Решение состоит в том, чтобы использовать файл контрольной точки, который записывает последний выполненный запрос анализатора журнала и считывает только новые записи из указанного журнала. Это не только гарантирует, что уникальные записи будут прочитаны из журнала (и, что более важно, записаны в базу данных), но также повысит эффективность запроса.
Есть некоторая информация о контрольно-пропускных пунктах, закопанных глубоко в эта старая статья TechNetи аккуратное краткое описание того, как его использовать в это сообщение в блоге слишком.