Generar alerta para el evento de seguridad en transacciones de APM

Microsoft.SystemCenter.Apm.FunctionTransaction.AlertSecurityAspectRule (Rule)

Knowledge Base article:

Resumen

El estado de la instancia pasa a ser incorrecto si el número total de eventos de seguridad por período de tiempo definido supera el umbral del monitor.

Causas

Se generan alertas de seguridad como consecuencia de problemas de autorización, autenticación o permisos cuando la aplicación intenta obtener acceso a recursos externos. El campo de detalles de alerta muestra una descripción que contiene el nombre de la función en la que se produjo el error del recurso al que se tuvo acceso y el contexto de operación, como ayuda para solucionar el problema. Las excepciones de seguridad se deben a problemas que se suelen solucionar mediante cambios de entorno o de configuración sin tener acceso al código fuente. Este tipo de problema puede deberse a problemas de autenticación, autorización o permisos al obtener acceso a un servidor de base de datos, servicio web, recurso de E/S, Active Directory.

Soluciones

Las alertas de seguridad provienen de excepciones no controladas debidas a problemas de acceso a recursos externos. Para solucionar estos problemas, compruebe:

1) la descripción de la alerta y los eventos;

2) los destinos de la operación (por ejemplo, Microsoft SQL Server);

3) la acción: un método que se desea ejecutar sobre un recurso (por ejemplo, una conexión al servidor);

4) los detalles del contexto de seguridad: conexión, usuario e identidad. Después de esta revisión, actualice la cuenta, la contraseña o los permisos en la configuración de la aplicación o en el servidor o dominio.

Element properties:

TargetMicrosoft.SystemCenter.Apm.FunctionTransaction
CategoryAlert
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Excepción de seguridad de transacción
Se ha producido un error de seguridad en la transacción {5} para la aplicación {0} en {1}. Se produjo una excepción de tipo '{2}' con el mensaje '{3}' en '{4}'. Para obtener más información, utilice el siguiente vínculo: $Url[Query='{6}']/APMEvent$

Member Modules:

ID Module Type TypeId RunAs 
LOBProvider DataSource Microsoft.SystemCenter.Apm.FunctionTransaction.LobDataProvider Default
AlertWriteAction WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.Apm.FunctionTransaction.AlertSecurityAspectRule" Enabled="false" ConfirmDelivery="true" Target="Microsoft.SystemCenter.Apm.FunctionTransaction">
<Category>Alert</Category>
<DataSources>
<DataSource ID="LOBProvider" TypeID="Microsoft.SystemCenter.Apm.FunctionTransaction.LobDataProvider">
<Name>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</Name>
<AspectType>security</AspectType>
<RootName>$Target/Property[Type="Microsoft.SystemCenter.Apm.FunctionTransaction"]/FunctionName$</RootName>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="AlertWriteAction" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.Apm.FunctionTransaction.AlertSecurityAspectRule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/ApplicationName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
<AlertParameter3>$Data/EventData/exceptionclass$</AlertParameter3>
<AlertParameter4>$Data/EventData/message$</AlertParameter4>
<AlertParameter5>$Data/EventData/name$</AlertParameter5>
<AlertParameter6>$Target/Property[Type="Microsoft.SystemCenter.Apm.TransactionBase"]/TransactionName$</AlertParameter6>
<AlertParameter7>$Data/EventData/ViewDetail$</AlertParameter7>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventData/eventConsolidationHash$</SuppressionValue>
</Suppression>
<Custom1>Security</Custom1>
</WriteAction>
</WriteActions>
</Rule>