Automation Suite
2023.10
False
横幅背景图像
Linux 版 Automation Suite 安装指南
上次更新日期 2024年4月19日

将应用程序日志转发到 Splunk

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

  • Splunk is an external tool, and UiPath® does not have an opinion on how you should configure your Splunk setting. For more details about HTTP Event Collector, see Splunk official documentation.

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

要配置 Splunk,请执行以下步骤:

  1. 单击顶部导航栏中的“设置”,然后选择“索引”。


  2. 单击“新建索引”,然后单击“创建索引”。




  3. 单击顶部导航栏中的“设置”,然后选择“数据输入”


  4. 单击“HTTP 事件收集器”。


  5. 要启用新令牌创建,请单击“全局设置”


  6. 启用并保存“全局设置”。


  7. 要创建令牌,请单击“新建令牌”


  8. 输入 HTTP 事件收集器的名称,然后单击“下一步”


  9. 单击“新建”并输入“来源类型”详细信息。


  10. 向下滚动并从可用索引列表中选择“索引”,然后单击顶部导航栏中的“下一步”。


  11. 验证数据,然后单击“提交”。


  12. 创建后,获取令牌 ID索引来源来源类型的详细信息。您需要这些值来设置“集群输出”。


使用令牌创建密码

使用 Splunk 用户界面中生成的 HTTP 事件收集器 (HEC) 令牌创建 Kubernetes 密码。此令牌用于 Automation Suite 和 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>

集群输出到 Splunk

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

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

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
注意:将尖括号 < > 之间的属性替换为 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

事件的来源类型字段。

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



FluentD 中的集群流程

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

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

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

在 Splunk 中搜索

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



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





故障排除

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

  1. 将 Fluentd 日志级别更改为“调试”。
  2. 查询 Fluentd Pod:
    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
    注意: Fluentd 日志应指明数据未推送到 Splunk 的原因。
  3. 修复问题后,恢复 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"}]'

此页面是否有帮助?

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