System socket metricset
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. Serverless interfaces and procedures might differ from classic Elastic Stack deployments. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless
Generally available
Stack
Generally available
This metricset is available on Linux only and requires kernel 2.6.14 or newer.
The system socket metricset reports an event for each new TCP socket that it sees. It does this by polling the kernel periodically to get a dump of all sockets. You set the polling interval by configuring the period option. Specifying a short polling interval with this metricset is important to avoid missing short-lived connections. For example:
metricbeat.modules:
- module: system
metricsets: [cpu, memory]
- module: system
metricsets: [socket]
period: 1s
- You can configure the
socketmetricset separately to specify a differentperiodvalue than the other metricsets.
The metricset reports the process that has the socket open. To provide this information on Linux for all processes, Metricbeat must be run with sys_ptrace and dac_read_search capabilities. These permissions are usually granted when running as root, but they can and may need to be explictly added when running Metricbeat inside a container.
- 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- You can configure the metricset to perform a reverse lookup on the remote IP, and the returned hostname will be added to the event and cached. If a hostname is found, then the eTLD+1 (effective top-level domain plus one level) value will also be added to the event. Reverse lookups are disabled by default.
socket.reverse_lookup.success_ttl- The results of successful reverse lookups are cached for the period of time defined by this option. The default value is 60s.
socket.reverse_lookup.failure_ttl- The results of failed reverse lookups are cached for the period of time defined by this option. The default value is 60s.
For a description of each field in the metricset, see the exported fields section.
Here is an example document generated by this metricset:
{
"@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"
}
}