Configurazione dell'agente per impostare valori personalizzati per i campi di metadati applicationName e subsystemName

È possibile configurare il servizio Agent di registrazione per inviare i log al servizio IBM Cloud Logs.

I registri inviati devono includere un valore per i campi dei metadati applicationName e subsystemName.

Per impostazione predefinita, quando si configura l'agente Agent di registrazione, l'agente imposta i valori predefiniti per questi campi. È possibile configurare i propri valori personalizzati per sostituire quelli predefiniti. Per ulteriori informazioni sui valori predefiniti, vedere Campi metadati.

In IBM Cloud Logs, si possono usare i campi di metadati applicationName e subsystemName per configurare una delle seguenti caratteristiche:

  • Politiche TCO
  • Regole di parsing
  • Rapporti sull'utilizzo dei dati
  • Avvisi
  • Viste
  • Dashboard
  • Eventi a metriche
  • Loggregazione

Per informazioni su IBM Cloud Logs, vedere IBM Cloud Logs documentazione.

Configurazione dell'agente per impostare valori personalizzati

È possibile configurare il Agent di registrazione con valori personalizzati per i campi dei metadati applicationName e subsystemName specificando le opzioni API.

  • Utilizzare -a per specificare il applicationName che si desidera utilizzare.

    Per impostazione predefinita, il nome applicationName corrisponde al nome dello spazio dei nomi kubernetes.namespace_name nel cluster Red Hat OpenShift on IBM Cloud o IBM Cloud Kubernetes Service.

    È anche possibile utilizzare le variabili dell'ambiente per impostare valori personalizzati, ad esempio '${POD_NAMESPACE}'.

  • Utilizzare -s per specificare il susbsystemName che si desidera utilizzare.

    Per impostazione predefinita, l'opzione subsystemName corrisponde al nome del contenitore kubernetes.container_name nei cluster Red Hat OpenShift on IBM Cloud o IBM Cloud Kubernetes Service.

    È anche possibile utilizzare variabili dell'ambiente, ad esempio '${POD_NAME}'.

Per l'impostazione di questi campi di metadati sono disponibili le seguenti opzioni:

  • È possibile impostare il valore su una stringa fissa. Ad esempio, è possibile utilizzare -s 'production'.
  • È possibile utilizzare le variabili dell'ambiente, ad esempio -a '${POD_NAMESPACE}'.
  • È possibile combinare una stringa fissa con variabili dell'ambiente, ad esempio -a 'mycluster:${POD_NAME}'.

È possibile impostare applicatioName, subsystemName o entrambi. Se un valore non è impostato, viene applicato il valore predefinito. Per informazioni sui valori predefiniti impostati per i campi dei metadati applicationName e subsystemName, vedere Metadati.

Esempio: Configurazione di valori dinamici

Per configurare l'agente Agent di registrazione con valori dinamici personalizzati per i campi dei metadati applicationName e subsystemName, è possibile distribuirlo come segue in un cluster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s '${POD_NAME}' -a '${POD_NAMESPACE}'

Esempio: Configurazione di un valore che combina un valore fisso e un valore dinamico

Per configurare l'agente Agent di registrazione con valori personalizzati per i campi dei metadati applicationName e subsystemName, è possibile distribuirlo come segue in un cluster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s '${POD_NAME}' -a 'mycluster-dallas:${POD_NAMESPACE}'

In questo esempio, il nome del cluster viene aggiunto come stringa.

Esempio: Configurazione di valori fissi

Per configurare l'agente Agent di registrazione con valori fissi personalizzati per i campi dei metadati applicationName e subsystemName, è possibile distribuirlo come segue in un cluster Kubernetes:

curl -sSL https://ibm.biz/logs-router-setup | bash -s --   -v 1.1.1   -m IAMAPIKey    -k xxxx   -t Kubernetes   -r eu-es   -p 3443 -s 'mysubsystem' -a 'myapp'

Configurazione dell'agente per impostare valori personalizzati in base alla riga di registro

È possibile aggiungere dinamicamente i valori per il nome dell'applicazione e del sottosistema in base alla riga del registro.

L'esempio seguente mostra come configurare un agente per un cluster Kubernetes che aggiunge un nome di applicazione personalizzato per un messaggio in formato JSON:

  1. Aggiungere applicationName alla riga del log.

    Ad esempio, la riga di log ha il seguente aspetto: {"level":"info", "msg":"Test message", "applicationName":"my-application"}

  2. Aggiungere il plugin JSON PARSER al file logger-agent-iks.yaml per convertire un JSON di stingify in un oggetto JSON. Per ulteriori informazioni, vedere JSON.

    [PARSER]
        # Converts the original log source from a JSON map string to the internal binary representation.
        Name   json
        Format json
        # Time_Key: Set the time in your log entry to the log record time included with the log. If not set, Fluenti Bit uses its own time.
        Time_Key time
        Time_Format %d/%b/%Y:%H:%M:%S %z
        # Time_Keep: To keep all fields in the original log record
        Time_Keep On
    
  3. Aggiungere il plugin PARSER al file logger-agent-iks.yaml per estrarre i campi dai log. Per ulteriori informazioni, vedere Parser.

    Per impostazione predefinita, il plugin parser mantiene solo i campi analizzati nel suo output.

    [FILTER]
       # Name: Specify the name of the parser
       Name parser
       # Match: A pattern that is used to match against the tags that are defined on incoming records.
       Match *
       # Key_Name: Specify the field name in the log to be parsed.
       Key_Name message
       # Parser: Specify the parser name to interpret the field.
       Parser json
       # Reserve_Data: Set to keep all the fields
       Reserve_Data On
       # preserve_key: Set to keep the original key field.
       Preserve_Key On
    
  4. Estrarre il nome dell'applicazione utilizzando il plugin del filtro Nest

    Il plugin Nest Filter consente di operare su o con dati annidati. Le sue modalità di funzionamento sono: nest in cui prende un insieme di record e li mette in una mappa, e lift in cui prende una mappa per chiave e solleva i suoi record. Per ulteriori informazioni, vedere Nest.

    applicationName deve essere al livello superiore, quindi si deve usare l'operazione lift.

    [FILTRO] Nome nido Corrispondenza * Operazione di sollevamento Messaggio annidato Jolly applicationName

Con questo sistema, il "applicationName" per l'esempio della riga di registro di cui sopra sarà "my-application" per quella particolare riga.