需先确认cronolog已安装并配置正确:检查路径及版本,未安装则用包管理器安装;修改Apache日志指令为管道格式并指定时间变量;确保日志目录存在且权限属主正确;最后语法检查、重载服务并验证按小时生成日志文件。

确认 cronolog 已安装并可用
先检查系统是否已安装 cronolog:运行 which cronolog 或 cronolog --version。常见路径为 /usr/bin/cronolog(Debian/Ubuntu)或 /usr/sbin/cronolog(RHEL/CentOS)。若未安装,可使用包管理器安装:
● Ubuntu/Debian:apt install cronolog
● CentOS/RHEL:yum install cronolog 或 dnf install cronolog
手动编译安装时,默认路径多为 /usr/local/sbin/cronolog,需在配置中对应调整。
修改 Apache 配置启用按小时管道日志
编辑主配置文件(如 /etc/httpd/conf/httpd.conf 或虚拟主机配置),找到原日志指令并替换为带时间格式的管道写法:
● 错误日志示例:
ErrorLog "|/usr/bin/cronolog /var/log/httpd/error_%Y%m%d_%H.log"
● 访问日志示例:
CustomLog "|/usr/bin/cronolog /var/log/httpd/access_%Y%m%d_%H.log" combined
其中 %Y%m%d_%H 生成类似 access_20260820_19.log 的文件名,每小时新建一个。无需额外指定时区参数,cronolog 默认使用本地系统时间。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
确保目录存在且权限正确
cronolog 不会自动创建父级目录(如 /var/log/httpd/),需提前创建并赋权:
● 执行:mkdir -p /var/log/httpd
● 设置属主与权限:chown apache:apache /var/log/httpd(RHEL/CentOS)或 chown www-data:www-data /var/log/httpd(Debian/Ubuntu)
● 权限建议:chmod 755 /var/log/httpd
若使用 SELinux,还需确认上下文允许 Apache 写入,必要时执行:semanage fcontext -a -t httpd_log_t "/var/log/httpd(/.*)?" && restorecon -Rv /var/log/httpd
验证配置并观察效果
保存配置后执行以下操作:
● 语法检查:apachectl configtest 或 httpd -t
● 平滑重载:systemctl reload httpd 或 apachectl graceful
● 立即触发一次访问,然后检查:ls -lt /var/log/httpd/access_*.log,应看到带当前小时的文件被创建
● 实时跟踪:tail -f /var/log/httpd/access_$(date +%Y%m%d_%H).log
注意:新小时开始后(如从 19:59 进入 20:00),cronolog 会自动切换到下一个 access_20260820_20.log,无缝衔接,不丢日志。

















