Automation Suite
2022.10
False
Imagen de fondo del banner
Guía de instalación de Automation Suite
Última actualización 24 de abr. de 2024

Forwarding application logs to Splunk

Nota:
  • Esta sección abarca la exportación de registros POD. Para exportar registros de robots, consulta Ochestrator: acerca de los registros.

  • Splunk es una herramienta externa y UiPath® no tiene opinión formada sobre cómo debes configurar tus ajustes de Splok. Para obtener más detalles sobre el recopilador de eventos HTTP, consulta la documentación oficial de Splok.

La pila Splunk-Fluentd es una solución de registro centralizada que le permite buscar, analizar y visualizar datos de registro. Fluentd recopila y envía los registros a Splunk. Splunk recupera los registros y le permite visualizar y analizar los datos.

Para configurar Splunk, siga estos pasos:

  1. Haga clic en Configuración en la barra de navegación superior y, seguidamente, seleccione Índices.


  2. Haga clic en Nuevo índice y luego en Crear un índice.




  3. Haga clic en Configuración en la barra de navegación superior y, seguidamente, seleccione Entradas de datos.


  4. Haga clic en Recopilador de eventos HTTP.


  5. Para habilitar la creación de un nuevo token, haz clic en Configuración global .


  6. Habilite y guarde la Configuración global.


  7. Para crear el token, haz clic en Nuevo token.


  8. Introduzca un nombre para el Recopilador de eventos HTTP y haga clic en Siguiente.


  9. Haga clic en Nuevo e introduzca los detalles del Tipo de origen.


  10. Desplácese hacia abajo, seleccione Índice de la lista de índices disponible y haga clic en Siguiente en la barra de navegación superior.


  11. Verifique los datos y haga clic en Enviar.


  12. Una vez creado, obtenga los detalles de ID de token (Token ID),Índice (Index),Origen (Source),Tipo Origen (Source Type). Necesita estos valores para configurar ClusterOutput.


Crear un secreto con un token

Crea un secreto de Kubernetes con el token del recopilador de eventos HTTP (HEC) generado en la IU de Splunk. Este token se utiliza para la autenticación entre Automation Suite y 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 en Splunk

Un ClusterOutput define a dónde se envían tus registros y describe los detalles de configuración y autenticación.

Para configurar ClusterOutput para Splunk, ejecuta el siguiente comando:

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
Nota: reemplaza los atributos entre corchetes angulares < > con los valores correspondientes usados en tu configuración de Splunk. Para obtener más información, consulta la siguiente tabla:

Atributo

Descripción

splunk_hec_host

El host de red de su instancia de Splunk. Suele ser la dirección IP o FQDN de Splunk.

splunk_hec_port

El puerto Splunk para la comunicación con el cliente. Este puerto generalmente difiere del puerto en el que inicia el panel de Splunk. El puerto HEC tradicional para Splunk es 8088.

secret_key

La clave secreta del token de Splunk. Este es el nombre de la clave del secreto que creaste en el paso anterior, que contiene el token de Splunk HEC.

El manifiesto presentado ya contiene la clave: splunk_hec_token. Si no ha modificado el comando para crear un secreto, no es necesario cambiar este valor.
splunk_hec_timekey valor en splunkHec.buffer
La frecuencia de salida o la frecuencia con la que desea insertar los registros. Recomendamos usar un intervalo de 30 segundos (30s).

protocol

El protocolo URL. Los valores válidos son http y https. Debe usar el protocolo HTTPS si tiene la comunicación SSL habilitada en Splunk.

splunk_hec_index

El identificador del índice de Splunk. Se utiliza para indexar eventos.

splunk_hec_source

El campo Origen para eventos.

splunk_hec_source_type

El campo Tipo de origen para eventos.

El siguiente ejemplo se basa en la configuración presentada en esta página.



ClusterFlow en FluentD

Utilice ClusterFlow para definir:
  • los registros que quieres recopilar y filtrar;
  • el ClusterOutput al que enviar los registros.

Para configurar ClusterFlow en Fluentd, ejecuta el siguiente comando:

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:
        longhorn.io/job-task: backup
  - 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:
        longhorn.io/job-task: backup
  - exclude:
      labels:
        app: csi-resizer
  - select: {}
EOF

Buscar en Splunk

  1. Haga clic en Buscar y notificar.



  2. Busque según Origen, Índice y Tipo de origen.





Solución de problemas

Si, por alguna razón, los registros de la aplicación no se envían a Splunk, realiza los siguientes pasos:

  1. Cambia el nivel de registro de Fluentd para depurar.
  2. Consultar el pod de 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
    Nota: Los registros de Fluentd deben indicar la causa por la que los datos no se insertan en Splunk.
  3. Después de solucionar el problema, restaura el nivel de registro de 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"}]'

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.