Depending on the type of data and duration of searches powering these panels, here are a few ideas. They both rely on having (or creating) a field that uniquely identifies a given event. That could be a field that already exists, or you could make it appending together some fields that, when taken together, uniquely characterize an event.
Build a summary index (or set of summary indexes) supporting the data being displayed. Integrate logic into the dashboard that allows users to select events and submit them to the summary index with an additional field like acknowledged="true" . Then the searches powering individual panels can search their current data set and also the summary index, cross-apply the acknowledgment using eventstats like | eventstats values(acknowledged) AS acknowledged BY event_id and then look for only events where isnull(acknowledged) . I'd recommend also integrating some logic that grabs the username of the user who acknowledged the event and the time at which it was acknowledged.
Create lookups that contain the event_id of acknowledged events, the the time at which the event was acknowledged, and the user who acknowledged it. The search powering a dashboard can then perform a lookup and only display events that are not found in the lookup. The downsides of this approach are that it's pretty easy to wipe out a lookup accidentally, and and your lookup may grow to unmanageable size unless you are routinely trimming out old events.
... View more