получить доступ к файлам журнала Windows из Linux

3490
damir

Я пытаюсь получить удаленный доступ к файлам журналов Windows из Linux. До сих пор я нашел два разных подхода.

  1. Установите сервер системного журнала на машине Windows и позвольте Windows отправлять файлы журнала в Linux, читайте эти файлы
  2. Удаленный доступ к файлам журналов с помощью реализации wmi для Linux.

Кто-нибудь знает об ограничениях для этих двух подходов, прежде чем погрузиться в реализацию?

3

3 ответа на вопрос

2
Kurt Pfeifle

Я чувствую, что ваш второй маршрут будет более легким для вас. Первый маршрут включает в себя прикосновение к двум различным системам, каждая из которых имеет свои причуды:

  • установить + настроить удаленный сервер системного журнала в Linux;
  • заставить Windows отправлять логи на удаленный сервер syslog;
  • также настройте чтение системного журнала в Linux

Этот подход, кажется, создает больше «точек отказа» (представьте себе сетевую проблему, блокирующую Windows от регистрации своих событий в удаленном системном журнале).

Первый маршрут потребует только установки клиента wmi для Linux. Я бы порекомендовал wbemcli. (На Debian / Ubuntu попробуйте apt-get install wbemcli.) При этом ведение журналов Windows (что, по моему опыту, безупречно) остается неизменным. Даже если у вас есть временные проблемы с сетью, ваш доступ к бескомпромиссным журналам вернется после того, как сеть вернется к полной работе.

Как вы, возможно, знаете, WMI - это просто реализация Microsoft WBEM (управление предприятием через Интернет). WBEM, в свою очередь, является отраслевым стандартом, определенным консорциумом целевой группы распределенного управления .

В WMI MS есть некоторые отличия от стандарта WBEM (поскольку в большинстве случаев MS говорит, что они «внедряют стандарт»). Например, он использует транспортный протокол, отличный от стандартного WBEM (WBEM обычно использует HTTP по TCP / 5988 или HTTPS по TCP / 5989. WMI также использует слегка отличающиеся пространства имен. В остальном они в основном идентичны.

Отличный ответ! Есть ли какие-либо препятствия с подходом WMI / WBEM, например, необходимость настраивать дополнительные компоненты на каждом компьютере с Windows. Например, дополнительные права, дополнительные правила брандмауэра и т. Д.? С WMI я могу получить доступ только к журналам событий, не к примеру, к журналам Exchange, верно? damir 13 лет назад 0
@damir: Извините, я не знаю ответа на ваш вопрос «Журналы обмена». Мне никогда не приходилось иметь дело с Exchange. Kurt Pfeifle 13 лет назад 0
1
Aaron Digulla

Я не могу комментировать эти два, но знаю третий: установить в Windows небольшой сервер, который может читать журнал и который отвечает на запросы или отправляет новые события в Linux. Я использовал Python с модулем win32 для подобных задач.

Это дополнительные накладные расходы на администрирование, если ничто иное не окажется надежным, я буду использовать ваш метод damir 13 лет назад 0
@ Аарон Дигулла, есть ли документация о том, как это сделать? Вместо того, чтобы опрашивать или запрашивать, я хотел бы, чтобы моя Linux-машина просто прослушивала события входа в Windows с контроллера домена, поэтому этот подход звучит более подходящим. Благодарю. Nagev 6 лет назад 0
@Nagev Вам нужно прочитать API-интерфейсы Windows, чтобы получить доступ к журналу событий. Есть примеры для этого: https://stackoverflow.com/questions/11219213/read-specific-windows-event-log-event Далее вам нужно написать сервис, который позволит вам читать это из клиента Linux. Будет работать простой сервис на основе REST (есть множество примеров, как сделать REST с Python, просто Google). Просто убедитесь, что вы используете некоторую форму шифрования для конфиденциальных данных (используйте https: // для доступа к серверу REST). Aaron Digulla 6 лет назад 0
0
alpha_989

Да .. вам нужен git-bashWindows, сервер SSH (я бы порекомендовал bitvise sshd, никаких личных подключений, но он очень стабильный и хорошо проверенный).

После того, как вы это сделали, вам нужно поставить git-bashна путь Windows .., то вы можете использовать

ssh username@10.15.3.3 'bash -c "tail -n 20 -F /c/Users/username/Desktop/logging_file.log"'

Более подробная информация здесь: https://stackoverflow.com/a/50936183/4752883