Contexte :

C'est un des champs qui est extrait lors de l'indexation (donc plus modifiable ensuite), il est donc important de bien le récupérer.
Par défaut, si on n'indique rien dans le stanza du monitor, le champ host est configuré avec le hostname de la machine ou l'UF est installé.
Cela peut gêner si l'on se trouve sur un concentrateur de logs.

Configuration

Plusieurs cas s'offre à nous.

On l'affecte en dur

C'est pas la plus simple à gérer si on a beaucoup de machine.

inputs.conf

1 [monitor:///var/log/apache.log]
2 disabled = 0
3 sourcetype = foo
4 index = bar
5 host = monapache01

On le récupère du chemin de fichier

inputs.conf

[monitor:///var/log/monserveur/access.log]
disabled = 0
sourcetype = foo
index = bar
host_segment = 3

Note :
A la place de "monserveur" on pourrait mettre "..." ou "*" pour gérer automatiquement l'ajout de machine.
La différence :

  • "..." plusieurs dossiers
  • "*" un seul dossier

On le récupère dans le nom du fichier

Exemple dans "/var/log/foo.log", on souhaite que le champ host récupère "foo".

inputs.conf

1 [monitor:///var/log/]
2 disabled = 0
3 sourcetype = foo
4 index = bar
5 host_regex = /var/log/(\w+)

On le récupère dans les logs

Dans cette configuration, c'est indexer qui force le champ host à partir du contenu des logs. Les logs Fortigate du lab sont disponibles ICI.
inputs.conf

1 [monitor:///PATH/logs/fortigate.log]
2 disabled = 0
3 sourcetype = alasta:forti
4 index = lab_hostinfile

props.conf

1 [alasta:forti]
2 TRANSFORMS-set_host = set-myforti-host
3 TRUNCATE=20000

On crée un stanza pour le sourcetype, on indique un transforms (TRANSFORMS- = ).

transforms.conf

1 [set-myforti-host]
2 DEST_KEY=MetaData:Host
3 REGEX=hostname="(\S*)"
4 FORMAT=host::$1

On crée un stanza avec le nom du transforms.
DEST_KEY : nom de la méta à modifier
REGEX : pattern qui matche le champ host
FORMAT : format du champ.

Annexe :

Doc Officielle
Doc Officielle - Override host