Compartir a través de


Compatibilidad con expresiones regulares en System Center Operations Manager

Al crear módulos de administración, es posible que tenga que incluir la coincidencia de expresiones regulares en detecciones y grupos. Las expresiones regulares también pueden ser necesarias para la coincidencia de patrones en criterios de expresión en monitores y reglas.

Versión original del producto: System Center Operations Manager
Número de KB original: 2702651

Operations Manager admite dos tipos diferentes de expresiones regulares. Debe saber en qué elemento está trabajando para poder elegir la expresión correcta. Los filtros de cálculo y expresión de pertenencia a grupos usan sintaxis distintas para la coincidencia de patrones.

Cálculo de grupos

El cálculo de grupo usa PERL la sintaxis de expresiones regulares. De forma predeterminada, la coincidencia no distingue mayúsculas de minúsculas, pero puede especificar que una expresión debe distinguir mayúsculas de minúsculas mediante un atributo especial en el XML. Para obtener más información, vea SimpleCriteriaType.

El cálculo del grupo se encuentra en el módulo de administración (MP) siempre que use el Group Calc módulo. La GroupCalc expresión usa el MatchesRegularExpression operador para crear la pertenencia dinámica a grupos en función de las expresiones de coincidencia de patrones. La implementación de este operador pasa la expresión que se encuentra en el XML de MP al nombre de dbo.fn_MatchesRegularExpression la llamada SQL. Si esta llamada devuelve un valor de 0, la coincidencia es false. Si devuelve un valor de 1, la coincidencia es true.

Importante

El dbo.fn_MatchesRegularExpression propio nombre de llamada SQL distingue mayúsculas de minúsculas, por lo que el MatchesRegularExpression operador que se usa en los criterios de pertenencia a grupos dinámicos también distingue entre mayúsculas y minúsculas.

GroupCalc también admite dos subelementos especiales que hacen expresiones abstractas de las siguientes consultas comunes de estilo regex.

Funciones especiales groupCalc

Elemento secundario GroupCalc Expresión mp Regex equivalente
ContainsSubstring ^*{O}.*$ (Wherein {O} is replaced by the substring)
MatchesWildcard ? .
MatchesWildcard * .*
MatchesWildcard # [0-9]

Nota:

Si se usan cualquiera de estos dos operadores especiales, la evaluación siempre distingue mayúsculas de minúsculas.

Criterios de coincidencia de filtros de expresión

Los filtros de expresión que se usan en los módulos de administración usan la sintaxis de expresión regex de .NET Framework. No todas las expresiones funcionan. Sin embargo, se admiten los siguientes elementos de sintaxis de expresiones regulares de .NET Framework. Los filtros de expresión existen en el módulo de administración cuando se usa el módulo Expresión Eval.

Sintaxis regex de Operations Manager

Construcción Expresión regular de Operations Manager
Un carácter cualquiera .
Carácter en el intervalo [ ]
Carácter no en el intervalo [^ ]
Inicio de línea ^
Fin de línea $
O bien, |
Grupo ( )
0 o 1 coincidencia ?
0 o más coincidencias *
1 o más coincidencias +
Coincidencias exactas de N {n}
Al menos N coincidencias {n,}
Como máximo, N coincidencias { , n}
Coincidencias de N a M {n, m}
Carácter de nueva línea \n
Carácter de tabulación \t

Ejemplos de expresiones regulares (regex) de Operations Manager

Ejemplo 1

Busque las coincidencias que contengan una sola cadena: string1

^(string1)$

Ejemplo 2

Busque cualquier coincidencia que contenga cualquiera de las dos cadenas o string1 string2:

^(string1)|^(string2)$

Ejemplo 3

Busque cualquier coincidencia con las carpetas ubicadas de forma recursiva en las dos rutas de acceso de carpeta(/var/lib/string1/* o /var/lib/string2/*):

^(\/var\/lib\/string1\/.*)|^(\/var\/lib\/string2\/.*)$

Ejemplo 4

Busque cualquier coincidencia que contenga cualquiera de las dos cadenas o (sin distinción entre mayúsculas y Agent2.contoso.com minúsculasAgent1.contoso.com):

^(?i)(agent1.contoso.com)|(?i)(agent2.contoso.com)$

Busque las coincidencias que contengan Agent (sin distinción entre mayúsculas y minúsculas):

^(?i)(agent.*)$

Expresiones regulares a través del SDK

El SDK de Operations Manager tiene un operador De criterios coincide para filtrar objetos. Este operador usa la misma funcionalidad que MatchesCriteria en el caso GroupCalc mencionado anteriormente.

Cuando se usa el SDK para construir una expresión de criterios para buscar objetos en la base de datos de Operations Manager, los siguientes elementos de sintaxis son válidos y útiles:

  • Operadores de comparación
  • Caracteres comodín
  • Valores dateTime
  • Comparaciones de enteros a enumeración XML

Operadores de comparación

Puede usar operadores de comparación al construir una expresión de criterios. Los operadores válidos se describen en la tabla siguiente.

Operadores de comparación del SDK

Operator Descripción Por ejemplo
=, == Se evalúa como true si los operandos izquierdo y derecho son iguales. Name = 'mymachine.contoso.com'
!=, <> Se evalúa como true si los operandos izquierdo y derecho no son iguales. Name != 'mymachine.contoso.com'
> Se evalúa como true si el operando izquierdo es mayor que el operando derecho. Severity > 0
< Se evalúa como true si el operando izquierdo es menor que el operando derecho. Severity < 2
>= Se evalúa como true si el operando izquierdo es mayor o igual que el operando derecho. Severity >= 1
<= Se evalúa como true si el operando izquierdo es menor o igual que el operando derecho. Severity <= 3
LIKE Se evalúa como true si el operando izquierdo coincide con el patrón definido por el operando derecho. Use los caracteres de la tabla con caracteres comodín para definir el patrón. Name 'LIKE SQL%'
Se evalúa como true si el Name valor es SQLEngine.

Name LIKE '%SQL%'
Se evalúa como true si el Name valor es MySQLEngine.
COINCIDENCIAS Se evalúa como true si el operando izquierdo coincide con la expresión regular definida por el operando derecho. Name MATCHES 'SQL*05'
Se evalúa como true si el Name valor es SQL2005.
IS NULL Se evalúa como true si el valor del operando izquierdo es NULL. ConnectorId IS NULL
Se evalúa como true si la ConnectorId propiedad no contiene un valor.
IS NOT NULL Se evalúa como true si el valor del operando izquierdo no es NULL. ConnectorId IS NOT NULL
Se evalúa como true si la ConnectorId propiedad contiene un valor.
IN Se evalúa como true si el valor del operando izquierdo está en la lista de valores definidos por el operando derecho.

Nota El operador IN es válido para su uso solo con propiedades de tipo Guid.
Id IN ('080F192C-52D2-423D-8953-B3EC8C3CD001', '080F192C-53B2-403D-8753-B3EC8C3CD002')
Se evalúa como true si el valor de la Id propiedad es uno de los dos identificadores únicos globales proporcionados en la expresión.
Y Se evalúa como true si los operandos izquierdo y derecho son true. Name = 'SQL%' AND Description LIKE 'MyData%'
O BIEN Se evalúa como true si el operando izquierdo o derecho es true. Name = 'SQL%' OR Description LIKE 'MyData%'
NOT Se evalúa como true si el operando derecho no es true. NOT (Name = 'IIS' OR Name = 'SQL')

Comodines

En la tabla siguiente se definen los caracteres comodín que puede usar para construir un patrón cuando se usa el LIKE operador .

Operadores comodín usados con el operador LIKE

Wildcard (Carácter comodín) Descripción Ejemplo
% Carácter comodín que coincide con cualquier número de caracteres. Name LIKE 'SQL%'
Se evalúa como true si el Name valor es SQLEngine.

Name LIKE '%SQL%'
Se evalúa como true si el Name valor es MySQLEngine.
_ Carácter comodín que coincide con un solo carácter. Name LIKE 'SQL200_'
Se evalúa como true para los siguientes Name valores:

SQL2000
SQL2005

Nota: La expresión se evalúa como false para SQL200 porque el símbolo _ debe coincidir exactamente con un carácter en el Name valor.
[] Carácter comodín que coincide con cualquier carácter que esté incluido en el juego de caracteres.

Nota También se usan corchetes al calificar las referencias a las propiedades MonitoringObject . Para obtener más información, vea Definir consultas para objetos de supervisión.
Name LIKE 'SQL200[05]'
Se evalúa como true para los siguientes Name valores:

SQL2000
SQL2005

La expresión se evalúa como false para SQL2003.
[^] Carácter comodín que coincide con cualquier carácter que no esté incluido en el juego de caracteres. Name LIKE 'SQL200[^05]'
Se evalúa como true para SQL2003.

La expresión se evalúa como false para SQL2000 y SQL2005.

Comparaciones de DateTime

Cuando se usa un valor DateTime en una expresión de consulta, use el formato DateTime general (G) para convertir el DateTime valor en un valor de cadena. Por ejemplo:

string qStr = "TimeCreated <= '" + myInstant.ToString("G") + "'";
ManagementPackCriteria mpCriteria = new ManagementPackCriteria(qStr);

Convierta todos los valores de fecha en el formato G (GMT) para realizar comparaciones de cadenas válidas.

Comparación de valores enteros con enumeraciones

Cuando se usa un valor de enumeración entero en una expresión de consulta, convierta el valor de enumeración en un entero.

Por ejemplo:

string qStr = "Severity > " + (int)ManagementPackAlertSeverity.Warning;
MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(qStr);

Más información