Prise en charge des expressions régulières dans System Center Operations Manager
Lorsque vous créez des packs d’administration, vous devrez peut-être inclure des correspondances d’expressions régulières dans les découvertes et les groupes. Les expressions régulières peuvent également être nécessaires pour la correspondance de modèles dans les critères d’expression dans les moniteurs et les règles.
Version du produit d’origine : System Center Operations Manager
Numéro de base de connaissances d’origine : 2702651
Operations Manager prend en charge deux types d’expressions régulières différents. Vous devez savoir quel élément vous travaillez pour pouvoir choisir l’expression correcte. Les filtres d’appartenance et d’expression de groupe utilisent des syntaxes distinctes pour la correspondance de modèles.
Calcul de groupe
Le calcul de groupe utilise la syntaxe d’expression PERL
régulière. Par défaut, la correspondance ne respecte pas la casse, mais vous pouvez spécifier qu’une expression doit être sensible à la casse à l’aide d’un attribut spécial dans le code XML. Pour plus d’informations, consultez SimpleCriteriaType.
Le calcul de groupe se trouve dans votre pack d’administration (MP) chaque fois que vous utilisez le Group Calc
module. L’expression GroupCalc
utilise l’opérateur pour créer une MatchesRegularExpression
appartenance de groupe dynamique en fonction des expressions de correspondance de modèle. L’implémentation de cet opérateur transmet l’expression trouvée dans le fichier XML MP au dbo.fn_MatchesRegularExpression
nom d’appel SQL. Si cet appel retourne une valeur de 0, la correspondance est false. Si elle retourne une valeur de 1, la correspondance est vraie.
Important
Le dbo.fn_MatchesRegularExpression
nom d’appel SQL lui-même respecte la casse. L’opérateur utilisé dans les critères d’appartenance de groupe dynamique respecte également la MatchesRegularExpression
casse.
GroupCalc prend également en charge deux sous-éléments spéciaux qui font des expressions abstraites des requêtes de style régulière courantes suivantes.
Fonctions spéciales GroupCalc
Sous-élément GroupCalc | Expression MP | Équivalent regex |
---|---|---|
ContainsSubstring | ^*{O}.*$ (Où est {O} remplacé par la sous-chaîne) |
|
MatchesWildcard | ? |
. |
MatchesWildcard | * |
.* |
MatchesWildcard | # |
[0-9] |
Note
Si l’un de ces deux opérateurs spéciaux est utilisé, l’évaluation respecte toujours la casse.
Critères de correspondance de filtre d’expression
Les filtres d’expression utilisés dans les packs d’administration utilisent la syntaxe d’expression regex .NET Framework. Toutes les expressions ne fonctionnent pas. Toutefois, les éléments de syntaxe d’expression régulière .NET Framework suivants sont pris en charge. Les filtres d’expressions existent dans votre pack d’administration lorsque vous utilisez le module Expression Eval.
Syntaxe d’expression régulière Operations Manager
Construction | Regex Operations Manager |
---|---|
Tout caractère | . |
Caractère dans la plage | [ ] |
Caractère non compris dans la plage | [^ ] |
Début de ligne | ^ |
Fin de ligne | $ |
Or | | |
Groupe | ( ) |
Correspondance 0 ou 1 | ? |
0 ou plusieurs correspondances | * |
1 ou plusieurs correspondances | + |
Correspondances N exactement | {n} |
Au moins N correspondances | {n,} |
Au maximum des correspondances N | { , n} |
Correspondances N à M | {n, m} |
Caractère de nouvelle ligne | \n |
Caractère de tabulation | \t |
Exemples d’expressions régulières Operations Manager (regex)
Exemple 1
Recherchez les correspondances contenant une seule chaîne : string1
^(string1)$
Exemple 2
Recherchez les correspondances contenant l’une des deux chaînes, string1
ou string2
:
^(string1)|^(string2)$
Exemple 3
Recherchez les correspondances aux dossiers situés de manière récursive sous les deux chemins d’accès au dossier (/var/lib/string1/*
ou /var/lib/string2/*
) :
^(\/var\/lib\/string1\/.*)|^(\/var\/lib\/string2\/.*)$
Exemple 4
Recherchez les correspondances qui contiennent l’une des deux chaînes ou Agent1.contoso.com
Agent2.contoso.com
(sans respect de la casse) :
^(?i)(agent1.contoso.com)|(?i)(agent2.contoso.com)$
Recherchez les correspondances qui contiennent Agent
(sans respect de la casse) :
^(?i)(agent.*)$
Expressions régulières via le Kit de développement logiciel (SDK)
Le Kit de développement logiciel (SDK) Operations Manager a un opérateur De critères Correspondances pour le filtrage d’objets. Cet opérateur utilise la même fonctionnalité que MatchesCriteria
dans le cas GroupCalc mentionné précédemment.
Lorsque vous utilisez le Kit de développement logiciel (SDK) pour construire une expression de critère pour rechercher des objets dans la base de données Operations Manager, les éléments de syntaxe suivants sont valides et utiles :
- Opérateurs de comparaison
- Caractères génériques
- Valeurs DateTime
- Comparaisons d’énumérations integer to XML
Opérateurs de comparaison
Vous pouvez utiliser des opérateurs de comparaison lorsque vous construisez une expression de critère. Les opérateurs valides sont décrits dans le tableau suivant.
Opérateurs de comparaison sdk
Opérateur | Description | Exemple(s) |
---|---|---|
=, == | Prend la valeur true si les opérandes de gauche et de droite sont égaux. | Name = 'mymachine.contoso.com' |
!=, <> | Évalue la valeur true si les opérandes de gauche et de droite sont inégaux. | Name != 'mymachine.contoso.com' |
> | Prend la valeur true si l’opérande gauche est supérieur à l’opérande droit. | Severity > 0 |
< | Prend la valeur true si l’opérande gauche est inférieur à l’opérande droit. | Severity < 2 |
>= | Prend la valeur true si l’opérande gauche est supérieur ou égal à l’opérande droit. | Severity >= 1 |
<= | Prend la valeur true si l’opérande gauche est inférieur ou égal à l’opérande droit. | Severity <= 3 |
LIKE | Prend la valeur true si l’opérande gauche correspond au modèle défini par l’opérande droit. Utilisez les caractères du tableau générique pour définir le modèle. | Name 'LIKE SQL%' Prend la valeur true si la Name valeur est SQLEngine. Name LIKE '%SQL%' Prend la valeur true si la Name valeur est MySQLEngine. |
CORRESPONDANCES | Prend la valeur true si l’opérande gauche correspond à l’expression régulière définie par l’opérande droit. | Name MATCHES 'SQL*05' Prend la valeur true si la Name valeur est SQL2005. |
IS NULL | Prend la valeur true si la valeur de l’opérande gauche est null. | ConnectorId IS NULL Prend la valeur true si la ConnectorId propriété ne contient pas de valeur. |
IS NOT NULL | Prend la valeur true si la valeur de l’opérande gauche n’est pas null. | ConnectorId IS NOT NULL Prend la valeur true si la ConnectorId propriété contient une valeur. |
IN | Prend la valeur true si la valeur de l’opérande gauche se trouve dans la liste des valeurs définies par l’opérande de droite. Notez que l’opérateur IN est valide pour une utilisation uniquement avec les propriétés du type Guid. |
Id IN ('080F192C-52D2-423D-8953-B3EC8C3CD001', '080F192C-53B2-403D-8753-B3EC8C3CD002') Prend la valeur true si la valeur de la Id propriété est l’un des deux identificateurs globaux uniques fournis dans l’expression. |
AND | Prend la valeur true si les opérandes de gauche et de droite sont tous les deux vrais. | Name = 'SQL%' AND Description LIKE 'MyData%' |
OU | Prend la valeur true si l’opérande gauche ou droit est vrai. | Name = 'SQL%' OR Description LIKE 'MyData%' |
NOT | Prend la valeur true si l’opérande approprié n’est pas vrai. | NOT (Name = 'IIS' OR Name = 'SQL') |
Caractères génériques
Le tableau suivant définit les caractères génériques que vous pouvez utiliser pour construire un modèle lorsque vous utilisez l’opérateur LIKE
.
Opérateurs génériques utilisés avec l’opérateur LIKE
Caractère générique | Description | Exemple |
---|---|---|
% | Caractère générique qui correspond à un nombre quelconque de caractères. | Name LIKE 'SQL%' Prend la valeur true si la Name valeur est SQLEngine. Name LIKE '%SQL%' Prend la valeur true si la Name valeur est MySQLEngine. |
_ | Caractère générique qui correspond à un caractère unique. | Name LIKE 'SQL200_' Évalue la valeur true pour les valeurs suivantes Name : SQL2000 SQL2005 Remarque : L’expression prend la valeur false pour SQL200 , car le symbole _ doit correspondre exactement à un caractère dans la Name valeur. |
[] | Caractère générique qui correspond à n’importe quel caractère placé dans le jeu de caractères. Les crochets de note sont également utilisés lors des références éligibles aux propriétés MonitoringObject . Pour plus d’informations, consultez Définition de requêtes pour l’analyse des objets. |
Name LIKE 'SQL200[05]' Évalue la valeur true pour les valeurs suivantes Name :SQL2000 SQL2005 L’expression prend la valeur false pour SQL2003. |
[^] | Caractère générique qui correspond à un caractère qui n’est pas placé dans le jeu de caractères. | Name LIKE 'SQL200[^05]' Prend la valeur true pour SQL2003. L’expression prend la valeur false pour SQL2000 et SQL2005. |
Comparaisons DateTime
Lorsque vous utilisez une valeur DateTime dans une expression de requête, utilisez le format DateTime général (G) pour convertir la DateTime
valeur en valeur de chaîne. Par exemple :
string qStr = "TimeCreated <= '" + myInstant.ToString("G") + "'";
ManagementPackCriteria mpCriteria = new ManagementPackCriteria(qStr);
Convertissez toutes les valeurs de date au format G (GMT) pour effectuer des comparaisons de chaînes valides.
Comparaison des valeurs entières aux énumérations
Lorsque vous utilisez une valeur d’énumération entière dans une expression de requête, convertissez la valeur d’énumération en entier.
Par exemple :
string qStr = "Severity > " + (int)ManagementPackAlertSeverity.Warning;
MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(qStr);