Use a better structure

This commit is contained in:
Baohua Yang
2026-02-09 09:32:05 -08:00
parent fdb879dcf2
commit e669ee0fe8
167 changed files with 2462 additions and 2462 deletions

View File

@@ -1,8 +1,8 @@
# 日志管理
## 日志管理
在容器化环境中日志管理比传统环境更为复杂容器是短暂的意味着容器内的日志文件可能会随着容器的销毁而丢失因此我们需要一种集中式的日志管理方案来收集存储和分析容器日志
## Docker 日志驱动
### Docker 日志驱动
Docker 提供了多种日志驱动Log Driver机制允许我们将容器日志转发到不同的后端
@@ -15,7 +15,7 @@ Docker 提供了多种日志驱动Log Driver机制允许我们将容器
* `gelf`: 支持 GELF 协议的日志后端 Graylog
* `awslogs`: 发送到 Amazon CloudWatch Logs
## 日志管理方案
### 日志管理方案
对于大规模的容器集群我们通常会采用 EFK (Elasticsearch + Fluentd + Kibana) ELK (Elasticsearch + Logstash + Kibana) 方案

View File

@@ -1,8 +1,8 @@
# ELK/EFK 堆栈
## ELK/EFK 堆栈
ELK (Elasticsearch, Logstash, Kibana) 是目前业界最流行的开源日志解决方案而在容器领域由于 Fluentd 更加轻量级且对容器支持更好EFK (Elasticsearch, Fluentd, Kibana) 组合也变得非常流行
## 方案架构
### 方案架构
我们将采用以下架构
@@ -11,9 +11,9 @@ ELK (Elasticsearch, Logstash, Kibana) 是目前业界最流行的开源日志解
3. **Elasticsearch**: 存储从 Fluentd 接收到的日志数据
4. **Kibana**: Elasticsearch 读取数据并进行可视化展示
## 部署流程
### 部署流程
### 1. 编写 docker-compose.yml
#### 1. 编写 docker-compose.yml
```yaml
version: '3'
@@ -68,7 +68,7 @@ networks:
logging:
```
### 2. 配置 Fluentd
#### 2. 配置 Fluentd
创建 `fluentd/conf/fluent.conf`:
@@ -99,7 +99,7 @@ networks:
</match>
```
### 3. 配置应用容器使用 fluentd 驱动
#### 3. 配置应用容器使用 fluentd 驱动
启动一个测试容器指定日志驱动为 `fluentd`:
@@ -114,7 +114,7 @@ docker run -d \
**注意**: 确保 `fluentd` 容器已经启动并监听在 `localhost:24224`在生产环境中如果你是在不同机器上需要将 `localhost` 替换为运行 fluentd 的主机 IP
### 4. Kibana 中查看日志
#### 4. Kibana 中查看日志
1. 访问 `http://localhost:5601`
2. 进入 **Management** -> **Kibana** -> **Index Patterns**
@@ -122,6 +122,6 @@ docker run -d \
4. 选择 `@timestamp` 作为时间字段
5. **Discover** 页面你就能看到 Nginx 容器的日志了
## 总结
### 总结
通过 Docker 的日志驱动机制结合 ELK/EFK 强大的收集和分析能力我们可以轻松构建一个能够处理海量日志的监控平台这对于排查生产问题至关重要