首页 > 解决方案 > DB2Audit 工具不能正常工作

问题描述

我正在使用 db2audit 工具来监控数据库和实例活动。我配置了数据路径,但数据库的实时日志在该位置不可用。

而且我还没有为数据库配置审计策略,但它正在生成实时日志,并且 db2audit 存档也适用于该数据库。我不知道使用审计策略分配和审计数据库的用例是什么。

所以我的问题是,1. 为什么没有在数据路径中生成实时日志。(由于数据路径中没有活动日志文件,db2audit 归档也无法工作) 2. db2audit 归档工作并且即使没有配置 db2audit 策略也会生成活动日志文件。是什么原因。db2audit start 是否会开始对所有数据库进行审计而不考虑审计策略?

db2audit 描述:

DB2 审计设置:

审核活动:“真”

记录审计事件:“BOTH”

日志检查事件:“BOTH”

记录对象维护事件:“BOTH”

记录安全维护事件:“BOTH”

记录系统管理员事件:“BOTH”

记录验证事件:“BOTH”

记录上下文事件:“BOTH”

在审计错误时返回 SQLCA:“FALSE”

审计数据路径:“/home/test/db2logs/active/”

审计存档路径:“/home/test/db2logs/”

ls -l在数据路径上。

-rw------- 1 测试测试 9000 Dec 30 10:19 db2audit.db.SELVASK1.log.0

-rw------- 1 测试测试 8394 Dec 30 10:18 db2audit.db.SELVASK.log.0

这 2 个数据库(SELVASK、SELVASK1)没有审计策略。

SELECT COUNT(1) FROM SYSCAT.AUDITUSE WHERE OBJECTTYPE='' 对于两个数据库的输出

1


0

选择了 1 条记录。

我在 db2diag.log 中找到了这个。尝试存档数据库时会发生这种情况,并且无法按预期创建存档文件。

2019-12-26-15.27.25.376000+330 I317589969F856       LEVEL: Warning
PID     : 13144                TID : 8160           PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000           DB   :         
APPHDL  : 0-104                APPID: *LOCAL.DB2.191226095725
AUTHID  : SYSTEM               HOSTNAME: DESKTOP-R9O62O0
EDUID   : 8160                 EDUNAME: db2agent (instance) 0
FUNCTION: DB2 UDB, bsu security, sqlexDb2auditArchiveRename, probe:350
RETCODE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
          DIA8411C A file "" could not be found.
DATA #1 : Hexdump, 47 bytes
0x00000027407FACF2 : 433A 5C73 656C 7661 5C65 6C61 7465 7374    C:\selva\elatest
0x00000027407FAD02 : 5C64 6174 615C 6462 3261 7564 6974 2E64    \data\db2audit.d
0x00000027407FAD12 : 622E 5445 5354 3132 332E 6C6F 672E 30      b.TEST_DB.log.0

2019-12-27-20.52.20.159033+330 I1729969E910          LEVEL: Warning
PID     : 15851                TID : 140506994566912 PROC : db2sysc 0
INSTANCE: test                 NODE : 000            DB   :         
APPHDL  : 0-3707               APPID: *LOCAL.test.191227152221
AUTHID  : TEST                 HOSTNAME: ubuntu18
EDUID   : 2851                 EDUNAME: db2agent (instance) 0
FUNCTION: DB2 UDB, bsu security, sqlexDb2auditArchiveRename, probe:350
RETCODE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."
          DIA8411C A file "" could not be found.
DATA #1 : Hexdump, 51 bytes
0x00007FCA557F8DF0 : 2F68 6F6D 652F 7465 7374 2F64 6232 6C6F    /home/test/db2lo
0x00007FCA557F8E00 : 6773 2F61 6374 6976 652F 6462 3261 7564    gs/active/db2aud
0x00007FCA557F8E10 : 6974 2E64 622E 454C 4154 4553 542E 6C6F    it.db.TEST_DB.lo
0x00007FCA557F8E20 : 672E 30                                    g.0  

标签: db2

解决方案


这是一篇好文章:
[Db2] 用于 db2audit 实例和数据库级审计的简单测试用例 shell 脚本
https://www.ibm.com/support/pages/node/1075779

我建议您查看并尝试按照首先描述的步骤进行操作。一旦发现它有效,请尝试通过参考该文章底部的手册页来修改要审核的内容。

这是数据库级审计页面的关键部分:

db2audit configure reset
db2audit configure scope all status both errortype normal
db2audit configure datapath $HOME/temp/db2audit
db2audit configure archivepath $HOME/temp/db2audit
db2audit describe

### start and stop database level auditing ###
db2 -v "create audit policy DB_Policy1 categories all status both error type normal"
db2 -v "audit database using policy DB_Policy1"
db2audit start

db2 -v "create table t1 (c1 int, c2 int)"
db2 -v "insert into $USER.t1 values (1,1)"
db2 -v "select * from $USER.t1"
db2 -v "delete from $USER.t1"
db2 -v "audit database remove policy"
db2audit stop

希望这可以帮助。


推荐阅读