Docker Elastic Stack 项目教程
1. 项目的目录结构及介绍
项目的目录结构如下:
├── env
├── docker-compose.yml
├── filebeat.yml
├── logstash.conf
└── metricbeat.yml
目录结构介绍
env
: 存放环境变量文件。docker-compose.yml
: Docker Compose 配置文件,用于定义和运行多个 Docker 容器的服务。filebeat.yml
: Filebeat 配置文件,用于收集和转发日志数据。logstash.conf
: Logstash 配置文件,用于处理和转发日志数据。metricbeat.yml
: Metricbeat 配置文件,用于收集和转发系统和服务指标数据。
2. 项目的启动文件介绍
docker-compose.yml
docker-compose.yml
文件是 Docker Compose 的核心配置文件,定义了如何启动和管理多个 Docker 容器。以下是该文件的主要内容:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: elasticsearch
environment:
- discovery.type=single-node
ports:
- "9200:9200"
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.10.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
logstash:
image: docker.elastic.co/logstash/logstash:7.10.0
container_name: logstash
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
- elasticsearch
filebeat:
image: docker.elastic.co/beats/filebeat:7.10.0
container_name: filebeat
volumes:
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml
- /var/log:/var/log
depends_on:
- logstash
metricbeat:
image: docker.elastic.co/beats/metricbeat:7.10.0
container_name: metricbeat
volumes:
- ./metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
depends_on:
- elasticsearch
volumes:
esdata:
启动命令
要启动项目,请在终端中运行以下命令:
docker-compose up -d
3. 项目的配置文件介绍
filebeat.yml
filebeat.yml
文件用于配置 Filebeat,收集和转发日志数据。以下是该文件的主要内容:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.logstash:
hosts: ["logstash:5044"]
logstash.conf
logstash.conf
文件用于配置 Logstash,处理和转发日志数据。以下是该文件的主要内容:
input {
beats {
port => 5044
}
}
filter {
# 添加过滤器配置
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
metricbeat.yml
metricbeat.yml
文件用于配置 Metricbeat,收集和转发系统和服务指标数据。以下是该文件的主要内容:
metricbeat.modules:
- module: system
metricsets:
- cpu
- memory
- network
enabled: true
period: 10s
output.elasticsearch:
hosts: ["elasticsearch:9200"]
以上是 Docker Elastic Stack