Elastic Stack Docker 项目教程
1. 项目的目录结构及介绍
elastic-stack-docker-part-one/
├── filebeat_ingest_data/
├── logstash_ingest_data/
├── env/
├── LICENSE
├── README.md
├── docker-compose.yml
├── filebeat.yml
├── logstash.conf
└── metricbeat.yml
目录结构介绍
- filebeat_ingest_data/: 该目录用于存放Filebeat的输入数据。
- logstash_ingest_data/: 该目录用于存放Logstash的输入数据。
- env/: 该目录可能包含环境变量文件或其他配置文件。
- LICENSE: 项目的许可证文件,本项目使用Apache-2.0许可证。
- README.md: 项目的说明文件,包含项目的简介和使用说明。
- docker-compose.yml: Docker Compose的配置文件,用于定义和运行多个Docker容器。
- filebeat.yml: Filebeat的配置文件,用于定义Filebeat的行为和数据输入输出。
- logstash.conf: Logstash的配置文件,用于定义Logstash的输入、过滤和输出。
- metricbeat.yml: Metricbeat的配置文件,用于定义Metricbeat的行为和数据收集。
2. 项目的启动文件介绍
docker-compose.yml
docker-compose.yml
是Docker Compose的核心配置文件,用于定义和运行多个Docker容器。以下是该文件的主要内容:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
container_name: elasticsearch
environment:
- discovery.type=single-node
ports:
- "9200:9200"
- "9300:9300"
volumes:
- esdata:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.10.1
container_name: kibana
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
depends_on:
- elasticsearch
logstash:
image: docker.elastic.co/logstash/logstash:7.10.1
container_name: logstash
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
- elasticsearch
filebeat:
image: docker.elastic.co/beats/filebeat:7.10.1
container_name: filebeat
volumes:
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml
- ./filebeat_ingest_data:/usr/share/filebeat/data
depends_on:
- logstash
metricbeat:
image: docker.elastic.co/beats/metricbeat:7.10.1
container_name: metricbeat
volumes:
- ./metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
depends_on:
- elasticsearch
volumes:
esdata:
启动步骤
- 确保Docker和Docker Compose已安装。
- 在项目根目录下运行以下命令启动项目:
docker-compose up -d
- 项目启动后,可以通过
http://localhost:5601
访问Kibana界面。
3. 项目的配置文件介绍
filebeat.yml
filebeat.yml
是Filebeat的配置文件,用于定义Filebeat的行为和数据输入输出。以下是该文件的主要内容:
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/share/filebeat/data/*.log
output.logstash:
hosts: ["logstash:5044"]
logstash.conf
logstash.conf
是Logstash的配置文件,用于定义Logstash的输入、过滤和输出。以下是该文件的主要内容:
input {
beats {
port => 5044
}
}
filter {
# 过滤规则
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "filebeat-%{+YYYY.MM.dd}"
}
}
metricbeat.yml
metricbeat.yml
是Metricbeat的配置文件,用于定义Metricbeat的行为和数据收集。以下是该文件的主要内容:
metricbeat.modules:
- module: system
metricsets: ["cpu", "memory", "network"]
enabled: true
period: 10s
output.elasticsearch:
hosts: ["elasticsearch:9200"]
index: "metricbeat-%{+YYYY.MM.dd}"
通过以上配置文件,可以实现Elastic Stack在Docker环境中的快速部署和使用。