系统套接字指标集编辑

此指标集仅在 Linux 上可用,并且需要内核 2.6.14 或更高版本。

系统 socket 指标集为它看到的每个新的 TCP 套接字报告一个事件。 它通过定期轮询内核来获取所有套接字的转储来实现这一点。 可以通过配置 period 选项来设置轮询间隔。 使用此指标集指定较短的轮询间隔对于避免错过短暂连接很重要。 例如

metricbeat.modules:
- module: system
  metricsets: [cpu, memory]
- module: system
  metricsets: [socket] 
  period: 1s

可以分别配置 socket 指标集以指定与其他指标集不同的 period 值。

指标集报告打开套接字的进程。 为了在 Linux 上为所有进程提供此信息,Metricbeat 必须使用 sys_ptracedac_read_search 功能运行。 这些权限通常在以 root 身份运行时授予,但在容器内运行 Metricbeat 时,它们可以并且可能需要显式添加。

配置编辑

- module: system
  metricsets: [socket]
  socket.reverse_lookup.enabled: false
  socket.reverse_lookup.success_ttl: 60s
  socket.reverse_lookup.failure_ttl: 60s
socket.reverse_lookup.enabled
可以配置指标集对远程 IP 执行反向查找,返回的主机名将添加到事件并缓存。 如果找到主机名,则 eTLD+1(有效顶级域名加一级)值也将添加到事件。 默认情况下禁用反向查找。
socket.reverse_lookup.success_ttl
成功反向查找的结果将缓存此选项定义的时间段。 默认值为 60 秒。
socket.reverse_lookup.failure_ttl
失败的反向查找结果将缓存此选项定义的时间段。 默认值为 60 秒。

字段

有关指标集中每个字段的描述,请参阅 导出字段 部分。

以下是由此指标集生成的示例文档

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "agent": {
        "hostname": "host.example.com",
        "name": "host.example.com"
    },
    "event": {
        "dataset": "system.socket",
        "duration": 115000,
        "module": "system"
    },
    "metricset": {
        "name": "socket"
    },
    "network": {
        "direction": "listening",
        "iana_number": "41",
        "type": "ipv6"
    },
    "process": {
        "args": [
            "/tmp/go-build774092237/b001/socket.test",
            "-data"
        ],
        "executable": "/tmp/go-build774092237/b001/socket.test",
        "name": "socket.test",
        "pid": 32127
    },
    "server": {
        "ip": "::",
        "port": 45109
    },
    "service": {
        "type": "system"
    },
    "system": {
        "socket": {
            "local": {
                "ip": "::",
                "port": 45109
            },
            "process": {
                "cmdline": "/tmp/go-build774092237/b001/socket.test -data"
            }
        }
    },
    "user": {
        "full_name": "Jaime Soriano Pastor",
        "id": "1000",
        "name": "jaime"
    }
}