syslog_ng

syslog_ng

Linux Windows OS Supported

Présentation

Configurez Syslog-ng pour rassembler les logs de votre host, de vos conteneurs et de vos services.

Configuration

Collecte de logs

  1. Pour recueillir des logs système et des fichiers de log dans /etc/syslog-ng/syslog-ng.conf, assurez-vous que la source est correctement définie :

    source s_src {
    system();
    internal();
    
    };
    

    Si vous souhaitez surveiller des fichiers, ajoutez la source suivante :

    #########################
    # Sources
    #########################
    
    ...
    
    source s_files {
    file("path/to/your/file1.log",flags(no-parse),follow_freq(1),program_override("<program_name_file1>"));
    file("path/to/your/file2.log",flags(no-parse),follow_freq(1),program_override("<program_name_file2>"));
    
    };
    
  2. Définissez le bon format de log :

    #########################
    # Destination
    #########################
    
    ...
    
    # For Datadog platform:
    template DatadogFormat { template("YOURAPIKEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n"); };
    destination d_datadog { tcp("intake.logs.datadoghq.com" port(10514) template(DatadogFormat)); };
    
  3. Définissez la sortie dans la section Log Path :

    #########################
    # Log Path
    #########################
    
    ...
    
    log { source(s_src); source(s_files); destination(d_datadog); };
    
  4. (Facultatif) Chiffrement TLS :

    • Téléchargez le certificat d’autorité de certification :

      sudo apt-get install ca-certificates
      
    • Modifiez la destination comme suit :

      destination d_datadog { tcp("intake.logs.datadoghq.com" port(10516)     tls(peer-verify(required-trusted)) template(DatadogFormat)); };
      

    Pour en savoir plus sur les paramètres et les fonctionnalités de TLS pour Syslog-ng, consultez la documentation officielle (en anglais).

  5. (Facultatif) Définissez la source de vos logs. Pour ce faire, utilisez le format suivant (si vous avez plusieurs sources, changez le nom du format dans chaque fichier) :

    template DatadogFormat { template("<API_KEY> <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [metas@0 ddsource=\"test\"] $MSG\n"); };
    

    Vous pouvez également ajouter des tags personnalisés avec l’attribut ddtags :

    template DatadogFormat { template("<API_KEY> <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [metas@0 ddsource=\"test\" ddtags=\"env:test,user:test_user,<KEY:VALUE>\"] $MSG\n"); };
    
  6. Redémarrez Syslog-ng.

  1. Pour recueillir des logs système et des fichiers de log dans /etc/syslog-ng/syslog-ng.conf, assurez-vous que la source est correctement définie :

    source s_src {
    system();
    internal();
    
    };
    

    Si vous souhaitez surveiller des fichiers, ajoutez la source suivante :

    #########################
    # Sources
    #########################
    
    ...
    
    source s_files {
    file("path/to/your/file1.log",flags(no-parse),follow_freq(1),program_override("<program_name_file1>"));
     file("path/to/your/file2.log",flags(no-parse),follow_freq(1),program_override("<program_name_file2>"));
    
    };
    
  2. Définissez le bon format de log :

    #########################
    # Destination
    #########################
    
    ...
    
    # For Datadog platform
    template DatadogFormat { template("YOURAPIKEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n"); };
    destination d_datadog { tcp("tcp-intake.logs.datadoghq.eu" port(1883) template(DatadogFormat)); };
    
  3. Définissez la sortie dans la section Log Path :

    #########################
    # Log Path
    #########################
    
    ...
    
    log { source(s_src); source(s_files); destination(d_datadog); };
    
  4. (Facultatif) Chiffrement TLS :

    • Téléchargez le certificat d’autorité de certification :

      sudo apt-get install ca-certificates
      
    • Modifiez la destination comme suit :

      destination d_datadog { tcp("tcp-intake.logs.datadoghq.eu" port(443)     tls(peer-verify(required-trusted)) template(DatadogFormat)); };
      

    Pour en savoir plus sur les paramètres et les fonctionnalités de TLS pour Syslog-ng, consultez la documentation officielle (en anglais).

  5. Redémarrez Syslog-ng.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.