You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

389ds LDAP容器日志管道疑问及审计日志配置咨询

关于389ds容器LDAP服务的两个日志相关问题解答

疑问1:cat <> /tmp/stdout-fifo > /dev/stdout命令的作用

这个命令用于持续监听并转发FIFO管道内容到容器标准输出,具体拆解:

  • <> 是Bash的特殊重定向符,作用是以读写模式打开/tmp/stdout-fifo。FIFO管道的特性是:若没有读端打开,写端写入时会阻塞甚至报错,这个操作能保持FIFO始终处于打开状态,避免389ds写入审计日志时出现异常。
  • cat 从打开的FIFO中读取内容,再通过> /dev/stdout将内容输出到容器标准输出。这样Kubernetes的日志收集组件(如Promtail、Fluentd)就能捕获389ds的审计日志,统一纳入集群日志体系。

疑问2:如何配置审计日志同时输出成功/失败事件到指定文件,且保留现有FIFO配置

要实现需求,需从两个层面调整配置,确保不影响现有nsslapd-auditlog的FIFO输出:

步骤1:调整审计日志转发逻辑(保留FIFO输出的同时,复制日志到文件)

修改docker-entrypoint-init.d/1-logging.sh中的命令,让FIFO的日志同时输出到容器标准输出和目标审计文件:

# 替换原命令
cat <> /tmp/stdout-fifo | tee /var/log/dirsrv/slapd-dir/audit > /dev/stdout

tee命令会将读取到的内容同时写入指定文件和标准输出,既保留原有FIFO到stdout的转发逻辑,又能将成功审计日志复制到目标文件。

步骤2:确保失败审计日志写入同一文件

  1. 先确认审计级别包含失败事件,执行以下LDAP修改命令(需使用Directory Manager权限):
ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-auditlog-level
nsslapd-auditlog-level: all
EOF

all会记录所有成功和失败的LDAP操作,你也可以指定具体事件(如bind,modify,add,failure)。

  1. 修改nsslapd-auditfaillog指向目标文件:
ldapmodify -x -D "cn=Directory Manager" -W <<EOF
dn: cn=config
changetype: modify
replace: nsslapd-auditfaillog
nsslapd-auditfaillog: /var/log/dirsrv/slapd-dir/audit
EOF

步骤3:验证权限与生效

  • 确保目标审计文件的所有者是389ds运行用户(通常为dirsrv),避免写入失败:
chown dirsrv:dirsrv /var/log/dirsrv/slapd-dir/audit
  • 重载配置(无需重启容器)并验证日志写入情况:
dsconf localhost config reload

内容的提问来源于stack exchange,提问作者AKS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:12:49