Strategy for Monitoring Thinger Server and its resources


I’m looking into ways to monitor the Thinger Server and its resources to see if everything is OK, especially as we don’t control the Server update processes (except for plugins - NodeRED…) and monitor possible DNS forwarding issues. …

Is there an adequate way to do this monitoring?

  1. Monitor if Thinger Server is online
  2. Monitor if the Login Screen is online
  3. Monitor/Get Log of CPU, RAM, DISK, Connections
  4. Monitor the IOTMTP Port (25202)
  5. Monitor the MQTT Port (8883)
  6. Monitor the functioning of NodeRED

About item 2, I am using the UpTimeRobot website to monitor (via HTTP) if everything is ok with the Login Screen. Is it the best strategy?

About items 4 and 5, is it possible to monitor using an HTTP request via API, and get a response on its status? If not, how can we monitor if IOTMTP ports (25202) and MQTT port (8883) are ok? Would I have to use the IOTMTP and MQTT protocols on the clients that will make the request? And will I have to configure the same as a device on the Thinger Server?
Or is the best strategy to monitor the connection status of devices and make a routine for NODERED to monitor if something is wrong?

About item 3, the Swagger documentation states that it is necessary to use a WebSocket. Are there any online services like UpTimeRobot that we can use and store data about CPU, RAM, DISK, Connections…? Or can we use NodeRED to collect this data and store it in SQLite? Can NodeRED-Thinger Plugin use SQLite?

About item 6, would the best strategy be to make an API call ReadPluginInfo: /v1/users/{user}/plugins/{plugin} every 5 minutes?