Filebeat7.7.1 Docker配置
在现代的应用开发中,日志记录是非常重要的。它可以帮助我们了解应用程序的运行情况、故障排除和性能优化。Filebeat是一个轻量级的开源日志文件数据收集器,可以将日志从多个来源发送到Elasticsearch、Logstash或Kafka等后端。
在本篇文章中,我们将学习如何在Docker环境中配置和使用Filebeat7.7.1。
步骤1:准备工作
在开始之前,我们需要确保已经安装了Docker和Docker Compose。如果还没有安装,请参考官方文档进行安装。
步骤2:创建Docker Compose文件
在项目的根目录下创建一个名为docker-compose.yml
的文件,并添加以下内容:
version: "3"
services:
filebeat:
image: docker.elastic.co/beats/filebeat:7.7.1
volumes:
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
restart: always
上述配置文件定义了一个名为filebeat
的服务,使用了Elastic官方提供的Filebeat镜像。我们将在后续步骤中配置Filebeat的具体行为。
步骤3:创建Filebeat配置文件
在项目的根目录下创建一个名为filebeat.yml
的文件,并添加以下内容:
filebeat.inputs:
- type: log
paths:
- /var/lib/docker/containers/*/*.log
output.elasticsearch:
hosts: ["elasticsearch:9200"]
上述配置文件定义了一个日志输入和一个Elasticsearch输出。我们使用/var/lib/docker/containers/*/*.log
作为日志输入路径,它将收集所有Docker容器的日志文件。
步骤4:启动Filebeat容器
使用以下命令启动Filebeat容器:
docker-compose up -d
这将启动一个后台运行的Filebeat容器,并开始收集日志。
步骤5:验证配置
要验证Filebeat是否正常工作,可以使用以下命令查看Filebeat的日志输出:
docker-compose logs -f filebeat
如果一切正常,你将看到类似下面的输出:
2020-06-25T10:12:30.123Z INFO instance/beat.go:610 Home path: [/usr/share/filebeat] Config path: [/usr/share/filebeat] Data path: [/usr/share/filebeat/data] Logs path: [/usr/share/filebeat/logs]
2020-06-25T10:12:30.124Z INFO instance/beat.go:618 Beat ID: 12345678-1234-1234-1234-1234567890ab
2020-06-25T10:12:30.124Z INFO [api] api/server.go:62 Starting stats endpoint
2020-06-25T10:12:30.125Z INFO [api] api/server.go:64 Metrics endpoint listening on: 127.0.0.1:5066
2020-06-25T10:12:30.125Z INFO [beat] instance/beat.go:941 Process info {"system_info": {"process": {"capabilities": {"inheritable":null,"permitted":null,"effective":null,"bounding":null,"ambient":null,"added":[],"removed":[]},"cwd":"/usr/share/filebeat","exe":"/usr/share/filebeat/filebeat","name":"filebeat","pid":1,"ppid":0,"seccomp":null,"start_time":"2020-06-25T10:12:29.070Z"}}}
2020-06-25T10:12:30.125Z INFO instance/beat.go:297 Setup Beat: filebeat; Version: 7.7.1
2020-06-25T10:12:30.125Z INFO [index-management] idxmgmt/std.go:184 Set output.elasticsearch.index to 'filebeat-7.7.1' as ILM is enabled.
2020-06-25T10:12:30.125Z INFO eslegclient/connection.go:97 elasticsearch url: http://elasticsearch:9200
...
总结
通过Docker容器运行Filebeat是非常方便和灵活的。我们通过一个简单