为filebeat创建管道

snz8szmq  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(495)

我已启用filebeat系统模块:

filebeat modules enable system
filebeat setup --pipelines --modules system
filebeat setup --dashboards
systemctl restart filebeat

这就是logstash要说的 pipeline with id [filebeat-7.9.0-system-auth-pipeline] does not exist 这是logstash负责的部分:

output {
    if [@metadata][pipeline] {
        elasticsearch {
            hosts => "https://localhost:9200"
            manage_template => false
            cacert => "/etc/elasticsearch/estackcap12extract.crt"
            ssl => true
            ssl_certificate_verification => false
            index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
            pipeline => "%{[@metadata][pipeline]}"
            user => "elastic"
            password => "*secret*"
        }
    } else {
    ...

我需要为此手动创建管道吗?我做错什么了吗?我能找到的最好的是这个文件页,但它似乎是为自定义的东西,这是一个现成的模块,所以我不知道有多相关。

n53p2ov0

n53p2ov01#

问题是你的filebeat不能直接连接到es,而只能通过logstash。这是一个已知的问题,但由于*beat只能作为单个输出,因此需要执行以下技巧。
您需要做的是取消对 elasticsearch 仅在运行setup命令时输出,以便filebeat可以安装摄取管道。
完成后,您需要再次注解掉该输出,并在启动filebeat for real之前取消对logstash的注解。
如果不想修改配置文件,还有另一种方法,将配置变量传递给 filebeat setup ,如下所示:

filebeat setup --pipelines --modules system \
    -E output.logstash.enabled=false \
    -E output.elasticsearch.username="elastic" \
    -E output.elasticsearch.password="*secret*" \
    -E 'output.elasticsearch.ssl.certificate_authorities="/etc/elasticsearch/estackcap12extract.crt"' \
    -E output.elasticsearch.hosts="https://localhost:9200"

相关问题