Jak řešit agenta pro Windows 10

Jak řešit agenta pro Windows 10
« kdy: 09. 03. 2022, 10:27:40 »
Zdravim,

resim ted v ramci jednoho projektu zadani, ktere se tyka prace, se kterou nemam zkusenosti a proto bych se zda rad zeptal na Vase nazory, jaky pristup / architektura je vhodna.

## Zadani

Ve VM nam bezi Windows 10 s desktopovou 3rd party uzavrenou aplikaci. Tato aplikace slouzi pro sber dat z provozu. Neni podstatne jakych a jak. Podstatne je ale to, ze na danem W$ bezi SQL server, ktery aplikace vyuziva pro zapis dat. Port databaze je k dispozici spolecne s credentials. Je tedy mozne se k databazi pripojit a data z ni sosat. Coz je soucasti zadani => dostat data z teto uzavrene aplikace do nasich vlastnich systemu.

## Otazky

Jak vhodne resit sosani dat z takoveto databaze? Jde mi o to, zda by bylo lepsi naprogramovat aplikaci, ktera se nainstaluje jako servica na danem W$, bude mit (bud primo v sobe, nebo jako dalsi servicu) vlastni db a veskerou logiku pro odesilani dat, ktere by bylo reseno jako REST API (servica by tedy bela API client).

Nebo zda by bylo lepsi napr nasledujici. Jelikoz W$ bezi ve VM, muzeme si tam natahnout bud VPN tunel, nebo se pripojovat pres SSH. Aplikace pro sosani dat by nam tedy klidne mohla bezet jako kontejner v nasem prostredi a k databazi se pripojovat temito zpusoby.

## Poznamky

Nemam s programovanim services pro W$ zadne zkusenosti. V pripade prvni varianty bych tedy resil, zda delat jednu "velkou" svc, nebo jich udelat vice - pro vlastni db, konektor na SQL, API client a jak mezi nimi udelat komunikaci, atd..

V pripade pripojovani k SQL vzdale si zase nejsem jisty spolehlivosti takoveho reseni. Container i W$-VM jedou na stejne infrastrukture, takze sitova spolehlivost a rychlost by mela byt relativne ok.


Prosim o jakekoli postrehy a doporuceni. Pokud existuje lepsi treti reseni, sem s nim. Napadlo me take, zda by nesly nejak vyuzit komponenty z eko systemu Elastic nebo fluentD, ale nemam s nimi zkusenost. Nebo zda existuje jiz hotovy klient, ktereho bych na W$ nainstaloval a on uz by pozadavou funkcionalitu mel v sobe?

Reseni hledam ve stylu snadno a rychle - nechci stravit rok programovanim dokonaleho reseni. Neni pozadovana 100 % spolehlivost. V pripade vypadku at uz site, nebo modre smrti VM staci, kdyz se po obnove spojeni / restartu vsech komponent zpetne nactou vsechna nova data, ktera se mezi tim v SQL objevila, coz se snadno vyresi logikou v aplikaci pro cteni techto dat.
« Poslední změna: 09. 03. 2022, 11:51:12 od Petr Krčmář »


Re:Jak resit agenta pro Windows 10
« Odpověď #1 kdy: 09. 03. 2022, 10:41:30 »
tak v C# to budes mit ve windows asi nejjednodussi, jak prgani sql clienta, tak delani service.
do architektury nebudu kecat, ze zacatku bych to udelal jako server/service co taha data z sql,
na druhem konci serveru muzes mit rozhrani jake chces :-) v C# jde taky napsat rest api clienta.



https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer

https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection?view=dotnet-plat-ext-6.0

https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client

Re:Jak řešit agenta pro Windows 10
« Odpověď #2 kdy: 09. 03. 2022, 14:14:21 »
A proč hned něco programovat?
Nástrojů na podobné věci je už spousta.
Osobně bych použil asi logstash https://github.com/elastic/logstash
klidně v kontajneru...