I created the following alert for finding systems that have recently stopped reporting. I haven't seen a similar solution to this problem so I thought I would post it here in hopes that it might help others.
This alert will find hosts that haven't sent data within the last day, but have in the days previous. It's set for the 3 days prior, but can be changed to a longer duration. It will report each host for 3 days to allow time for the admins to take action to get the system online.
using join with so many events (like _internal) will surely be a very slow search.
Please try a different approach:
index=_internal earliest=-3d@d latest=now
| eval day=if(now()-_time<86400,"Last day","Previous days")
| stata dc(day) AS dc_day values(day) AS day count BY host
| where dc_day=1 AND day="Previous days"