diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index ddc1d5a6d001..1b2eaeb212cb 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -79,6 +79,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha1...master[Check the HEAD d - Added `detect_null_bytes` selector to detect null bytes from a io.reader. {pull}9210[9210] - Added `syslog_host` variable to HAProxy module to allow syslog listener to bind to configured host. {pull}9366[9366] +- Added support on Traefik for Common Log Format and Combined Log Format mixed which is the default Traefik format {issue}8015[8015] {issue}6111[6111] {pull}8768[8768]. *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 7255b8951740..c80741bcc34f 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -6329,6 +6329,16 @@ type: keyword Client IP address. +-- + +*`traefik.access.duration`*:: ++ +-- +type: long + +Duration of the access entry. + + -- *`traefik.access.user_name`*:: @@ -6339,6 +6349,16 @@ type: keyword The user name used when basic authentication is used. +-- + +*`traefik.access.user_identifier`*:: ++ +-- +type: keyword + +Is the RFC 1413 identity of the client + + -- *`traefik.access.method`*:: @@ -6430,6 +6450,16 @@ type: keyword The name of the physical device. +-- + +*`traefik.access.user_agent.build`*:: ++ +-- +type: keyword + +The build of the user agent. + + -- *`traefik.access.user_agent.major`*:: diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 326e21936582..429c913091d5 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "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" } diff --git a/filebeat/module/traefik/access/_meta/fields.yml b/filebeat/module/traefik/access/_meta/fields.yml index a65e524b057b..116ed67d42f4 100644 --- a/filebeat/module/traefik/access/_meta/fields.yml +++ b/filebeat/module/traefik/access/_meta/fields.yml @@ -7,10 +7,18 @@ type: keyword description: > Client IP address. + - name: duration + type: long + description: > + Duration of the access entry. - name: user_name type: keyword description: > The user name used when basic authentication is used. + - name: user_identifier + type: keyword + description: > + Is the RFC 1413 identity of the client - name: method type: keyword example: GET @@ -52,6 +60,10 @@ type: keyword description: > The name of the physical device. + - name: build + type: keyword + description: > + The build of the user agent. - name: major type: long description: > diff --git a/filebeat/module/traefik/access/config/traefik-access.yml b/filebeat/module/traefik/access/config/traefik-access.yml index 2df383f52fd7..1d20f94a29ff 100644 --- a/filebeat/module/traefik/access/config/traefik-access.yml +++ b/filebeat/module/traefik/access/config/traefik-access.yml @@ -7,7 +7,7 @@ exclude_files: [".gz$"] processors: - dissect: - tokenizer: '%{traefik.access.remote_ip} - %{traefik.access.user_name} [%{traefik.access.time}] + tokenizer: '%{traefik.access.remote_ip} %{traefik.access.user_identifier} %{traefik.access.user_name} [%{traefik.access.time}] "%{traefik.access.method} %{traefik.access.url} HTTP/%{traefik.access.http_version}" %{traefik.access.response_code} %{traefik.access.message}' diff --git a/filebeat/module/traefik/access/ingest/pipeline.json b/filebeat/module/traefik/access/ingest/pipeline.json index d15899fc98a0..955cafc1af8c 100644 --- a/filebeat/module/traefik/access/ingest/pipeline.json +++ b/filebeat/module/traefik/access/ingest/pipeline.json @@ -5,19 +5,21 @@ "grok": { "field": "traefik.access.message", "patterns": [ - "(?:%{NUMBER:traefik.access.body_sent.bytes}|-)( \"%{DATA:traefik.access.referrer}\")?( \"%{DATA:traefik.access.agent}\")?(?:%{NUMBER:traefik.access.request_count}|-)?( \"%{DATA:traefik.access.frontend_name}\")?( \"%{DATA:traefik.access.backend_url}\")?" + "(?:%{NUMBER:traefik.access.body_sent.bytes:int}|-)( (?:\"%{DATA:traefik.access.referrer}\"|-)?( (?:\"%{DATA:traefik.access.agent}\"|-)?)?( (?:%{NUMBER:traefik.access.request_count:int}|-)?)?( (?:\"%{DATA:traefik.access.frontend_name}\"|-)?)?( \"%{DATA:traefik.access.backend_url}\")?( %{NUMBER:traefik.access.duration:int}ms)?)?" ], "ignore_missing": true } }, { "remove": { - "field": "message" + "field": "message", + "ignore_missing": true } }, { "remove": { - "field": "traefik.access.message" + "field": "traefik.access.message", + "ignore_missing": true } }, { @@ -50,7 +52,8 @@ { "rename": { "field": "traefik.access.agent", - "target_field": "traefik.access.user_agent.original" + "target_field": "traefik.access.user_agent.original", + "ignore_failure": true } }, { diff --git a/filebeat/module/traefik/access/test/test.log b/filebeat/module/traefik/access/test/test.log index 742546ff51a7..a271309d2144 100644 --- a/filebeat/module/traefik/access/test/test.log +++ b/filebeat/module/traefik/access/test/test.log @@ -1,2 +1,7 @@ 192.168.33.1 - - [02/Oct/2017:20:22:07 +0000] "GET /ui/favicons/favicon-16x16.png HTTP/1.1" 304 0 "http://example.com/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 262 "Host-host-1" "http://172.19.0.3:5601" 2ms -85.181.35.98 - - [02/Oct/2017:20:22:08 +0000] "GET /ui/favicons/favicon.ico HTTP/1.1" 304 0 "http://example.com/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 271 "Host-host1 "http://172.19.0.3:5601" 3ms +85.181.35.98 - - [02/Oct/2017:20:22:08 +0000] "GET /ui/favicons/favicon.ico HTTP/1.1" 304 0 "http://example.com/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 271 "Host-host1" "http://172.19.0.3:5601" 3ms +70.29.80.15 - - [28/Feb/2018:17:30:33 +0000] "GET /en/ HTTP/2.0" 200 2814 - "Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0 Mobile/15D60 Safari/604.1" 13 "Host-host1-com-0" "http://172.19.0.6:14008" 247ms +::1 - - [29/Nov/2018:15:03:51 +0000] "GET / HTTP/1.1" 404 19 "-" "curl/7.62.0" 10 "backend not found" "/" 0ms +94.254.131.115 - - [19/Jan/2018:10:01:02 +0000] "GET /assets/52f8f2e711d235d76044799e/owners?oauth_token=ya29.GltABOXd_gtG-XVvYX2YhxXJiXVvbHRMXn9fbzc_mDfl2rDhqK0CrAlwuwwRWnNnEaMDwkmyI7-QGbRSB0Hzje2cc__FjTQ1iuiYTSIBaIPfxSWip5jx6zqvsVVo HTTP/1.1" 200 85 - "Android" 623112 "Host-api-wearerealitygames-com-2" "http://172.25.0.9:4140" 13ms +89.64.35.193 - - [19/Jan/2018:10:01:02 +0000] "GET /marketplace/tax?oauth_token=ya29.Gl0fBWnrJ7DcEU-tN-O3Vxn2XZVaz2I-hFTjP1JQzhYFVT-SKtlmo9hSzrx3n82LUwUxJ1s5lmU8U3Mc9gA_aCxBk49ShYEwvmYOWxJJyldDIJ7hY4us4LoiSY1OqAM HTTP/1.1" 200 150 - "Android" 623114 "Host-api-wearerealitygames-com-2" "http://172.25.0.6:4140" 8ms +127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 diff --git a/filebeat/module/traefik/access/test/test.log-expected.json b/filebeat/module/traefik/access/test/test.log-expected.json index 2f95d4ad9b1d..9cbe8a785649 100644 --- a/filebeat/module/traefik/access/test/test.log-expected.json +++ b/filebeat/module/traefik/access/test/test.log-expected.json @@ -5,11 +5,15 @@ "event.module": "traefik", "input.type": "log", "log.offset": 0, - "traefik.access.body_sent.bytes": "0", + "traefik.access.backend_url": "http://172.19.0.3:5601", + "traefik.access.body_sent.bytes": 0, + "traefik.access.duration": 2, + "traefik.access.frontend_name": "Host-host-1", "traefik.access.http_version": "1.1", "traefik.access.method": "GET", "traefik.access.referrer": "http://example.com/login", "traefik.access.remote_ip": "192.168.33.1", + "traefik.access.request_count": 262, "traefik.access.response_code": "304", "traefik.access.url": "/ui/favicons/favicon-16x16.png", "traefik.access.user_agent.device": "Other", @@ -20,6 +24,7 @@ "traefik.access.user_agent.os": "Linux", "traefik.access.user_agent.os_name": "Linux", "traefik.access.user_agent.patch": "3163", + "traefik.access.user_identifier": "-", "traefik.access.user_name": "-" }, { @@ -28,7 +33,10 @@ "event.module": "traefik", "input.type": "log", "log.offset": 280, - "traefik.access.body_sent.bytes": "0", + "traefik.access.backend_url": "http://172.19.0.3:5601", + "traefik.access.body_sent.bytes": 0, + "traefik.access.duration": 3, + "traefik.access.frontend_name": "Host-host1", "traefik.access.geoip.city_name": "Berlin", "traefik.access.geoip.continent_name": "Europe", "traefik.access.geoip.country_iso_code": "DE", @@ -40,6 +48,7 @@ "traefik.access.method": "GET", "traefik.access.referrer": "http://example.com/login", "traefik.access.remote_ip": "85.181.35.98", + "traefik.access.request_count": 271, "traefik.access.response_code": "304", "traefik.access.url": "/ui/favicons/favicon.ico", "traefik.access.user_agent.device": "Other", @@ -50,6 +59,147 @@ "traefik.access.user_agent.os": "Linux", "traefik.access.user_agent.os_name": "Linux", "traefik.access.user_agent.patch": "3163", + "traefik.access.user_identifier": "-", "traefik.access.user_name": "-" + }, + { + "@timestamp": "2018-02-28T17:30:33.000Z", + "event.dataset": "access", + "event.module": "traefik", + "input.type": "log", + "log.offset": 553, + "traefik.access.backend_url": "http://172.19.0.6:14008", + "traefik.access.body_sent.bytes": 2814, + "traefik.access.duration": 247, + "traefik.access.frontend_name": "Host-host1-com-0", + "traefik.access.geoip.city_name": "Ottawa", + "traefik.access.geoip.continent_name": "North America", + "traefik.access.geoip.country_iso_code": "CA", + "traefik.access.geoip.location.lat": 45.2691, + "traefik.access.geoip.location.lon": -75.7518, + "traefik.access.geoip.region_iso_code": "CA-ON", + "traefik.access.geoip.region_name": "Ontario", + "traefik.access.http_version": "2.0", + "traefik.access.method": "GET", + "traefik.access.remote_ip": "70.29.80.15", + "traefik.access.request_count": 13, + "traefik.access.response_code": "200", + "traefik.access.url": "/en/", + "traefik.access.user_agent.device": "iPhone", + "traefik.access.user_agent.major": "11", + "traefik.access.user_agent.minor": "0", + "traefik.access.user_agent.name": "Mobile Safari", + "traefik.access.user_agent.original": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0 Mobile/15D60 Safari/604.1", + "traefik.access.user_agent.os": "iOS 11.2.5", + "traefik.access.user_agent.os_major": "11", + "traefik.access.user_agent.os_minor": "2", + "traefik.access.user_agent.os_name": "iOS", + "traefik.access.user_identifier": "-", + "traefik.access.user_name": "-" + }, + { + "@timestamp": "2018-11-29T15:03:51.000Z", + "event.dataset": "access", + "event.module": "traefik", + "input.type": "log", + "log.offset": 821, + "traefik.access.backend_url": "/", + "traefik.access.body_sent.bytes": 19, + "traefik.access.duration": 0, + "traefik.access.frontend_name": "backend not found", + "traefik.access.http_version": "1.1", + "traefik.access.method": "GET", + "traefik.access.referrer": "-", + "traefik.access.remote_ip": "::1", + "traefik.access.request_count": 10, + "traefik.access.response_code": "404", + "traefik.access.url": "/", + "traefik.access.user_agent.device": "Other", + "traefik.access.user_agent.major": "7", + "traefik.access.user_agent.minor": "62", + "traefik.access.user_agent.name": "curl", + "traefik.access.user_agent.original": "curl/7.62.0", + "traefik.access.user_agent.os": "Other", + "traefik.access.user_agent.os_name": "Other", + "traefik.access.user_agent.patch": "0", + "traefik.access.user_identifier": "-", + "traefik.access.user_name": "-" + }, + { + "@timestamp": "2018-01-19T10:01:02.000Z", + "event.dataset": "access", + "event.module": "traefik", + "input.type": "log", + "log.offset": 931, + "traefik.access.backend_url": "http://172.25.0.9:4140", + "traefik.access.body_sent.bytes": 85, + "traefik.access.duration": 13, + "traefik.access.frontend_name": "Host-api-wearerealitygames-com-2", + "traefik.access.geoip.city_name": "Warsaw", + "traefik.access.geoip.continent_name": "Europe", + "traefik.access.geoip.country_iso_code": "PL", + "traefik.access.geoip.location.lat": 52.25, + "traefik.access.geoip.location.lon": 21.0, + "traefik.access.geoip.region_iso_code": "PL-MZ", + "traefik.access.geoip.region_name": "Mazovia", + "traefik.access.http_version": "1.1", + "traefik.access.method": "GET", + "traefik.access.remote_ip": "94.254.131.115", + "traefik.access.request_count": 623112, + "traefik.access.response_code": "200", + "traefik.access.url": "/assets/52f8f2e711d235d76044799e/owners?oauth_token=ya29.GltABOXd_gtG-XVvYX2YhxXJiXVvbHRMXn9fbzc_mDfl2rDhqK0CrAlwuwwRWnNnEaMDwkmyI7-QGbRSB0Hzje2cc__FjTQ1iuiYTSIBaIPfxSWip5jx6zqvsVVo", + "traefik.access.user_agent.device": "Generic Smartphone", + "traefik.access.user_agent.name": "Other", + "traefik.access.user_agent.original": "Android", + "traefik.access.user_agent.os": "Android", + "traefik.access.user_agent.os_name": "Android", + "traefik.access.user_identifier": "-", + "traefik.access.user_name": "-" + }, + { + "@timestamp": "2018-01-19T10:01:02.000Z", + "event.dataset": "access", + "event.module": "traefik", + "input.type": "log", + "log.offset": 1267, + "traefik.access.backend_url": "http://172.25.0.6:4140", + "traefik.access.body_sent.bytes": 150, + "traefik.access.duration": 8, + "traefik.access.frontend_name": "Host-api-wearerealitygames-com-2", + "traefik.access.geoip.city_name": "Katowice", + "traefik.access.geoip.continent_name": "Europe", + "traefik.access.geoip.country_iso_code": "PL", + "traefik.access.geoip.location.lat": 50.2194, + "traefik.access.geoip.location.lon": 18.9737, + "traefik.access.geoip.region_iso_code": "PL-SL", + "traefik.access.geoip.region_name": "Silesia", + "traefik.access.http_version": "1.1", + "traefik.access.method": "GET", + "traefik.access.remote_ip": "89.64.35.193", + "traefik.access.request_count": 623114, + "traefik.access.response_code": "200", + "traefik.access.url": "/marketplace/tax?oauth_token=ya29.Gl0fBWnrJ7DcEU-tN-O3Vxn2XZVaz2I-hFTjP1JQzhYFVT-SKtlmo9hSzrx3n82LUwUxJ1s5lmU8U3Mc9gA_aCxBk49ShYEwvmYOWxJJyldDIJ7hY4us4LoiSY1OqAM", + "traefik.access.user_agent.device": "Generic Smartphone", + "traefik.access.user_agent.name": "Other", + "traefik.access.user_agent.original": "Android", + "traefik.access.user_agent.os": "Android", + "traefik.access.user_agent.os_name": "Android", + "traefik.access.user_identifier": "-", + "traefik.access.user_name": "-" + }, + { + "@timestamp": "2000-10-10T20:55:36.000Z", + "event.dataset": "access", + "event.module": "traefik", + "input.type": "log", + "log.offset": 1581, + "traefik.access.body_sent.bytes": 2326, + "traefik.access.http_version": "1.0", + "traefik.access.method": "GET", + "traefik.access.remote_ip": "127.0.0.1", + "traefik.access.response_code": "200", + "traefik.access.url": "/apache_pb.gif", + "traefik.access.user_identifier": "-", + "traefik.access.user_name": "frank" } ] \ No newline at end of file