docker-compose 部署logstash和filebeat
时间: 2023-10-28 13:06:55 浏览: 222
首先,您需要在本地安装Docker和Docker Compose。然后,按照以下步骤进行操作:
1. 创建一个新的文件夹来存储您的配置文件,并在其中创建两个文件:docker-compose.yml和logstash.conf。
```
mkdir my-logs
cd my-logs
touch docker-compose.yml
touch logstash.conf
```
2. 编辑docker-compose.yml文件,添加以下内容:
```
version: '3'
services:
logstash:
image: docker.elastic.co/logstash/logstash:7.10.1
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
ports:
- "5000:5000"
filebeat:
image: docker.elastic.co/beats/filebeat:7.10.1
volumes:
- /var/log:/var/log
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
command: filebeat -e
```
这将创建两个服务:logstash和filebeat。 logstash将运行在端口5000上,并将使用我们在第3步中创建的配置文件。 filebeat将监视/var/log目录并将日志发送到logstash。
3. 编辑logstash.conf文件,添加以下内容:
```
input {
tcp {
port => 5000
codec => json
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logs"
}
}
```
这将使logstash监听端口5000,并使用json编解码器解析输入消息。它还将输出到Elasticsearch,使用索引“logs”。
4. 编辑filebeat.yml文件,添加以下内容:
```
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.logstash:
hosts: ["logstash:5000"]
```
这将使filebeat监听/var/log目录中的所有日志文件,并将它们发送到logstash。
5. 运行docker-compose命令来启动服务:
```
docker-compose up
```
这将启动logstash和filebeat服务,并开始监视/var/log目录中的日志文件。您应该能够在Elasticsearch中看到日志。
阅读全文