mvasilenko
(Mykhailo Vasylenko)
June 25, 2018, 10:09pm
1
Hello,
I'm interested in creating custom Filebeat module, to parse our app log,
so I've followed this guide
https://www.elastic.co/elasticon/conf/2018/sf/build-your-own-filebeat-module ,
simulated pipeline, grok patterns wokring fine,
but no custom fields shows in kibana, what I'm missing here?
i'm using filebeat autodiscover feature for docker logs,
and other modules, like nginx, working fine, but not mine custom one.
filebeat.autodiscover:
providers:
- type: docker
templates:
- condition.or:
- contains.docker.container.image: "myimage"
config:
- module: mymodule
access:
prospector:
type: docker
containers.stream: stdout
containers.ids:
- "${data.docker.container.id}"
error:
prospector:
type: docker
containers.stream: stderr
containers.ids:
- "${data.docker.container.id}"
pierhugues
(Pier-Hugues Pellerin)
June 26, 2018, 3:05pm
2
@mvasilenko Did you try using your module outside the autodiscover context using the log input instead of the docker input?
mvasilenko
(Mykhailo Vasylenko)
June 29, 2018, 6:48am
3
@pierhugues thank you for the answer, i've messed with stderr/stdout,
but the question remains, what exact actions do i need to perform after generating/editing
custom module fields, to load it into kibana/elasticsearch?
is it sufficient to update /etc/filebeat/fields.yml and /usr/share/filebeat/module/mymodule?
i'm using ubuntu 16
pierhugues
(Pier-Hugues Pellerin)
June 29, 2018, 12:48pm
4
It should be sufficient to do so.
I would still use this guide To make sure you can easily test your new module.
mvasilenko
(Mykhailo Vasylenko)
July 2, 2018, 9:38pm
5
@pierhugues ok, i've tested module by adding pipeline to ES
curl -H 'Content-Type: application/json' -XPUT localhost:9200/_ingest/pipeline/filebeat-6.3.0-mymodule-backend -d@/usr/share/filebeat/module/mymodule/backend/ingest/pipeline.json
and simulating in kibana dev tools
POST _ingest/pipeline/filebeat-6.3.0-mymodule-backend/_simulate
{
"docs" : [
{ "_source": {
"message": "[2018-07-02 21:06:57 +0000] [INFO] message"} }
]
}
the output looks good, now my idea is to combine docker autodiscovery feature with my custom module for specific containers, few questions arise
do i need to specify anything in filebeat.yml pipeline section? or it is already applied at autodiscovery/mymodule level
what files need to be copied to remote hosts, in addition to standard filebeat package?
mvasilenko
(Mykhailo Vasylenko)
July 3, 2018, 12:51pm
6
Update:
looks like adding filebeat.overwrite_pipelines: true
to /etc/filebeat/filebeat.yml
fixes this issue
another thing i can add - you must to test pipeline like this, not via ES pipeline simulate api
~/go/src/github.com/elastic/beats/filebeat $ ./scripts/tester/tester -elasticsearch https://elk:9200 \
-pipeline /usr/share/filebeat/module/mymodule/backend/ingest/pipeline.json \
-logfile sample.log --simulate.verbose --verbose
Now I'm looking to adopt this model for logging in k8s, any hints?
Thank you
system
(system)
Closed
July 31, 2018, 1:02pm
7
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.