OceanBase教程FG143-OceanBase审计日志分析
目录大纲
Part01-基础概念与理论知识
1.1 审计日志概述
审计日志是 OceanBase 提供的一种安全机制,用于记录数据库的操作行为,包括用户登录、SQL 执行、权限变更等。审计日志可以帮助运维人员追踪和分析数据库操作,发现潜在的安全问题。
1.2 审计日志内容
审计日志的内容包括:
- 操作时间:操作发生的时间
- 操作用户:执行操作的用户
- 操作类型:登录、查询、更新、删除等
- 操作对象:表、视图、存储过程等
- 操作语句:执行的 SQL 语句
- 操作结果:成功或失败
- 客户端信息:IP 地址、端口等
Part02-生产环境规划与建议
2.1 审计策略规划
审计策略规划:
- 审计范围:选择需要审计的操作类型和对象
- 审计级别:根据安全要求选择审计级别
- 审计频率:设置审计日志的生成频率
- 审计保留:设置审计日志的保留期限
2.2 存储规划
存储规划:
- 存储空间:根据审计日志的生成量规划存储空间
- 存储介质:使用 SSD 存储,提高读写性能
- 存储方式:考虑使用外部存储,如 ELK Stack
- 备份策略:定期备份审计日志,防止丢失
Part03-生产环境项目实施方案
3.1 审计日志配置
配置审计日志:
obclient -h192.168.1.10 -P2881 -uroot@sys -p
— 启用审计日志
ALTER SYSTEM SET audit_enabled = ‘TRUE’;
— 设置审计级别
ALTER SYSTEM SET audit_level = ‘ALL’;
— 设置审计日志路径
ALTER SYSTEM SET audit_log_dir = ‘/ob/log/audit’;
— 设置审计日志保留时间(天)
ALTER SYSTEM SET audit_log_expire_time = 30;
— 查看审计日志配置
SHOW PARAMETERS LIKE ‘audit%’;
3.2 审计日志采集
采集审计日志:
# 创建审计日志采集脚本
vim /ob/scripts/audit_collector.sh
#!/bin/bash
# audit_collector.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
#!/bin/bash
audit_log_dir=”/ob/log/audit”
collect_dir=”/ob/data/audit_collected”
mkdir -p $collect_dir
cp $audit_log_dir/*.log $collect_dir/
gzip $collect_dir/*.log
echo “审计日志采集完成”
# 设置脚本权限
chmod +x /ob/scripts/audit_collector.sh
# 添加定时任务(每天凌晨 1 点执行)
crontab -e
0 1 * * * /ob/scripts/audit_collector.sh
3.3 审计日志分析工具
使用 ELK Stack 分析审计日志:
# 安装 ELK Stack
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.8.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.8.0-linux-x86_64.tar.gz
# 配置 Logstash 收集审计日志
vim /ob/app/logstash/config/audit.conf
input {
file {
path => “/ob/log/audit/*.log”
start_position => “beginning”
}
}
filter {
grok {
match => {
“message” => “%{TIMESTAMP_ISO8601:timestamp} \[%{DATA:user}\] \[%{DATA:client_ip}\] \[%{DATA:operation}\] \[%{DATA:object}\] \[%{DATA:result}\] %{GREEDYDATA:sql}”
}
}
}
output {
elasticsearch {
hosts => [“localhost:9200”]
index => “oceanbase-audit-%{+YYYY.MM.dd}”
}
}
Part04-生产案例与实战讲解
4.1 审计日志配置实战
配置审计策略:
obclient -h192.168.1.10 -P2881 -uroot@sys -p
— 创建审计策略
CREATE AUDIT POLICY audit_all_actions
PRIVILEGES ALL
ACCESS ALL
ACTION ALL;风哥提示:。
— 应用审计策略到用户
ALTER AUDIT POLICY audit_all_actions
ADD USERS ‘fgedu’;
— 查看审计策略
SHOW AUDIT POLICIES;
4.2 审计日志分析实战
分析审计日志:
# 使用 Kibana 分析审计日志
1. 登录 Kibana 控制台:http://192.168.1.10:5601
2. 创建索引模式:oceanbase-audit-*
3. 查看审计日志仪表板
4. 分析用户登录情况
5. 分析 SQL 执行情况
6. 分析权限变更情况
# 使用 SQL 分析审计日志
obclient -h192.168.1.10 -P2881 -uroot@sys -p
SELECT * FROM oceanbase.__all_audit_log WHERE user_name = ‘fgedu’ ORDER BY timestamp DESC LIMIT 100;
Part05-风哥经验总结与分享
5.1 常见问题与解决方案
- ,学习交流加群风哥微信: itpux-com。
- 问题:审计日志过大,占用存储空间
- 解决方案:设置合理的审计保留时间,定期清理过期日志,使用外部存储
- 问题:审计日志分析困难
- 解决方案:使用 ELK Stack 等工具进行分析,建立审计日志仪表板
5.2 性能优化建议
- 根据业务需求和安全要求,合理设置审计级别和范围
- 使用外部存储(如 ELK Stack)存储和分析审计日志
- 定期清理过期的审计日志,释放存储空间
- 建立审计日志分析机制,及时发现安全问题
- 结合监控系统,实现审计日志的实时监控
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
