I've been looking at how to deploy NodeJS applications and how to later monitor them. I think my terminology here might be a bit off so I'll explain what I want.
I have multiple VMs running and on each of those VMs I need to have 2-3 different applications. The services differ per VM. Today these are manually handled and deployed using Git and PM2. There is some automatic deployment using GitHub webhooks and some simple code but we would like to move that to a more central place.
What I'd like is to have a central application where we can configure what application should run on each VM and have a list of what application is running, their version and "status" (since most of these are web apps we can just ping them). And the central application should handle deployment of updates and preferably rollbacks as well.
I have looked at tools like Ansible, Chef, Puppet etc. but most of them seem to leave it at "we have done this task and it was successful." so no further information about if that service is alive or anything. Further, most monitoring tools are just logging while what I'm looking for is a way to get a list of all applications running and their status. The name for this might be something else.
Is there a tool that fits what I want here or am I trying to combine two tools that should be separate into one tool?