automation-suite
2023.10
false
UiPath logo, featuring letters U and I in white

Guide d'installation d'Automation Suite sur Linux

Dernière mise à jour 19 déc. 2024

How to forward application logs to Splunk

Remarque :
  • Cette section traite de l’exportation des journaux POD. Pour exporter les journaux du robot, consultez la section Orchestrator - À propos des journaux.

  • Splunk est un outil externe et UiPath® ne saurait vous conseiller sur la façon dont vous devez configurer votre paramètre Splunk. Pour en savoir plus sur le collecteur d’événements HTTP, consultez la documentation officielle de Splunk.

La pile Splunk-Fluentd est une solution de journalisation centralisée qui vous permet de rechercher, d'analyser et de visualiser les données de journal. Fluentd collecte et envoie les journaux à Splunk. Splunk récupère les journaux et vous permet de visualiser et d'analyser les données.

Pour configurer Splunk, procédez comme suit :

  1. Cliquez sur Paramètres (Settings) dans la barre de navigation supérieure, puis sélectionnez Index (Indexes).


  2. Cliquez sur Nouvel index (New Index) puis sur Créer un index (Create an Index).




  3. Cliquez sur Paramètres (Settings) dans la barre de navigation supérieure, puis sélectionnez Saisie de données (Data Inputs).


  4. Cliquez sur Collecteur d'événements HTTP (HTTP Event Collector).


  5. Pour activer la création d'un jeton, cliquez sur Paramètres globaux (Global Settings).


  6. Activez et enregistrez les Paramètres généraux (Global Settings).


  7. Pour créer le jeton, cliquez sur Nouveau jeton (New Token).


  8. Saisissez un nom pour le collecteur d'événements HTTP et cliquez sur Suivant (Next).


  9. Cliquez sur Nouveau (New) et entrez les détails du Type de source (Source Type).


  10. Faites défiler vers le bas et sélectionnez l'Index dans la liste des index disponibles, puis cliquez sur Suivant (Next) dans la barre de navigation supérieure.


  11. Vérifiez les données et cliquez sur Soumettre (Submit).


  12. Une fois créé, récupérez les détails de l'ID de jeton (Token ID), de l'Index, de la Source et du Type de source (Source Type). Vous avez besoin de ces valeurs pour configurer ClusterOutput.


Créer un secret avec un jeton

Créez un secret Kubernetes avec le jeton HTTP Event Collector (HEC) généré dans l'interface Splunk. Ce jeton est utilisé pour l'authentification entre Automation Suite et Splunk.

kubectl -n cattle-logging-system create secret generic splunk-hec-token --from-literal=splunk_hec_token=<splunk_hec_token>kubectl -n cattle-logging-system create secret generic splunk-hec-token --from-literal=splunk_hec_token=<splunk_hec_token>

ClusterOutput vers Splunk

Un ClusterOutput définit où vos journaux sont envoyés et décrit les détails de configuration et d'authentification.

Pour configurer la SortieCluster (ClusterOutput) pour Splunk, exécutez la commande suivante :

kubectl -n cattle-logging-system apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
  name: splunk-output
spec:
  splunkHec:
    buffer:
      tags: '[]'
      timekey: <splunk_hec_timekey>
      timekey_use_utc: true
      timekey_wait: 10s
      type: file
    hec_host: <splunk_hec_host>
    hec_port: <splunk_hec_port>
    hec_token:
      valueFrom:
        secretKeyRef:
          key: splunk_hec_token
          name: splunk-hec-token
    index: <splunk_hec_index>
    insecure_ssl: true
    protocol: <splunk_hec_protocol>
    source: <splunk_hec_source>
    sourcetype: <splunk_hec_source_type>
EOFkubectl -n cattle-logging-system apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
  name: splunk-output
spec:
  splunkHec:
    buffer:
      tags: '[]'
      timekey: <splunk_hec_timekey>
      timekey_use_utc: true
      timekey_wait: 10s
      type: file
    hec_host: <splunk_hec_host>
    hec_port: <splunk_hec_port>
    hec_token:
      valueFrom:
        secretKeyRef:
          key: splunk_hec_token
          name: splunk-hec-token
    index: <splunk_hec_index>
    insecure_ssl: true
    protocol: <splunk_hec_protocol>
    source: <splunk_hec_source>
    sourcetype: <splunk_hec_source_type>
EOF
Remarque : remplacez les attributs entre chevrons < > par les valeurs correspondantes utilisées dans votre configuration Splunk. Pour plus de détails, consultez la table suivante :

Attribut

Description

splunk_hec_host

L'hôte réseau de votre instance Splunk. Il s'agit généralement de l'adresse IP ou du nom de domaine complet (FQDN) de Splunk.

splunk_hec_port

Le port Splunk pour la communication client. Ce port diffère généralement du port sur lequel vous lancez le tableau de bord Splunk. Le port HEC conventionnel pour Splunk est 8088 .

secret_key

La clé secrète du jeton Splunk. Il s'agit du nom de la clé dans le secret que vous avez créé à l'étape précédente, qui contient le jeton HEC Splunk.

Le manifeste présenté contient déjà la clé : splunk_hec_token . Si vous n'avez pas modifié la commande pour créer une clé secrète, vous n'avez pas besoin de modifier cette valeur.
Valeur splunk_hec_timekey dans splunkHec.buffer
La fréquence de sortie ou la fréquence à laquelle vous souhaitez transférer les journaux. Nous vous recommandons d'utiliser un intervalle de 30 secondes ( 30s ).

protocol

Le protocole de l'URL. Les valeurs valides sont http et https . Vous devez utiliser le protocole HTTPS si la communication SSL est activée sur Splunk.

splunk_hec_index

L'identifiant de l'index Splunk. Utilisé pour indexer les événements.

splunk_hec_source

Le champ relatif à la source des événements.

splunk_hec_source_type

Le champ relatif au type de source des événements.

L'exemple suivant est basé sur la configuration présentée sur cette page.



ClusterFlow dans FluentD

Utilisez ClusterFlow pour définir :
  • les journaux que vous souhaitez collecter et filtrer ;
  • le ClusterOutput vers lequel envoyer les journaux.

Pour configurer FluxCluster (ClusterFlow) dans Fluentd, exécutez la commande suivante :

kubectl -n cattle-logging-system apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
  name: splunk-flow
  namespace: cattle-logging-system
spec:
  filters:
  - tag_normaliser:
      format: ${namespace_name}/${pod_name}.${container_name}
  globalOutputRefs:
  - splunk-output
  match:
  - select:
      container_names:
      - istio-proxy
      namespaces:
      - istio-system
  - exclude:
      container_names:
      - istio-proxy
      - istio-init
      - aicenter-hit-count-update
      - istio-configure-executor
      - on-prem-tenant-license-update
      - curl
      - recovery
      - aicenter-oob-scheduler
      - cert-trustor
  - exclude:
      namespaces:
      - fleet-system
      - cattle-gatekeeper-system
      - default
  - exclude:
      labels:
        app: csi-snapshotter
  - exclude:
      labels:
        app: csi-resizer
  - select: {}
EOFkubectl -n cattle-logging-system apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
  name: splunk-flow
  namespace: cattle-logging-system
spec:
  filters:
  - tag_normaliser:
      format: ${namespace_name}/${pod_name}.${container_name}
  globalOutputRefs:
  - splunk-output
  match:
  - select:
      container_names:
      - istio-proxy
      namespaces:
      - istio-system
  - exclude:
      container_names:
      - istio-proxy
      - istio-init
      - aicenter-hit-count-update
      - istio-configure-executor
      - on-prem-tenant-license-update
      - curl
      - recovery
      - aicenter-oob-scheduler
      - cert-trustor
  - exclude:
      namespaces:
      - fleet-system
      - cattle-gatekeeper-system
      - default
  - exclude:
      labels:
        app: csi-snapshotter
  - exclude:
      labels:
        app: csi-resizer
  - select: {}
EOF

Rechercher dans Splunk

  1. Cliquez sur Recherche et Rapport (Search & Reporting).



  2. Recherche basée sur la Source, l'Index et le Type de source (Source Type).





Résolution des problèmes

Si, pour une raison quelconque, les journaux d'application ne sont pas transmis à Splunk, procédez comme suit :

  1. Modifiez le niveau du journal Fluentd pour déboguer.
  2. Interrogez le pod Fluentd :
    kubectl patch loggings.logging.banzaicloud.io rancher-logging-root --type=json -p '[{"op":"add","path":"/spec/fluentd/logLevel","value":debug}]'
    kubectl -n cattle-logging-system exec -it sts/rancher-logging-root-fluentd cat /fluentd/log/outkubectl patch loggings.logging.banzaicloud.io rancher-logging-root --type=json -p '[{"op":"add","path":"/spec/fluentd/logLevel","value":debug}]'
    kubectl -n cattle-logging-system exec -it sts/rancher-logging-root-fluentd cat /fluentd/log/out
    Remarque : les journaux Fluentd doivent indiquer la raison pour laquelle les données ne sont pas transmises à Splunk.
  3. Après avoir résolu le problème, restaurez le niveau de journal Fluentd :
    kubectl patch loggings.logging.banzaicloud.io rancher-logging-root --type=json -p '[{"op":"remove","path":"/spec/fluentd/logLevel"}]'kubectl patch loggings.logging.banzaicloud.io rancher-logging-root --type=json -p '[{"op":"remove","path":"/spec/fluentd/logLevel"}]'

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.