Automation Suite
2023.10
False
横幅背景图像
EKS/AKS 上的 Automation Suite 安装指南
上次更新日期 2024年5月20日

将应用程序日志转发到 Splunk

备注:
  • 本节介绍导出 POD 日志。有关导出机器人日志的信息,请参阅 Ochestrator - 关于日志

  • Splunk 是外部工具,UiPath™ 不会对应如何配置 Splunk 设置提供建议。有关 HTTP 事件收集器的更多信息,请参阅 Splunk 官方文档

Splunk-Fluentd 堆栈是一个集中式日志记录解决方案,可用于搜索、分析和可视化日志数据。Fluentd 收集日志并将其发送到 Splunk。Splunk 会检索日志,并让您可视化和分析数据。

使用令牌创建密码

使用 Splunk 用户界面中生成的 HTTP 事件收集器 (HEC) 令牌创建 Kubernetes 密码。此令牌用于 Automation Suite 和 Splunk 之间的身份验证。

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

集群输出到 Splunk

ClusterOutput 定义日志的接收方,并描述配置和身份验证详细信息。

要为 Splunk 配置集群输出,请运行以下命令:

kubectl -n logging 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 logging 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
注意:将尖括号 < > 之间的属性替换为 Splunk 配置中使用的相应值。有关详细信息,请参见下表:

属性

描述

splunk_hec_host

Splunk 实例的网络主机。 这通常是 Splunk 的 IP 地址或 FQDN。

splunk_hec_port

用于客户端通信的 Splunk 端口。 此端口通常与启动 Splunk 仪表板的端口不同。 Splunk 的传统 HEC 端口为8088

secret_key

Splunk 令牌的密钥。 这是您在上一步中创建的密码中密钥的名称,其中包含 Splunk HEC 令牌。

显示的清单已包含键: splunk_hec_token 。 如果您尚未更改用于创建密码的命令,则无需更改此值。
splunk_hec_timekey 中的值 splunkHec.buffer
输出频率,或您希望推送日志的频率。 我们建议使用 30 秒 ( 30s ) 间隔。

protocol

URL 协议。 有效值为httphttps 。 如果在 Splunk 上启用了 SSL 通信,则必须使用 HTTPS 协议。

splunk_hec_index

Splunk 索引的标识符。 用于为事件编制索引。

splunk_hec_source

事件的来源字段。

splunk_hec_source_type

事件的来源类型字段。

注意:要按环境类型(开发、测试等)筛选 Splunk 中的日志,请使用 source 属性。

以下示例基于此页面上显示的配置。

docs image

FluentD 中的集群流程

使用ClusterFlow定义:
  • 要收集和筛选的日志;
  • 用于接收日志的 ClusterOutput

要在 Fluentd 中配置“集群流程”,请运行以下命令:

kubectl -n logging apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
  name: splunk-flow
  namespace: logging
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:
      - default
  - exclude:
      labels:
        app: csi-snapshotter
  - exclude:
      labels:
        app: csi-resizer
  - select: {}
EOFkubectl -n logging apply -f - <<"EOF"
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
  name: splunk-flow
  namespace: logging
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:
      - default
  - exclude:
      labels:
        app: csi-snapshotter
  - exclude:
      labels:
        app: csi-resizer
  - select: {}
EOF

在 Splunk 中搜索

  1. 单击“搜索和报告”。



  2. 按照来源索引来源类型进行搜索。





故障排除

如果由于某种原因未将应用程序日志推送到 Splunk,请执行以下步骤:

  1. 将 Fluentd 日志级别更改为“调试”。
  2. 查询 Fluentd Pod:
    kubectl patch logging -n logging  logging-operator-logging  --type=json -p '[{"op":"add","path":"/spec/fluentd/logLevel","value":debug}]'
    kubectl -n logging exec -it sts/logging-operator-logging-fluentd cat /fluentd/log/outkubectl patch logging -n logging  logging-operator-logging  --type=json -p '[{"op":"add","path":"/spec/fluentd/logLevel","value":debug}]'
    kubectl -n logging exec -it sts/logging-operator-logging-fluentd cat /fluentd/log/out
    注意: Fluentd 日志应指明数据未推送到 Splunk 的原因。
  3. 修复问题后,恢复 Fluentd 日志 级别:
    kubectl patch logging -n logging  logging-operator-logging  --type=json -p '[{"op":"remove","path":"/spec/fluentd/logLevel","value":debug}]'kubectl patch logging -n logging  logging-operator-logging  --type=json -p '[{"op":"remove","path":"/spec/fluentd/logLevel","value":debug}]'

此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.