$ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=
如果文件完整性操作员检测到计划中的更改,则可能需要重新初始化数据库。
使用file-integrity.openshift.io/re-init
注释FileIntegrity
自定义资源 (CR)
$ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=
旧数据库和日志文件将被备份,并初始化一个新数据库。旧数据库和日志保留在节点上的/etc/kubernetes
下,如下面使用oc debug
生成的 pod 输出所示。
ls -lR /host/etc/kubernetes/aide.*
-rw-------. 1 root root 1839782 Sep 17 15:08 /host/etc/kubernetes/aide.db.gz
-rw-------. 1 root root 1839783 Sep 17 14:30 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_38
-rw-------. 1 root root 73728 Sep 17 15:07 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_55
-rw-r--r--. 1 root root 0 Sep 17 15:08 /host/etc/kubernetes/aide.log
-rw-------. 1 root root 613 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_38
-rw-r--r--. 1 root root 0 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_55
为了提供一定的记录持久性,生成的配置映射不属于FileIntegrity
对象,因此需要手动清理。因此,任何之前的完整性失败仍将显示在FileIntegrityNodeStatus
对象中。
在 OpenShift Container Platform 4 中,集群节点配置通过MachineConfig
对象交付。您可以假设由MachineConfig
对象引起的的文件更改是预期的,并且不应导致文件完整性扫描失败。为了抑制由MachineConfig
对象更新引起的文件更改,文件完整性操作员监视节点对象;当节点正在更新时,AIDE 扫描会在更新期间暂停。更新完成后,数据库将重新初始化,扫描将恢复。
此暂停和恢复逻辑仅适用于通过MachineConfig
API 进行的更新,因为它们反映在节点对象注释中。
每个FileIntegrity
对象代表对多个节点的扫描。扫描本身由守护进程集管理的 pod 执行。
要查找代表FileIntegrity
对象的守护进程集,请运行
$ oc -n openshift-file-integrity get ds/aide-worker-fileintegrity
要列出该守护进程集中的 pod,请运行
$ oc -n openshift-file-integrity get pods -lapp=aide-worker-fileintegrity
要查看单个 AIDE pod 的日志,请对其中一个 pod 调用oc logs
。
$ oc -n openshift-file-integrity logs pod/aide-worker-fileintegrity-mr8x6
Starting the AIDE runner daemon
initializing AIDE db
initialization finished
running aide check
...
AIDE 守护进程创建的配置映射不会保留,并在文件完整性操作员处理它们后被删除。但是,在发生故障和错误时,这些配置映射的内容将复制到FileIntegrityNodeStatus
对象指向的配置映射。