
1) 【一句话结论】为满足PB级日志存储、实时威胁告警及等保2.0合规,设计“分布式时序数据库(InfluxDB)+ 数据湖(Hudi)”双架构系统,分片按“时间(天)+ 威胁主题”双维度,支持热点数据动态扩容;时间索引用B+树、主题索引用哈希分片,并定期维护;字段级脱敏通过配置中心管理,敏感字段(IP、设备ID)采用AES-256加密,密钥由KMS管理,确保数据安全与合规。
2) 【原理/概念讲解】老师讲解时,先明确需求:PB级存储意味着海量日志,实时查询要求秒级响应,等保2.0需满足数据分类分级、加密、访问控制等。架构选型:时序数据库(如InfluxDB)专为时间序列设计,支持高并发写入(PB级)和秒级查询,适合威胁告警的实时处理;数据湖(如Hudi)用于长期存储,支持复杂分析(如历史趋势)。分片策略:时间维度按天分片(如2024-01-01的日志全在一个分片),避免单天压力;主题维度按威胁类型分片(病毒、钓鱼、恶意软件),分散热点。动态扩容:当某天病毒告警激增,系统通过负载均衡器检测到该分片负载过高,自动增加该天对应的分片,并重新分配数据,确保性能。索引设计:时间索引用B+树结构,快速支持时间范围查询(如“最近24小时告警”);主题索引用哈希分片,查询时快速定位主题分片(如病毒告警),提升类型查询效率。定期维护:合并索引碎片,防止查询性能下降。数据脱敏:字段级规则引擎,配置中心管理规则(如IP正则替换为“...”),规则更新时,处理新数据(增量脱敏),记录操作日志(审计)。等保2.0:敏感字段(IP、设备ID)用AES-256加密,密钥由KMS管理;访问控制(RBAC,运维人员只能访问脱敏后数据);审计日志(记录脱敏操作时间、操作人、字段)。
3) 【对比与适用场景】
| 方案 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 分布式时序数据库(InfluxDB) | 专为时间序列数据设计的分布式数据库 | 高写入吞吐(PB级)、秒级实时查询、时间聚合、自动压缩 | 实时威胁告警、按时间范围查询(如最近24小时) | 不适合复杂分析,查询能力有限 |
| 数据湖(Hudi/Hive) | 存储海量结构化/非结构化数据的分布式系统 | 批量写入、支持SQL、复杂分析、可扩展 | 长期日志存储、大数据分析、历史趋势报表 | 写入延迟较高,不适合实时查询 |
| 分片策略 | 时间分片(按天) | 按时间维度分片,适合时间范围查询 | 避免单天压力,支持按天查询 | 热点数据需结合主题分片 |
| 主题分片(按威胁类型) | 按主题维度分片,适合按类型查询 | 分散不同类型日志,提升查询效率 | 病毒、钓鱼等不同威胁类型 | 热点主题需动态扩容 |
索引设计对比:
4) 【示例】
分片动态扩容伪代码(Python):
def dynamic_shard_expansion(log_type, timestamp, load_threshold=0.8):
day = timestamp.strftime("%Y-%m-%d")
topic = log_type
current_shard = f"{day}_{topic}"
# 检测负载
load = get_shard_load(current_shard)
if load > load_threshold:
# 动态增加分片
new_shard = f"{day}_{topic}_2"
add_shard(new_shard)
# 重新分配数据
redistribute_data(current_shard, new_shard)
return current_shard
索引合并示例(InfluxDB):
-- 合并时间索引碎片
CREATE INDEX time_index ON logs (time) WHERE time >= '2024-01-01' AND time < '2024-01-02'
OPTIMIZE time_index
数据脱敏规则更新处理伪代码:
def update_desensitize_rules(new_rules):
# 1. 更新配置中心规则
update_config_center_rules(new_rules)
# 2. 处理新数据(增量脱敏)
new_logs = get_new_logs()
for log in new_logs:
desensitized_log = desensitize_log(log, new_rules)
save_desensitized_log(desensitized_log)
# 3. 记录操作日志
log_audit("desensitize_rules_updated", new_rules)
5) 【面试口播版答案】(约90秒)
“面试官您好,针对360安全日志存储与分析系统,我设计的方案核心是“分布式时序数据库(InfluxDB)+ 数据湖(Hudi)”双架构。时序数据库负责实时威胁告警的存储与秒级查询(比如按时间范围查询最近24小时病毒告警),支持PB级时间序列数据的高并发写入;数据湖用于长期存储海量日志,支持复杂分析(如历史趋势报表)。分片策略按“时间(天)+ 威胁主题”双维度,避免单点压力,且支持热点数据动态扩容(当某天日志量激增,自动增加分片并重新分配数据)。索引设计包括时间索引(B+树,快速范围查询)和主题索引(哈希分片,快速按类型查询),并定期合并碎片提升性能。数据脱敏通过字段级规则引擎(配置中心管理),识别IP、设备ID等敏感字段,满足等保2.0要求(敏感字段用AES-256加密,密钥由KMS管理,访问控制基于角色,审计日志记录操作)。这样既满足PB级存储和实时查询需求,又符合等保2.0的安全合规。”
6) 【追问清单】
7) 【常见坑/雷区】