Automation Suite
2023.10
falso
Imagem de fundo do banner
Guia de instalação do Automation Suite no Linux
Última atualização 28 de fev de 2024

Forwarding application logs to Splunk

Observação:
  • Esta seção abrange a exportação de logs de POD. Para exportar logs de robôs, consulte Orchestrator – Sobre Logs.

  • O Splunk é uma ferramenta externa, e a UiPath não tem uma opinião sobre como você deve definir sua configuração do Splunk. Para obter mais detalhes sobre o Coletor de evento HTTP, consulte a documentação oficial do Splunk.

A pilha Splunk-Fluentd é uma solução de registro centralizada que permite pesquisar, analisar e visualizar dados de registro. O Fluentd coleta e envia os logs para o Splunk. O Splunk recupera os logs e permite visualizar e analisar os dados.

Para configurar o Splunk, siga as seguintes etapas:

  1. Clique em Configurações na barra de navegação superior e, em seguida, selecione Índices.


  2. Clique em Novo índice e em Criar um índice.




  3. Clique em Configurações na barra de navegação superior e, em seguida, selecione Entrada de dados.


  4. Clique em Coletor de evento HTTP


  5. Para ativar a criação do novo token, clique em Configurações globais .


  6. Habilite e salve as Configurações Globais.


  7. Para criar o token, clique em Novo token.


  8. Insira um nome para o Coletor de evento HTTP e clique em Avançar.


  9. Clique em Novo e insira os detalhes de Tipo de origem.


  10. Role para baixo e selecione Índice na lista de índices disponíveis e clique em Avançar na barra de navegação superior.


  11. Verifique os dados e clique em Submeter.


  12. Uma vez criado, busque os detalhes de Token ID,Index,Source,Source Type. Você precisa desses valores para configurar ClusterOutput.


Criação de um segredo com um token

Crie um segredo do Kubernetes com o token do HTTP Event Collector (HEC) gerado na interface do Splunk. Esse token é usado para a autenticação entre o Automation Suite e o 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 para Splunk

Um ClusterOutput define para onde seus logs são enviados e descreve as configurações e detalhes de autenticação.

Para configurar o ClusterOutput para o Splunk, execute o seguinte 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: Substitua os atributos entre colchetes angulares < > pelos valores correspondentes usados na configuração do Splunk. Para detalhes, consulte a seguinte tabela:

Atributo

Description

splunk_hec_host

O host de rede da sua instância do Splunk. Geralmente é o endereço IP ou FQDN do Splunk.

splunk_hec_port

A porta Splunk para comunicação com o cliente. Essa porta geralmente difere da porta na qual você inicia o painel do Splunk. A porta HEC convencional para Splunk é 8088.

secret_key

A chave secreta do token Splunk. Este é o nome da chave no segredo que você criou na etapa anterior, que contém o token Splunk HEC.

O manifesto apresentado já contém a chave: splunk_hec_token. Se você não alterou o comando para criar um segredo, não precisa alterar esse valor.
splunk_hec_timekey valor em splunkHec.buffer
A frequência de saída ou com que frequência você deseja enviar logs. Recomendamos usar um intervalo de 30 segundos (30s).

protocol

O protocolo URL. Os valores válidos são http e https. Você deve usar o protocolo HTTPS se tiver a comunicação SSL habilitada no Splunk.

splunk_hec_index

O identificador para o índice Splunk. Usado para indexar eventos.

splunk_hec_source

O campo de origem para eventos.

splunk_hec_source_type

O tipo de origem para eventos.

O seguinte exemplo é baseado na configuração apresentada nesta página.



ClusterFlow em FluentD

Use o ClusterFlow para definir:
  • os logs que você deseja coletar e filtrar;
  • o ClusterOutput para o qual enviar os logs.

Para configurar o ClusterFlow no Fluentd, execute o seguinte 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

Como pesquisar no Splunk

  1. Clique em Pesquisar e Relatar.



  2. Busque com base em Origem, Índice e Tipo de Origem.





Solução de problemas

Se, por algum motivo, os logs do aplicativo não forem enviados para o Splunk, siga as seguintes etapas:

  1. Altere o nível de log do Fluentd para depuração.
  2. Consulte o 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
    Observação: os logs do Fluentd devem indicar a causa dos dados não serem enviados para o Splunk.
  3. Após corrigir o problema, restaure o nível de log do 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?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.