Самое простое, что нужно сделать - это заставить каждое приложение «позвонить домой». Создайте одно центральное приложение, предпочтительно веб-приложение, и пусть удаленные приложения будут вызывать центральное приложение в любой необходимый вам интервал. Они могут включать дополнительную информацию, которую вы хотите отслеживать.
Ведите список того, где развернуто приложение, и если вы не получите ни одного звонка из списка в течение ожидаемого периода времени, то вы знаете, что он не в сети.
Если вы не можете изменить фактическое приложение, которое вы отслеживаете, то напишите небольшое приложение-компаньон, которое может запускаться как запланированные задачи, выполнять те же локальные проверки и перезванивать в центральное приложение.
Мы делаем это с тысячами клиентских машин по всему миру, и это хорошо работает.