Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filebeat coredns module #11200

Merged
merged 24 commits into from
Mar 26, 2019
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6199c1e
Add coredns module
Mar 6, 2019
20dc52f
Add coredns module
Mar 6, 2019
3440037
Add fileset kubernetes for coredns module to handle Kubernetes deploy…
Mar 7, 2019
2229a53
Add fileset kubernetes for coredns module to support Kubernetes deplo…
Mar 7, 2019
475da9b
Update README and docs
Mar 9, 2019
469c013
Update docs for coredns
Mar 9, 2019
6f0c4f8
Merge with master
Mar 11, 2019
ba43d40
Add Coredns Overview Dashboard
Mar 11, 2019
27e36d8
Update dashboard to add NXDOMAIN visualization
Mar 12, 2019
a1b051c
Update fields
Mar 12, 2019
a520e02
Merge remote-tracking branch 'upstream/master' into filebeat-coredns-…
Mar 12, 2019
af1ed61
Merge remote-tracking branch 'upstream/master' into filebeat-coredns-…
Mar 12, 2019
c1aeaea
Rebuild filebeat.test, so it generates ecs version 1.0.0 instead of 1…
Mar 12, 2019
a93a8cc
Update CHANGELOG.next.asciidoc
Mar 15, 2019
fc0bddf
Remove changes to kubernetes fields.yml since it has been addressed i…
Mar 15, 2019
a25bc3d
Fix pipeline to support bracketed IPv6 address and address some bugs.…
Mar 19, 2019
717d079
Merge branch 'master' into filebeat-coredns-module
Mar 19, 2019
27d35a3
Merge branch 'master' into filebeat-coredns-module
Mar 22, 2019
f32bc05
Merge two filesets into one
Mar 22, 2019
bcaa67a
Fix fileset name in README
Mar 22, 2019
a3b3a31
use message field for coredns part of the original log
Mar 22, 2019
ae6ba52
Merge branch 'master' into filebeat-coredns-module
Mar 25, 2019
4eb67b7
Merge with master and update CHANGELOG.next.asciidoc
Mar 25, 2019
4b406c6
Fix an indentation error in README
Mar 25, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add fileset kubernetes for coredns module to support Kubernetes deplo…
…yment
Ray Qiu committed Mar 7, 2019
commit 2229a531b284036c64b8d7b63e68bcbc8d2c9339
2 changes: 1 addition & 1 deletion x-pack/filebeat/filebeat.reference.yml
Original file line number Diff line number Diff line change
@@ -89,7 +89,7 @@ filebeat.modules:
enabled: true
# Fileset for Kubernetes deployment
kubernetes:
enabled: false
enabled: true

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
2 changes: 1 addition & 1 deletion x-pack/filebeat/module/coredns/_meta/config.yml
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
enabled: true
# Fileset for Kubernetes deployment
kubernetes:
enabled: false
enabled: true

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
6 changes: 3 additions & 3 deletions x-pack/filebeat/module/coredns/_meta/fields.yml
Original file line number Diff line number Diff line change
@@ -58,7 +58,7 @@
description: >
dnssec flag
- name: kubernetes.replicaset.name
type: keyword
- name: kubernetes.replicaset
type: object
description: >
Name of Kubernetes replica set
Kubernetes replica set
2 changes: 1 addition & 1 deletion x-pack/filebeat/module/coredns/fields.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions x-pack/filebeat/module/coredns/kubernetes/config/coredns.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
type: log
paths:
{{ range $i, $path := .paths }}
- {{$path}}
{{ end }}
tags: {{.tags}}
json.keys_under_root: true
processors:
- dissect:
tokenizer: "%{timestamp} [%{coredns.logging_level}] %{source.address}:%{source.port} - %{coredns.id} \"%{coredns.query.type} %{coredns.query.class} %{coredns.query.name} %{network.transport} %{coredns.query.size} %{coredns.dnssec_ok} %{bufsize}\" %{coredns.response.code} %{coredns.response.flags} %{coredns.response.size} %{temp.duration}s"
field: "message"
target_prefix: ""

- drop_fields:
fields: [bufsize, time]
65 changes: 65 additions & 0 deletions x-pack/filebeat/module/coredns/kubernetes/ingest/pipeline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"description": "Pipeline for normalizing Kubernetes coredns logs",
"processors": [
{
"script": {
"lang": "painless",
"source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = ctx['timestamp']; ctx.remove('timestamp');",
"ignore_failure" : true
}
},
{
"set": {
"field": "source.ip",
"value": "{{source.address}}",
"if": "ctx.source?.address != null"
}
},
{
"convert" : {
"field" : "temp.duration",
"type": "double"
}
},
{
"convert" : {
"field" : "coredns.query.size",
"type": "long"
}
},
{
"convert" : {
"field" : "coredns.response.size",
"type": "long"
}
},
{
"split": {
"field": "coredns.response.flags",
"separator": ","
}
},
{
"script": {
"lang": "painless",
"source": "ctx.event.duration = Math.round(ctx.temp.duration * params.scale)",
"params": {
"scale": 1000000000
},
"if": "ctx.temp?.duration != null"
}
},
{
"remove": {
"field": "temp.duration",
"ignore_missing": true
}
}
],
"on_failure" : [{
"set" : {
"field" : "error.message",
"value" : "{{ _ingest.on_failure_message }}"
}
}]
}
11 changes: 11 additions & 0 deletions x-pack/filebeat/module/coredns/kubernetes/manifest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module_version: 1.0

var:
- name: paths
default:
- /var/lib/docker/containers/*/*-json.log
- name: tags
default: [coredns]

ingest_pipeline: ingest/pipeline.json
input: config/coredns.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "message": "2019-02-12T00:27:28.903Z [INFO] 172.17.0.4:36413 - 21583 \"A IN httpbin.org.cluster.local. udp 43 false 512\" NXDOMAIN qr,rd,ra 136 0.000102078s", "stream": "stdout", "time": "2019-02-12T00:27:28.903433597Z", "kubernetes": { "container": { "name": "coredns" }, "node": { "name": "minikube" }, "pod": { "uid": "d57d545e-2a9d-11e9-995f-08002730e0dc", "name": "coredns-86c58d9df4-jwhsg" }, "namespace": "kube-system", "replicaset": { "name": "coredns-86c58d9df4" }, "labels": { "pod-template-hash": "86c58d9df4", "k8s-app": "kube-dns" } } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
[
{
"@timestamp": "2019-02-12T00:27:28.903Z",
"coredns.dnssec_ok": "false",
"coredns.id": "21583",
"coredns.logging_level": "INFO",
"coredns.query.class": "IN",
"coredns.query.name": "httpbin.org.cluster.local.",
"coredns.query.size": 43,
"coredns.query.type": "A",
"coredns.response.code": "NXDOMAIN",
"coredns.response.flags": [
"qr",
"rd",
"ra"
],
"coredns.response.size": 136,
"ecs.version": "1.0.0-beta2",
"event.dataset": "coredns.kubernetes",
"event.duration": 102078,
"event.module": "coredns",
"fileset.name": "kubernetes",
"input.type": "log",
"kubernetes.container.name": "coredns",
"kubernetes.labels.k8s-app": "kube-dns",
"kubernetes.labels.pod-template-hash": "86c58d9df4",
"kubernetes.namespace": "kube-system",
"kubernetes.node.name": "minikube",
"kubernetes.pod.name": "coredns-86c58d9df4-jwhsg",
"kubernetes.pod.uid": "d57d545e-2a9d-11e9-995f-08002730e0dc",
"kubernetes.replicaset.name": "coredns-86c58d9df4",
"log.offset": 0,
"message": "2019-02-12T00:27:28.903Z [INFO] 172.17.0.4:36413 - 21583 \"A IN httpbin.org.cluster.local. udp 43 false 512\" NXDOMAIN qr,rd,ra 136 0.000102078s",
"network.transport": "udp",
"service.type": "coredns",
"source.address": "172.17.0.4",
"source.ip": "172.17.0.4",
"source.port": "36413",
"stream": "stdout",
"tags": [
"coredns"
]
}
]
2 changes: 1 addition & 1 deletion x-pack/filebeat/modules.d/coredns.yml.disabled
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
enabled: true
# Fileset for Kubernetes deployment
kubernetes:
enabled: false
enabled: true

# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.