Skip to main content

Splunk

Enterprise Feature

Splunk 集成可在 ClearML 企业版计划中使用。

将ClearML与Splunk集成,使您能够集中和分析API日志,以改进监控。

创建一个Splunk索引

  1. 登录到您的Splunk网络应用程序

  2. 设置菜单中,点击索引

    Splunk 设置菜单

  3. 在索引页面,点击新建索引

  4. 在索引创建模态框中,输入索引名称()。如果不需要特殊设置,请保持其余字段的默认设置。

  5. 点击保存

设置Splunk HTTP事件收集器

  1. 设置菜单中,点击数据输入

    Splunk 设置菜单

  2. HTTP事件收集器行,点击+ 添加新

    Splunk

  3. 在下一页,输入您的收集器名称并点击下一步

  4. 在下一页,从列表中选择您新创建的索引,并将其添加到右侧的选定项目列表中

  5. 点击 Review

  6. 点击 提交

  7. 复制显示的收集器令牌()。它将在接下来的步骤中使用。

配置 ClearML

配置ClearML服务器以使用Docker ComposeKubernetes Helm将API日志发送到Splunk:

Docker Compose

  1. 将以下配置添加到您的apiserver.conf文件中。确保替换

    apilog: {
    adapter: ["logging"],
    adapters: {
    logging: {
    logger_prefix: "",
    formatter: {
    cls: "logstash_formatter.LogstashFormatterV1",
    -kwargs: {}
    },
    handler: {
    cls: "splunk_handler.SplunkHandler",
    -custom_kwargs: {},
    -kwargs: {
    host: "<SPLUNK_URL>",
    port: <SPLUNK_PORT>,
    token: "<SPLUNK_TOKEN>",
    index: "<SPLUNK_INDEX>",
    protocol: https,
    verify: false
    },
    }
    }
    }
    }
  2. 设置以下环境变量:

    CLEARML__apiserver__endpoints__debug__ping__log_call=false
    CLEARML__apiserver__endpoints___default__log_call=true
    CLEARML__apiserver__log_calls=true
  3. 使用docker-compose应用配置:

    docker-compose -f docker-compose.yml down
    docker-compose -f /opt/clearml/docker-compose.yml --env-file constants.env up -d

Kubernetes Helm

  1. 将以下values.override.yaml添加到您的ClearML安装规范中。确保将替换为前几步中的值。

    apiserver:
    logCalls: true # Sets CLEARML__APISERVER__LOG_CALLS to true
    extraEnvs:
    - name: CLEARML__apiserver__endpoints___default__log_call
    value: "true"
    - name: CLEARML__apiserver__endpoints__debug__ping__log_call
    value: "false"
    additionalConfigs:
    apiserver.conf: |
    apilog: {
    adapter: ["logging"],
    adapters: {
    logging: {
    logger_prefix: "",
    formatter: {
    cls: "logstash_formatter.LogstashFormatterV1",
    -kwargs: {}
    },
    handler: {
    cls: "splunk_handler.SplunkHandler",
    -custom_kwargs: {},
    -kwargs: {
    host: "splunk-splunk-standalone-service.splunk.svc.cluster.local",
    port: 8088,
    token: "<SPLUNK_TOKEN>",
    index: "<SPLUNK_INDEX>",
    protocol: https,
    verify: false
    },
    }
    }
    }
    }
  2. 升级Helm发布:

    helm repo update
    helm upgrade -i clearml allegroai-enterprise/clearml-enterprise -f values-override.yaml

从日志中排除API调用

要从Splunk日志中排除特定的API调用,请添加一个环境变量,格式如下:CLEARML__apiserver__endpoints______log_call 并将其设置为 false

例如,下面针对K8s Helm上的服务器的配置从Splunk日志中排除了POST /debug.ping调用:

apiserver:
extraEnvs:
- name: CLEARML__apiserver__endpoints__debug__ping__log_call
value: "false"