This error message typically indicates that you previously configured auto-provisioning of the MMA agent and used a Sentinel instance to send some logs there. However, I have encountered some environments where I could not locate this configuration, while in others, I was able to identify and remove it. The first step should be to check if this configuration exists anywhere in Defender for Cloud.
You can also confirm that the issue is with the legacy agent by checking if any of the machines have both agents installed. By querying the agent category, you can determine if both agents are present, which might indicate that they are both sending logs to Sentinel.
Heartbeat
| where TimeGenerated > ago(21d)
| summarize make_set(Category) by Computer
Currently, Heartbeat logs use a different endpoint than real events. This means that it's possible for someone to block Heartbeat logs while still allowing security events. You can verify if logs are coming from both sources by checking specific fields that are unique to logs created by the newer version of the AMA agent. For example, the EventRecordId
field is only present in the newer version of the AMA agent and does not appear in logs from the MMA or older AMA versions.
SecurityEvent
| where TimeGenerated > ago(21d)
| extend IsEventIdPresent = iif(isempty(EventRecordId), false, true)
| summarize make_set(IsEventIdPresent) by Computer
However, in my experience, duplicates are often caused by DCR misconfigurations. This typically happens when multiple DCRs are assigned to the same machine or when logs are processed through multiple ingestion-time transformations, resulting in duplicates being output to the same table.