我有以下基础设施:
ELK 安装为 docker 容器,每个容器都在自己的容器中。在运行 CentOS 的虚拟机上,我安装了 nginx Web 服务器和 Filebeat 来收集日志。我在 filebeat 中启用了 nginx 模块。
> filebeat modules enable nginx
Run Code Online (Sandbox Code Playgroud)
在开始使用 filebeat 之前,我使用 elasticsearch 进行了设置,并在 kibana 上安装了它的仪表板。
配置文件(我已经从文件中删除了不必要的注释):
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.kibana:
host: "172.17.0.1:5601"
output.elasticsearch:
hosts: ["172.17.0.1:9200"]
Run Code Online (Sandbox Code Playgroud)
然后在elasticsearch和kibana中进行设置
> filebeat setup -e --dashboards
Run Code Online (Sandbox Code Playgroud)
这工作正常。事实上,如果我保持这种方式一切正常。我可以使用 kibana 中收集的日志,并使用我通过上述命令安装的 NGinX 的仪表板。
我想将日志传递给 Logstash。这是我的 Logstash 配置使用以下管道:
- pipeline.id: filebeat
path.config: "config/filebeat.conf"
Run Code Online (Sandbox Code Playgroud)
文件节拍.conf:
input {
beats {
port => 5044
}
}
#filter {
# mutate {
# add_tag => ["filebeat"]
# …
Run Code Online (Sandbox Code Playgroud)