Я написал приложение, которое собирает окна журналов из linux через пакет wmi-client Zenoss.Надежно получить последнюю запись журнала событий с помощью WQL
Он использует WQL для запроса журнала событий и анализа результатов. Моя проблема заключается в поиске последней записи в журнале.
я наткнулся на this, который говорит мне, чтобы использовать столбец NumberOfRecords в запросе, например, как это
Select NumberOfRecords from Win32_NTEventLogFile Where LogFileName = 'Application'
и использовать возвращаемое значение от как самый высокий лог.
Мой вопрос: я слышал, что журнал событий Windows является циклическим буфером, то есть он перезаписывает старые записи с новыми, когда журнал заполняется. Будет ли это влиять на NumberOfRecords, как если бы это произошло, свойство «RecordNumber» событий будет продолжать увеличиваться, однако фактическое количество записей в журнале событий не изменилось бы (как для каждой записи,).
Может ли кто-нибудь пролить свет на то, как это работает (независимо от того, является ли NumberOfRecords наивысшим номером записи или фактическим количеством событий в журнале) и, возможно, предлагает решение?
Update
Итак, мы теперь знаем, что NumberOfRecords не будет работать на своем собственном, так как журнал событий является кольцевой буфер. Решение MS должно получить самую старую запись и добавить ее в NumberOfRecords, чтобы получить самую последнюю запись.
Это возможно через WinAPI, но я звоню удаленно из Linux. Кто-нибудь знает, как я могу добиться этого в моем сценарии?
Благодаря
Mitch, Спасибо за ваш ответ, однако вы могли бы указать мне в правильном направлении для удаленного вызова функций WinAPI из linux? Я хотел сделать это в первую очередь, но не мог понять, как назвать эти функции с моего компьютера CentOS Linux. –
Вы можете сделать это через RPC, они делают это в SAMBA. Взгляните на rpcclient в SAMBA. –