Microsoft SQL Server 集成

编辑

Microsoft SQL Server 集成

编辑

版本

2.9.4 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

Microsoft SQL Server 集成包允许您通过 Elasticsearch 搜索、观察和可视化 SQL Server 审计日志,以及性能和事务日志指标。

数据流

编辑

Microsoft SQL Server 集成收集两种类型的数据流:日志和指标。

日志数据流提供 Microsoft SQL Server 中发生的事件记录

  • audit:来自配置的 Windows 事件日志通道的事件,提供详细的审计信息。请参阅SQL Server 审计
  • logs:Microsoft SQL Server 创建的错误日志,用于故障排除和系统事件。

不支持其他日志源,例如文件。

日志中查找更多详细信息。

指标数据流提供对 SQL Server 性能和运行状况的深入了解

  • performance:服务器上提供的综合性能计数器和对象。
  • transaction_log:事务日志的使用统计信息和空间利用率指标。

指标中查找更多详细信息。

要求

编辑

您需要 Elasticsearch 来存储和搜索您的数据,并需要 Kibana 来可视化和管理数据。您可以使用我们托管在 Elastic Cloud 上的 Elasticsearch 服务(推荐),也可以在您的硬件上自行管理 Elastic Stack。

Microsoft SQL Server 权限
编辑

在开始向 Elastic 发送数据之前,请确保您拥有必要的 Microsoft SQL Server 权限。

如果您在 Microsoft Developer Network (MSDN) 中浏览以下表,您会找到一个“权限”部分,其中定义了每个表所需的权限(例如,sys.dm_db_log_space_usage页面上的“权限”部分)。

  1. transaction_log:

  2. performance:

请确保用户具有对系统和用户定义数据库的权限。对于集成中使用的特定用户,满足以下要求

用户设置选项

  • 授予 MSDN 页面中提到的特定权限。
  • 或者,使用 sysadmin 角色(包括所有必需的权限):可以通过 SQL Server Management Studio (SSMS) 在 服务器角色中配置。阅读SQL Server 文档中关于加入角色的更多信息。

用户映射(使用 SQL Server Management Studio (SSMS))

  • 打开 SSMS 并连接到您的服务器。
  • 导航到“对象资源管理器”>“安全性”>“登录名”。
  • 右键单击用户并选择“属性”。
  • 在“用户映射”选项卡中,选择相应的数据库并授予所需的权限。

设置

编辑

有关如何设置任何集成的逐步说明,请参阅入门指南。

您将在下面找到有关设置 Microsoft SQL Server 集成的更多具体详细信息。

命名实例
编辑

Microsoft SQL Server 具有一项功能,允许在同一主机(或集群主机)上使用单独的设置运行多个数据库。通过使用实例名称和主机名(例如 host/instance_namehost:named_instance_port)来建立命名实例连接,以收集指标。主机配置的详细信息如下所示。

在 Kibana 中按实例名称或服务器名称查询
编辑

可以通过基于实例名称和服务器名称进行筛选,在 Kibana 中可视化数据。实例名称可以通过 mssql.metrics.instance_name 进行筛选,服务器名称可以通过 mssql.metrics.server_name 字段进行筛选。

主机配置
编辑

作为输入配置的一部分,您需要提供用户名、密码和主机详细信息。主机配置支持使用以下语法的命名实例或默认(无名称)实例。

此集成支持从单个主机收集指标。对于多主机指标,每个主机都可以作为新的集成运行。

连接到默认实例(主机):

  • host(例如,localhost(连接到默认实例时不需要实例名称))
  • host:port(例如,localhost:1433

连接到命名实例(主机):

  • host/instance_name(例如,localhost/namedinstance_01
  • host:named_instance_port(例如,localhost:60873
配置
编辑
审计
编辑

SQL Server 的审计级别有多个,具体取决于您的安装的政府或标准要求。SQL Server 审计功能使您可以审核服务器级别和数据库级别的事件组以及单个事件。

有关不同审计级别的更多信息,请参阅SQL Server 审计操作组和操作。然后,要启用 SQL Server 的审计,请参阅这些说明

为了使集成包能够读取和发送审计事件,必须将事件目标配置为 Windows 事件日志。

审计事件
编辑

从指定的 Windows 事件日志通道收集 SQL Server 审计事件。

日志
编辑

SQL Server log 包含用户定义的事件和一些可以用于故障排除的系统事件。

SQL Server Management Studio 中查看 SQL Server 错误日志中了解更多信息。

性能指标
编辑

收集 performance 计数器指标。动态计数器功能通过提供计数器作为输入来提供收集指标的灵活性。此输入可以是正则表达式,它将基于模式筛选结果。例如,如果将 %grant% 作为输入,它将启用对所有名称类似挂起的内存授予活动内存授予计数等计数器的指标收集。MSSQL 支持有限的正则表达式集。有关更多详细信息,请参阅搜索条件中的模式匹配

动态计数器将经历一些基本的摄取管道后处理,以使计数器名称小写并删除特殊字符,这些字段将没有任何静态字段映射。

在 8.4 beats 中引入了功能 merge_results,它通过将指标合并到单个事件中来创建一个事件。有关更多详细信息,请参阅SQL 模块

有关每个性能计数器指标的说明中了解更多信息。

事务日志指标
编辑

默认情况下,收集 SQL Server 实例的系统级数据库 transaction_log 指标。可以通过指定用户数据库列表或启用 从所有数据库提取切换来收集用户级数据库的指标,以收集服务器上所有数据库的指标。

说明以及事务日志支持的操作中了解更多信息。

从所有数据库提取
编辑

为了简化从服务器上的所有数据库提取指标的过程,您可以在配置集成时启用 从所有数据库提取切换。此字段会覆盖 数据库输入中手动输入的数据库名称,而是从所有数据库(包括系统和用户定义的数据库)中提取所需的 transaction_log 指标。

请记住,此功能默认禁用,需要手动启用才能激活。

密码 URL 编码
编辑

当密码包含特殊字符时,请使用 URL 编码传递这些特殊字符。

日志

编辑
审计
编辑

SQL Server 审计数据集提供来自配置的 Windows 事件日志通道的事件。所有特定于 SQL Server 审计的字段都可以在 sqlserver.audit 字段组中找到。

ECS 字段参考

请参阅以下文档,以获取有关 ECS 字段的详细信息。

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

cloud.image.id

云实例的映像 ID。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

host.containerized

主机是否为容器。

boolean

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统的代号(如果有)。

keyword

sqlserver.audit.action_id

操作的 ID

keyword

sqlserver.audit.additional_information

有关该事件的任何其他信息,以 XML 格式存储。

text

sqlserver.audit.affected_rows

操作影响的行数。

long

sqlserver.audit.application_name

导致审计事件的应用程序的名称。

keyword

sqlserver.audit.audit_schema_version

审计事件架构版本。

keyword

sqlserver.audit.class_type

发生审计的可审计实体的类型。

keyword

sqlserver.audit.client_ip

“运行导致审计事件的应用程序的计算机的名称或 IP 地址。”

keyword

sqlserver.audit.connection_id

连接 ID(连接的唯一 UUID)

keyword

sqlserver.audit.data_sensitivity_information

有关操作的敏感信息。

keyword

sqlserver.audit.database_name

发生操作的数据库上下文。

keyword

sqlserver.audit.database_principal_id

执行操作的数据库用户上下文的 ID。

keyword

sqlserver.audit.database_principal_name

当前用户。

keyword

sqlserver.audit.duration_milliseconds

操作的持续时间(以毫秒为单位)。

long

sqlserver.audit.event_time

触发可审计操作的日期/时间。

date

sqlserver.audit.host_name

SQL Server 主机名。

keyword

sqlserver.audit.is_column_permission

表示列级别权限的标志

boolean

sqlserver.audit.object_id

“发生审核的实体的主要 ID。此 ID 可以是服务器对象、数据库、数据库对象或架构对象之一。”

keyword

sqlserver.audit.object_name

“发生审核的实体的名称。这可以是服务器对象、数据库、数据库对象、架构对象或 TSQL 语句(如果有)。”

keyword

sqlserver.audit.permission_bitmask

在适用情况下,显示已授予、拒绝或撤销的权限。

keyword

sqlserver.audit.response_rows

返回的行数。

long

sqlserver.audit.schema_name

发生操作的架构上下文。

keyword

sqlserver.audit.sequence_group_id

序列组 ID(唯一 UUID)。

keyword

sqlserver.audit.sequence_number

跟踪单个审核记录中记录的顺序,该记录太大而无法放入审核的写入缓冲区中。

integer

sqlserver.audit.server_instance_name

“发生审核的服务器实例的名称。使用标准的 machine\instance 格式。”

keyword

sqlserver.audit.server_principal_id

执行操作所使用的登录上下文的 ID。

keyword

sqlserver.audit.server_principal_name

当前登录名。

keyword

sqlserver.audit.server_principal_sid

当前登录 SID。

keyword

sqlserver.audit.session_id

发生事件的会话的 ID。

integer

sqlserver.audit.session_server_principal_name

会话的服务器主体。

keyword

sqlserver.audit.statement

TSQL 语句(如果有)

text

sqlserver.audit.succeeded

指示触发审核事件的操作的权限检查是否成功。

boolean

sqlserver.audit.target_database_principal_id

可审核操作应用到的数据库主体。

keyword

sqlserver.audit.target_database_principal_name

操作的目标用户。

keyword

sqlserver.audit.target_server_principal_id

可审核操作应用到的服务器主体。

keyword

sqlserver.audit.target_server_principal_name

操作的目标登录名。

keyword

sqlserver.audit.target_server_principal_sid

目标登录名的 SID。

keyword

sqlserver.audit.transaction_id

事务 ID

keyword

sqlserver.audit.user_defined_event_id

用户定义的事件 ID。

integer

sqlserver.audit.user_defined_information

用户定义的信息

text

winlog.activity_id

用于标识当前活动的全局唯一标识符。使用此标识符发布的事件属于同一活动。

keyword

winlog.api

用于读取记录的事件日志 API 类型。可能的值为用于 Windows 事件日志 API 的“wineventlog”或用于事件日志记录 API 的“eventlogging”。事件日志记录 API 专为 Windows Server 2003 或 Windows 2000 操作系统而设计。在 Windows Vista 中,事件日志记录基础结构已重新设计。在 Windows Vista 或更高版本的操作系统上,使用 Windows 事件日志 API。Winlogbeat 会自动检测使用哪个 API 读取事件日志。

keyword

winlog.channel

从中读取此记录的通道的名称。此值是配置中 event_logs 集合中的名称之一。

keyword

winlog.computer_name

生成记录的计算机的名称。使用 Windows 事件转发时,此名称可能与 agent.hostname 不同。

keyword

winlog.event_data

特定于事件的数据。此字段与 user_data 互斥。如果您在 Windows Vista 之前的版本上捕获事件数据,则 event_data 中的参数被命名为 param1param2 等,因为在早期版本的 Windows 中事件日志参数是未命名的。

object

winlog.event_data.param1

keyword

winlog.event_data.param2

keyword

winlog.event_data.param3

keyword

winlog.event_data.param4

keyword

winlog.event_data.param5

keyword

winlog.event_data.param6

keyword

winlog.event_data.param7

keyword

winlog.event_data.param8

keyword

winlog.event_id

事件标识符。该值特定于事件的来源。

keyword

winlog.keywords

关键字用于对事件进行分类。

keyword

winlog.opcode

事件中定义的操作码。任务和操作码通常用于标识应用程序中记录事件的位置。

keyword

winlog.process.pid

客户端服务器运行时进程的 process_id。

long

winlog.process.thread.id

long

winlog.provider_guid

用于标识记录事件的提供程序的全局唯一标识符。

keyword

winlog.provider_name

事件日志记录的来源(记录记录的应用程序或服务)。

keyword

winlog.record_id

事件日志记录的记录 ID。写入事件日志的第一个记录是记录号 1,其他记录按顺序编号。如果记录号达到最大值(事件日志记录 API 为 232,Windows 事件日志 API 为 264),则下一个记录号将为 0。

keyword

winlog.related_activity_id

用于标识控制权已转移到的活动的全局唯一标识符。相关的事件会将此标识符作为其 activity_id 标识符。

keyword

winlog.task

事件中定义的任务。任务和操作码通常用于标识应用程序中记录事件的位置。事件日志记录 API(在 Windows Vista 之前的操作系统上)使用的类别将写入此字段。

keyword

winlog.user.domain

与此事件关联的帐户所属的域。

keyword

winlog.user.identifier

与此事件关联的帐户的 Windows 安全标识符 (SID)。如果 Winlogbeat 无法将 SID 解析为名称,则将从事件中省略 user.nameuser.domainuser.type 字段。如果您发现 Winlogbeat 未解析 SID,请查看日志以查找问题线索。

keyword

winlog.user.name

与此事件关联的用户的名称。

keyword

winlog.user.type

与此事件关联的帐户类型。

keyword

winlog.user_data

特定于事件的数据。此字段与 event_data 互斥。

object

winlog.version

事件定义的版本号。

long

Microsoft SQL Server log 数据集解析 Microsoft SQL Server 创建的错误日志。

示例

log 的示例事件如下所示

{
    "@timestamp": "2022-07-14T07:12:49.210Z",
    "agent": {
        "ephemeral_id": "688f9c4d-2ac0-43b6-9421-bf465d5c92f0",
        "id": "42a4484f-4eb2-4802-bd76-1f1118713d64",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.3.0"
    },
    "cloud": {
        "account": {},
        "instance": {
            "id": "b30e45e6-7900-4900-8d67-e37cb13374bc",
            "name": "obs-int-windows-dev"
        },
        "machine": {
            "type": "Standard_D16ds_v5"
        },
        "provider": "azure",
        "region": "CentralIndia",
        "service": {
            "name": "Virtual Machines"
        }
    },
    "data_stream": {
        "dataset": "microsoft_sqlserver.log",
        "namespace": "ep",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "42a4484f-4eb2-4802-bd76-1f1118713d64",
        "snapshot": false,
        "version": "8.3.0"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "database"
        ],
        "dataset": "microsoft_sqlserver.log",
        "ingested": "2022-07-14T07:13:12Z",
        "kind": "event",
        "original": "2022-07-14 07:12:49.21 Server      Microsoft SQL Server 2019 (RTM-CU16-GDR) (KB5014353) - 15.0.4236.7 (X64) \n\tMay 29 2022 15:55:47 \n\tCopyright (C) 2019 Microsoft Corporation\n\tDeveloper Edition (64-bit) on Linux (Ubuntu 20.04.4 LTS) <X64>",
        "type": [
            "info"
        ]
    },
    "input": {
        "type": "log"
    },
    "log": {
        "file": {
            "path": "/tmp/service_logs/errorlog"
        },
        "flags": [
            "multiline"
        ],
        "offset": 0
    },
    "message": "Microsoft SQL Server 2019 (RTM-CU16-GDR) (KB5014353) - 15.0.4236.7 (X64) \n\tMay 29 2022 15:55:47 \n\tCopyright (C) 2019 Microsoft Corporation\n\tDeveloper Edition (64-bit) on Linux (Ubuntu 20.04.4 LTS) <X64>",
    "microsoft_sqlserver": {
        "log": {
            "origin": "Server"
        }
    },
    "tags": [
        "mssql-logs"
    ]
}

ECS 字段参考

请参阅以下文档,以获取有关 ECS 字段的详细信息。

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

date

cloud.image.id

云实例的映像 ID。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

host.containerized

主机是否为容器。

boolean

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统的代号(如果有)。

keyword

input.type

Filebeat 输入的类型。

keyword

log.flags

此字段包含事件的标志。

keyword

log.offset

日志文件中条目的偏移量。

long

microsoft_sqlserver.log.origin

消息的来源,通常是服务器,但也可能是恢复进程

keyword

指标

编辑
性能
编辑

Microsoft SQL Server performance 数据集提供来自性能计数器表的指标。所有 performance 指标都将在 sqlserver.metrics 字段组中提供。

示例

performance 的示例事件如下所示

{
    "@timestamp": "2022-11-23T05:03:28.987Z",
    "agent": {
        "ephemeral_id": "70f5c0c1-37b1-486b-9806-8105b2cdcd20",
        "id": "6d444a4a-2158-445e-8953-dc6eef720a34",
        "name": "docker-fleet-agent",
        "type": "metricbeat",
        "version": "8.5.0"
    },
    "cloud": {
        "account": {},
        "instance": {
            "id": "b30e45e6-7900-4900-8d67-e37cb13374bc",
            "name": "obs-int-windows-dev"
        },
        "machine": {
            "type": "Standard_D16ds_v5"
        },
        "provider": "azure",
        "region": "CentralIndia",
        "service": {
            "name": "Virtual Machines"
        }
    },
    "data_stream": {
        "dataset": "microsoft_sqlserver.performance",
        "namespace": "ep",
        "type": "metrics"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "6d444a4a-2158-445e-8953-dc6eef720a34",
        "snapshot": false,
        "version": "8.5.0"
    },
    "event": {
        "agent_id_status": "verified",
        "dataset": "microsoft_sqlserver.performance",
        "duration": 41134100,
        "ingested": "2022-11-23T05:03:30Z",
        "module": "sql"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": false,
        "hostname": "docker-fleet-agent",
        "id": "66392b0697b84641af8006d87aeb89f1",
        "ip": [
            "172.18.0.5"
        ],
        "mac": [
            "02-42-AC-12-00-05"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "5.10.104-linuxkit",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.5 LTS (Focal Fossa)"
        }
    },
    "metricset": {
        "name": "query",
        "period": 60000
    },
    "mssql": {
        "metrics": {
            "active_temp_tables": 0,
            "batch_requests_per_sec": 54,
            "buffer_cache_hit_ratio": 24,
            "buffer_checkpoint_pages_per_sec": 105,
            "buffer_database_pages": 2215,
            "buffer_page_life_expectancy": 16,
            "buffer_target_pages": 2408448,
            "compilations_per_sec": 80,
            "connection_reset_per_sec": 13,
            "instance_name": "MSSQLSERVER",
            "lock_waits_per_sec": 4,
            "logins_per_sec": 16,
            "logouts_per_sec": 15,
            "memory_grants_pending": 0,
            "page_splits_per_sec": 9,
            "re_compilations_per_sec": 0,
            "server_name": "d10aad520431",
            "transactions": 0,
            "user_connections": 1
        }
    },
    "service": {
        "address": "elastic-package-service_microsoft_sqlserver_1",
        "type": "sql"
    }
}

ECS 字段参考

请参阅以下文档,以获取有关 ECS 字段的详细信息。

导出的字段
字段 描述 类型 指标类型

@timestamp

事件发生的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道首次接收到事件的时间填充。所有事件的必填字段。

date

agent.id

此代理的唯一标识符(如果存在)。示例:对于 Beats,这将是 beat.id。

keyword

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机、资源或服务所在的可用区。

keyword

cloud.image.id

云实例的映像 ID。

keyword

cloud.instance.id

主机实例 ID。

keyword

cloud.provider

云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机、资源或服务所在的区域。

keyword

container.id

唯一容器 ID。

keyword

data_stream.dataset

该字段可以包含任何对表示数据来源有意义的内容。示例包括 nginx.accessprometheusendpoint 等。对于其他适合但不设置数据集的数据流,我们使用值“generic”作为数据集值。event.dataset 应具有与 data_stream.dataset 相同的值。除了上面提到的 Elasticsearch 数据流命名标准之外,dataset 值还有其他限制:* 不得包含 - * 长度不超过 100 个字符

constant_keyword

data_stream.namespace

用户定义的命名空间。命名空间对于允许数据分组很有用。许多用户已经以这种方式组织他们的索引,并且数据流命名方案现在提供这种最佳实践作为默认值。许多用户将使用 default 填充此字段。如果不使用值,则默认为 default。除了上面提到的 Elasticsearch 索引命名标准之外,namespace 值还有其他限制:* 不得包含 - * 长度不超过 100 个字符

constant_keyword

data_stream.type

数据流的总体类型。目前允许的值是“logs”和“metrics”。我们希望在不久的将来还添加“traces”和“synthetics”。

constant_keyword

host.containerized

主机是否为容器。

boolean

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的值、完全限定域名 (FQDN) 或用户指定的名称。建议的值是主机的小写 FQDN。

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统的代号(如果有)。

keyword

mssql.metrics.active_temp_tables

正在使用的临时表/表变量的数量。

long

gauge

mssql.metrics.batch_requests_per_sec

每秒接收的 Transact-SQL 命令批处理的数量。此统计数据受所有约束(例如 I/O、用户数量、缓存大小、请求的复杂性等)的影响。高批处理请求意味着良好的吞吐量。

float

gauge

mssql.metrics.buffer_cache_hit_ratio

该比率是过去几千次页面访问中缓存命中总数除以缓存查找总数。经过很长一段时间后,该比率变化很小。由于从缓存读取比从磁盘读取便宜得多,因此您希望此比率较高。

double

gauge

mssql.metrics.buffer_checkpoint_pages_per_sec

指示检查点或需要刷新所有脏页的其他操作每秒刷新到磁盘的页数。

float

gauge

mssql.metrics.buffer_database_pages

指示缓冲区池中具有数据库内容的页数。

long

gauge

mssql.metrics.buffer_page_life_expectancy

指示页面在没有引用的情况下在缓冲区池中保留的秒数(以秒为单位)。

long

gauge

mssql.metrics.buffer_target_pages

缓冲区池中理想的页数。

long

gauge

mssql.metrics.compilations_per_sec

每秒 SQL 编译的数量。指示进入编译代码路径的次数。包括由 SQL Server 中语句级别的重新编译引起的编译。在 SQL Server 用户活动稳定后,此值将达到稳定状态。

float

gauge

mssql.metrics.connection_reset_per_sec

从连接池每秒启动的登录总数。

float

gauge

mssql.metrics.instance_name

mssql 连接实例的名称。

keyword

mssql.metrics.lock_waits_per_sec

每秒需要调用方等待的锁请求数。

float

gauge

mssql.metrics.logins_per_sec

每秒启动的总登录数。这不包括池连接。

float

gauge

mssql.metrics.logouts_per_sec

每秒启动的总注销操作数。

float

gauge

mssql.metrics.memory_grants_pending

这是从动态计数器名称变量的默认模式生成的。此计数器告诉我们有多少进程正在等待分配给它们的内存,以便它们可以启动。

long

mssql.metrics.page_splits_per_sec

由于索引页溢出而每秒发生的页面拆分数。

float

gauge

mssql.metrics.re_compilations_per_sec

每秒语句重新编译的次数。计算触发语句重新编译的次数。通常,您希望重新编译次数较低。

float

gauge

mssql.metrics.server_name

mssql 服务器的名称。

keyword

mssql.metrics.transactions

事务总数

long

gauge

mssql.metrics.user_connections

用户连接总数。

long

gauge

service.address

从中收集有关此服务的数据的地址。这应该是 URI、网络地址(ipv4:port 或 [ipv6]:port)或资源路径(sockets)。

keyword

transaction_log
编辑

Microsoft SQL Server transaction_log 数据集提供来自日志空间使用情况和日志统计表的指标。 所有 transaction_log 指标都将在 sqlserver.metrics 字段组中可用。

示例

transaction_log 的示例事件如下所示

{
    "@timestamp": "2022-12-20T07:34:29.687Z",
    "agent": {
        "ephemeral_id": "8d528ff8-5e90-4572-89f6-61fb3a6c96f1",
        "id": "d44a1c4a-95bf-47e9-afb0-453a2ef43c00",
        "name": "192.168.1.2",
        "type": "metricbeat",
        "version": "8.5.3"
    },
    "data_stream": {
        "dataset": "microsoft_sqlserver.transaction_log",
        "namespace": "default",
        "type": "metrics"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "d44a1c4a-95bf-47e9-afb0-453a2ef43c00",
        "snapshot": false,
        "version": "8.5.3"
    },
    "event": {
        "agent_id_status": "verified",
        "dataset": "microsoft_sqlserver.transaction_log",
        "duration": 2147044750,
        "ingested": "2022-12-20T07:34:32Z",
        "module": "sql"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": false,
        "hostname": "192.168.1.2",
        "id": "627E8AE5-E918-5073-A58E-8A2D9ED96875",
        "ip": [
            "192.168.1.2"
        ],
        "mac": [
            "36-F7-DC-28-23-80"
        ],
        "name": "192.168.1.2",
        "os": {
            "build": "21D62",
            "family": "darwin",
            "kernel": "21.3.0",
            "name": "macOS",
            "platform": "darwin",
            "type": "macos",
            "version": "12.2.1"
        }
    },
    "metricset": {
        "name": "query",
        "period": 60000
    },
    "mssql": {
        "metrics": {
            "database_id": 1,
            "database_name": "master",
            "instance_name": "MSSQLSERVER",
            "log_space_in_bytes_since_last_backup": 602112,
            "server_name": "obs-int-mssql20",
            "total_log_size_bytes": 2088960,
            "used_log_space_bytes": 1024000,
            "used_log_space_pct": 49.01960754394531
        }
    },
    "service": {
        "address": "20.228.135.242",
        "type": "sql"
    }
}

ECS 字段参考

请参阅以下文档,以获取有关 ECS 字段的详细信息。

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件发生的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道首次接收到事件的时间填充。所有事件的必填字段。

date

agent.id

此代理的唯一标识符(如果存在)。示例:对于 Beats,这将是 beat.id。

keyword

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机、资源或服务所在的可用区。

keyword

cloud.image.id

云实例的映像 ID。

keyword

cloud.instance.id

主机实例 ID。

keyword

cloud.provider

云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机、资源或服务所在的区域。

keyword

container.id

唯一容器 ID。

keyword

data_stream.dataset

该字段可以包含任何对表示数据来源有意义的内容。示例包括 nginx.accessprometheusendpoint 等。对于其他适合但不设置数据集的数据流,我们使用值“generic”作为数据集值。event.dataset 应具有与 data_stream.dataset 相同的值。除了上面提到的 Elasticsearch 数据流命名标准之外,dataset 值还有其他限制:* 不得包含 - * 长度不超过 100 个字符

constant_keyword

data_stream.namespace

用户定义的命名空间。命名空间对于允许数据分组很有用。许多用户已经以这种方式组织他们的索引,并且数据流命名方案现在提供这种最佳实践作为默认值。许多用户将使用 default 填充此字段。如果不使用值,则默认为 default。除了上面提到的 Elasticsearch 索引命名标准之外,namespace 值还有其他限制:* 不得包含 - * 长度不超过 100 个字符

constant_keyword

data_stream.type

数据流的总体类型。目前允许的值是“logs”和“metrics”。我们希望在不久的将来还添加“traces”和“synthetics”。

constant_keyword

host.containerized

主机是否为容器。

boolean

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的值、完全限定域名 (FQDN) 或用户指定的名称。建议的值是主机的小写 FQDN。

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统的代号(如果有)。

keyword

mssql.metrics.active_log_size

以字节为单位的总活动事务日志大小。

long

字节

计数器

mssql.metrics.database_id

MSSQL 内部的数据库的唯一 ID。

long

mssql.metrics.database_name

数据库的名称。

keyword

mssql.metrics.instance_name

mssql 连接实例的名称。

keyword

mssql.metrics.log_backup_time

上次事务日志备份时间。

date

mssql.metrics.log_recovery_size

自日志恢复日志序列号 (LSN) 以来的日志大小(以字节为单位)。

long

字节

gauge

mssql.metrics.log_since_last_checkpoint

自上次检查点日志序列号 (LSN) 以来的日志大小(以字节为单位)。

long

字节

gauge

mssql.metrics.log_since_last_log_backup

自上次备份以来的日志文件大小(以字节为单位)。

long

字节

gauge

mssql.metrics.log_space_in_bytes_since_last_backup

自上次日志备份以来使用的空间量(以字节为单位)。

long

字节

gauge

mssql.metrics.query_id

表示为获取结果而执行的 mssql 查询的自动生成的 ID。

keyword

mssql.metrics.server_name

mssql 服务器的名称。

keyword

mssql.metrics.total_log_size

总日志大小。

long

字节

计数器

mssql.metrics.total_log_size_bytes

以字节为单位的总事务日志大小。

long

字节

计数器

mssql.metrics.used_log_space_bytes

日志的已占用大小(以字节为单位)。

long

字节

gauge

mssql.metrics.used_log_space_pct

日志的已占用大小占总日志大小的百分比。

float

百分比

gauge

service.address

从中收集有关此服务的数据的地址。这应该是 URI、网络地址(ipv4:port 或 [ipv6]:port)或资源路径(sockets)。

keyword

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

2.9.4

Bug 修复 (查看拉取请求)
修复 Microsoft SQL Server 集成的损坏链接。

8.13.0 或更高版本

2.9.3

增强 (查看拉取请求)
改进文档以添加有关所需权限的更多信息。

8.13.0 或更高版本

2.9.2

Bug 修复 (查看拉取请求)
修复默认和自定义数据库指标上 transaction_logs 的文档。

8.13.0 或更高版本

2.9.1

Bug 修复 (查看拉取请求)
将 error.code 转换为字符串

8.13.0 或更高版本

2.9.0

增强 (查看拉取请求)
向 winlog 输入添加缺失的选项

8.13.0 或更高版本

2.8.0

增强 (查看拉取请求)
添加对性能和 transaction_log 数据流的处理器支持。

8.13.0 或更高版本

2.7.0

增强 (查看拉取请求)
ECS 版本已更新至 8.11.0。 将 kibana 约束更新至 ^8.13.0。 修改了字段定义以删除 ecs@mappings 组件模板所导致冗余的 ECS 字段。

8.13.0 或更高版本

2.6.0

增强 (查看拉取请求)
在 data_stream.dataset 上添加全局过滤器以提高性能。

8.12.0 或更高版本

2.5.1

增强 (查看拉取请求)
更新 transaction_logs 指标收集限制的文档。

8.12.0 或更高版本

2.5.0

增强 (查看拉取请求)
为敏感字段启用秘密

8.12.0 或更高版本

2.4.1

增强 (查看拉取请求)
内联“按引用”可视化

8.10.2 或更高版本

2.4.0

增强 (查看拉取请求)
更新“Microsoft SQL Server 事务日志”仪表板。

8.10.2 或更高版本

2.3.2

增强 (查看拉取请求)
更新文档

8.10.2 或更高版本

2.3.1

增强 (查看拉取请求)
更新自述文件以使用文档指南

8.10.2 或更高版本

2.3.0

增强 (查看拉取请求)
将软件包 format_version 更新为 3.0.0。

8.10.2 或更高版本

2.2.2

Bug 修复 (查看拉取请求)
为 fetch_from_all_databases 功能提升最低 kibana 版本

8.10.2 或更高版本

2.2.1

Bug 修复 (查看拉取请求)
向重命名处理器添加 null 检查和 ignore_missing 检查

8.8.0 或更高版本

2.2.0

增强 (查看拉取请求)
为 Microsoft SQL Server 添加 fetch_from_all_databases 的支持

8.8.0 或更高版本

2.1.1

Bug 修复 (查看拉取请求)
为 error.code 添加 ecs 映射以避免类型冲突

8.8.0 或更高版本

2.1.0

增强 (查看拉取请求)
为指标数据集启用时间序列数据流。 这将大大减少指标的存储,并有望逐步提高查询性能。 有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/elasticsearch/reference/current/tsds.html

8.8.0 或更高版本

2.0.0

增强 (查看拉取请求)
使性能、transaction_log 和日志数据流 GA。

8.4.0 或更高版本

1.23.0

增强 (查看拉取请求)
更新文档,其中包含数据库权限链接。

8.4.0 或更高版本

1.22.0

增强 (查看拉取请求)
添加缺失的代理和 ECS 字段映射。

8.4.0 或更高版本

1.21.0

增强 (查看拉取请求)
将所有权从 obs-service-integrations 重命名为 obs-infraobs-integrations

8.4.0 或更高版本

1.20.0

增强 (查看拉取请求)
手动编码域帐户的反斜杠

8.4.0 或更高版本

1.19.1

Bug 修复 (查看拉取请求)
添加更多维度字段。

8.4.0 或更高版本

1.19.0

增强 (查看拉取请求)
将事务日志(仪表板)可视化迁移到 Lens。

8.4.0 或更高版本

1.18.0

增强 (查看拉取请求)
将审计事件概述(仪表板)、错误日志概述(仪表板)和性能(仪表板)可视化迁移到 Lens。

8.4.0 或更高版本

1.17.0

增强 (查看拉取请求)
为事务日志指标添加对包含特殊字符的用户数据库名称的支持。

8.3.0 或更高版本

1.16.0

增强 (查看拉取请求)
更新事务日志数据流的维度字段以启用 TSDB。

8.3.0 或更高版本

1.15.0

增强 (查看拉取请求)
更新性能数据流的字段的 metrictype。

8.3.0 或更高版本

1.14.0

增强 (查看拉取请求)
为性能数据流添加维度字段以支持 TSDB 启用。

8.3.0 或更高版本

1.13.1

增强 (查看拉取请求)
添加了类别和/或子类别。

8.3.0 或更高版本

1.13.0

增强 (查看拉取请求)
更新密码文档。

8.3.0 或更高版本

1.12.0

增强 (查看拉取请求)
将软件包更新到 ECS 8.6.0。

8.3.0 或更高版本

1.11.1

Bug 修复 (查看拉取请求)
修复了连接重置性能查询。

8.3.0 或更高版本

1.11.0

增强 (查看拉取请求)
支持事务日志的用户数据库。

8.3.0 或更高版本

1.10.0

增强 (查看拉取请求)
提取实例名称和服务器名称。

8.3.0 或更高版本

1.9.0

增强 (查看拉取请求)
支持动态计数器名称列表。

8.3.0 或更高版本

1.8.0

增强 (查看拉取请求)
添加了基础架构类别。

8.3.0 或更高版本

1.7.0

增强 (查看拉取请求)
合并性能中引入的结果。

增强 (查看拉取请求)
允许配置文本编码。

8.3.0 或更高版本

1.6.0

增强 (查看拉取请求)
将软件包更新至 ECS 8.5.0。

8.3.0 或更高版本

1.5.0

增强 (查看拉取请求)
添加了使用实例名称或端口号进行命名实例连接的支持。

8.3.0 或更高版本

1.4.0

增强 (查看拉取请求)
将软件包更新至 ECS 8.4.0

8.3.0 或更高版本

1.3.0

增强 (查看拉取请求)
添加了日志数据流。

8.3.0 或更高版本

1.2.0

增强 (查看拉取请求)
将软件包更新至 ECS 8.3.0。

8.3.0 或更高版本

1.1.1

增强 (查看拉取请求)
添加了事务日志数据流

8.3.0 或更高版本

1.1.0

增强 (查看拉取请求)
添加了性能数据流

1.0.0

增强 (查看拉取请求)
GA 版本

7.16.0 或更高版本
8.0.0 或更高版本

0.5.0

增强 (查看拉取请求)
更新至 ECS 8.2

0.4.5

增强 (查看拉取请求)
更新了 Readme。添加了指向 Microsoft 文档的链接

0.4.4

增强 (查看拉取请求)
为多字段添加文档

0.4.3

错误修复 (查看拉取请求)
修复了 winlog.record_id 的字段冲突

0.4.2

错误修复 (查看拉取请求)
修复了解析 sqlserver.audit.event_time 时出现的 mapper_parsing_exception 异常。

0.4.1

错误修复 (查看拉取请求)
将所有者更改为 SEI

0.4.0

增强 (查看拉取请求)
更新至 ECS 8.0

0.3.0

增强 (查看拉取请求)
公开 winlog 输入 ignore_older 选项。

错误修复 (查看拉取请求)
修复了保留原始事件选项

增强 (查看拉取请求)
使选项顺序与其他基于 winlog 的集成保持一致。

0.2.0

增强 (查看拉取请求)
公开 winlog 输入语言选项。

0.1.0

增强 (查看拉取请求)
软件包的初始草案