dns clickhouse改造
This commit is contained in:
@@ -139,3 +139,51 @@ flowchart LR
|
||||
- 通常 1 分钟内自动刷新生效。
|
||||
- 若要立即生效:重启 `edge-api`,并在需要时重启 `edge-node`、`fluent-bit`。
|
||||
|
||||
---
|
||||
|
||||
## 8. DNS 日志与 HTTP 策略联动(新增)
|
||||
|
||||
从当前版本开始,DNS 访问日志与 HTTP 访问日志共享同一套公用策略语义(`writeTargets`):
|
||||
|
||||
- `WriteMySQL=true`:DNS 节点上报 API,API 写入 MySQL 分表。
|
||||
- `WriteClickHouse=true`:DNS 节点写本地 JSONL,Fluent Bit 采集写入 ClickHouse `dns_logs_ingest`。
|
||||
- 双开即双写;双关即不写(仅保留内存处理,不入库)。
|
||||
|
||||
### 8.1 DNS 写入链路
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[EdgeDNS 产生日志] --> B{writeTargets}
|
||||
B -->|MySQL=true| C[CreateNSAccessLogs]
|
||||
C --> D[(MySQL edgeNSAccessLogs_YYYYMMDD)]
|
||||
B -->|ClickHouse=true| E[/var/log/edge/edge-dns/access.log]
|
||||
E --> F[Fluent Bit]
|
||||
F --> G[(ClickHouse dns_logs_ingest)]
|
||||
```
|
||||
|
||||
### 8.2 DNS 查询链路
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Q[/ns/clusters/accessLogs] --> R{策略是否启用ClickHouse且CH可用}
|
||||
R -->|是| CH[(dns_logs_ingest)]
|
||||
R -->|否| M{策略是否启用MySQL}
|
||||
CH -->|查询失败| M
|
||||
M -->|是| MY[(MySQL edgeNSAccessLogs_YYYYMMDD)]
|
||||
M -->|否| E[返回空列表]
|
||||
```
|
||||
|
||||
### 8.3 组合场景说明(DNS)
|
||||
|
||||
| 策略 | 写入 | 读取 |
|
||||
|------|------|------|
|
||||
| 仅 MySQL | API -> MySQL | MySQL |
|
||||
| 仅 ClickHouse | 本地文件 -> Fluent Bit -> ClickHouse | ClickHouse |
|
||||
| MySQL + ClickHouse | API -> MySQL + 本地文件 -> Fluent Bit -> ClickHouse | 优先 ClickHouse,失败回退 MySQL |
|
||||
|
||||
### 8.4 DNS 相关必须配置
|
||||
|
||||
1. `EdgeAPI` 配置 ClickHouse 连接(仅读 CH 时必须)。
|
||||
2. `deploy/fluent-bit/fluent-bit.conf` 已包含 DNS 输入:`/var/log/edge/edge-dns/*.log`。
|
||||
3. ClickHouse 已创建 `dns_logs_ingest` 表。
|
||||
4. EdgeDNS 运行用户对 `EDGE_DNS_LOG_DIR`(默认 `/var/log/edge/edge-dns`)有写权限。
|
||||
|
||||
Reference in New Issue
Block a user