1

我有很多来自我正在管理的 Azure Databricks 群集的审核日志。日志是简单的应用程序审计日志,格式为JSON. 您有关于作业、集群、笔记本等的信息,您可以在此处查看一条记录的示例:

{
    "TenantId": "<your tenant id",
    "SourceSystem": "|Databricks|",
    "TimeGenerated": "2019-05-01T00:18:58Z",
    "ResourceId": "/SUBSCRIPTIONS/SUBSCRIPTION_ID/RESOURCEGROUPS/RESOURCE_GROUP/PROVIDERS/MICROSOFT.DATABRICKS/WORKSPACES/PAID-VNET-ADB-PORTAL",
    "OperationName": "Microsoft.Databricks/jobs/create",
    "OperationVersion": "1.0.0",
    "Category": "jobs",
    "Identity": {
        "email": "mail@contoso.com",
        "subjectName": null
    },
    "SourceIPAddress": "131.0.0.0",
    "LogId": "201b6d83-396a-4f3c-9dee-65c971ddeb2b",
    "ServiceName": "jobs",
    "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36",
    "SessionId": "webapp-cons-webapp-01exaj6u94682b1an89u7g166c",
    "ActionName": "create",
    "RequestId": "ServiceMain-206b2474f0620002",
    "Response": {
        "statusCode": 200,
        "result": "{\"job_id\":1}"
    },
    "RequestParams": {
        "name": "Untitled",
        "new_cluster": "{\"node_type_id\":\"Standard_DS3_v2\",\"spark_version\":\"5.2.x-scala2.11\",\"num_workers\":8,\"spark_conf\":{\"spark.databricks.delta.preview.enabled\":\"true\"},\"cluster_creator\":\"JOB_LAUNCHER\",\"spark_env_vars\":{\"PYSPARK_PYTHON\":\"/databricks/python3/bin/python3\"},\"enable_elastic_disk\":true}"
    },
    "Type": "DatabricksJobs"
}

目前,我将日志存储到 Elasticsearch 中,并计划在此类日志上使用他们的异常检测工具。因此,我不需要实现任何算法,而是选择正确的属性,或者执行正确的聚合,或者使用多变量分析组合更多属性。但是,我不熟悉此类主题,也没有此背景。我已阅读异常检测:Chandola 等人的调查。,这对于将我指向正确的子字段非常有用。因此,我明白我正在处理时间序列,并且根据我将执行的聚合类型,我可能会面临序列数据的集体异常(例如:ActionName这些日志的字段)或序列数据的上下文异常。

我想知道您是否可以为我指明正确的方向,因为我还没有设法在审计日志上找到任何与异常检测相关的工作。更具体地说,我应该调查什么样的异常?哪种聚合将是有益的?

请记住,我有大量数据。此外,我将不胜感激任何形式的反馈,即使它不涉及 Elasticsearch;因此,请随意为这种异常检测场景提出一个完整的无监督机器学习方法,而不是 Elasticsearch 的简单用例。

4

0 回答 0