So I'm a relatively new programmer, attempting to create a web application (ASP.net) to display the system information (E.G. Status of windows services, disk & resource usage and errors in event logs) of a number of remote servers for monitoring purposes (initially - I'd also like to keep the design open to the addition, in the future, of some basic remote control over these servers too).
I've started by beginning to create a small prototype but I've become a little confused in regards to the design of the solution.
My current solution involves the creation of a windows service that runs on each of the client servers (those being monitored), which periodically collects the necessary data from the local machine and then sends it as JSON via a POST request to a Web API hosted in IIS on the Monitoring server, which receives the data and stores it in an SQL Database. I now intend to create a separate ASP.net MVC project to host as a separate application in IIS on the Monitoring server and use this as my front end - to read from the DB and display the stats of the machines.
Is there anything blindingly wrong with the design specified above?
I'm also unsure on whether this design limits how far I could take this app, for example how I could add features to allow users to perform actions on the client servers via the web interface (E.G. manually requesting for real time system information, remotely controlling windows services, clearing event logs etc). Would it be a bad design to also host a Web API within the client windows services so that the server could talk to/make requests to all the clients too?
Sorry in advance if this post is too lengthy/ambiguous - Any advice and/or design suggestions would be greatly appreciated!