Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
sysadmin:linux:rsyslog:messages-properties [2017/05/18 13:26] – yoann | sysadmin:linux:rsyslog:messages-properties [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Les attributs des messages ====== | ====== Les attributs des messages ====== |
| |
Les attributs (properties) sont insensibles à la casse depuis les versions supérieures a la 3.17.0 | Les attributs (properties) sont insensibles à la casse depuis les versions supérieures à la 3.17.0 |
| |
Les properties peuvent être utilisées par: | Les properties peuvent être utilisées par: |
| |
<file> | <file> |
%propertiy:fromChar:toChar:options% | %property:fromChar:toChar:options% |
</file> | </file> |
| |
| Avec: |
| * **property**: le nom de la propriété a récupérer. |
| * **fromChar**/**toChar** motifs de sélection d'une sous-chaîne au sein de la propriété. |
| * **options** options de traitements sur la selection. |
| |
| === Sélection d'une sous-chaine avec fromChar/toChar === |
| |
Dans l'exemple ci-dessus les sections **fromChar** et **toChar** permettent de sélectionner une sous chaîne dans la valeur de la propriété. Pour accéder aux 4 premiers caractères du message on procédera ainsi: | Dans l'exemple ci-dessus les sections **fromChar** et **toChar** permettent de sélectionner une sous chaîne dans la valeur de la propriété. Pour accéder aux 4 premiers caractères du message on procédera ainsi: |
^ **<regex-type>** | **BRE** pour les expressions POSIX ou EPE pour les expressions étendues. | | ^ **<regex-type>** | **BRE** pour les expressions POSIX ou EPE pour les expressions étendues. | |
^ **<submatch>** | chiffre: 0 pour toute la chaîne, de 1 à 9 si plusieurs correspondances ont été trouvées. | | ^ **<submatch>** | chiffre: 0 pour toute la chaîne, de 1 à 9 si plusieurs correspondances ont été trouvées. | |
^ **<nomatch**> | spécifier une valeur en cas de non correspondance. | | ^ **<nomatch**> | Permet de spécifier un comportement en cas de non correspondance. Peut prendre les valeurs **DFLT** (retourne la chaine "**%%**%%NO MATCH%%**%%**", **BLANK**, **ZERO** ou **FIELD** pour retourner la totalité du champ. | |
| |
| Exemple syntaxique |
<file> | <file> |
| %msg:R,ERE,1,FIELD:for (vlan[0-9]\*):--end% |
| </file> |
| |
| Le concept de field (champ) peut également être utilisé pour l'extraction. Pour cela placer l'indicateur **F** dans la section **fromChar**. Les champs sont séparés par des délimiteurs (par défaut le caractère tabulation). Pour spécifier le délimiteur placer immédiatement après le caractère **F** une virgule suivie du **code décimal** du caractère **US-ASCII**. Le numéro du champs a extraire est a placer dans la section **toChar** |
| |
| L'exemple ci-dessous fournit la syntaxe pour extraire le troisième champ du message avec comme séparateur le point-virgule: |
| |
| <file> |
| %msg:F,59:3% |
</file> | </file> |
| |
| Chaque séparateur introduit un champ différent, si l'on souhaite que plusieurs séparateurs consécutifs n'augmentent qu'une fois le numéros de champ, ajouter un caractère **+** après le code du délimiteur: |
| |
| <file> |
| %msg:F,59+:3% |
| </file> |
| |
| === Les options === |
| |
| Les options sur les propriétés sont insensibles à la casse, elles peuvent être cumulées séparées par des virgules. Ci-dessous quelques options disponibles: |
| |
| ^ **uppercase** | Convertir en majuscule | |
| ^ **lowercase** | Convertir en minuscule | |
| ^ **csv** | Convertir les champs résultat en cvs | |
| ^ **drop-last-lf** | Supprime le dernier retour à la ligne | |
| ^ **date-mysql** | Formater comme une date MySQL | |
| ^ **date-rfc3164** | Formater comme une date RFC3164 | |
| ^ **date-rfc3339** | Formater comme une date RFC3339 | |
| ^ **escape-cc** | Redéfinir les caractères de contrôle/d'échappement | |
| ^ **space-cc** | Remplace les caractères de contrôle par des espaces | |
| ^ **drop-cc** | Supprimer les caractères de contrôle | |
| ^ **secpath-drop** | Suppresion des caractère / dans le champ (sécurise dynafiles) | |
| ^ **secpath-replace** | Remplace les caractère / dans le champ (sécurise dynafiles) | |
| |
| |
| |
| |
| |
* http://www.rsyslog.com/doc/v7-stable/configuration/properties.html | * http://www.rsyslog.com/doc/v7-stable/configuration/properties.html |
| * http://www.rsyslog.com/doc/v7-stable/configuration/property_replacer.html |
| * http://www.rsyslog.com/doc/v7-stable/configuration/nomatch.html |
| |