当前位置: 首页 > news >正文

centos celery 日志管理

celery经常会产生大量日志,长时间累计下来会对服务器造成一定的压力

1 配置 logrotate 进行日志拆分

logrotate 是 Linux 系统中常用的日志管理工具。我们将使用它来管理 Celery 的日志文件,确保日志文件不会无限增长,并定期拆分、归档和删除旧日志。

1.1 创建 logrotate 配置文件

在 /etc/logrotate.d/ 目录下创建一个专门为 Celery 日志配置的文件,例如 celery:

sudo nano /etc/logrotate.d/celery

1.2 编辑 celery 的 logrotate 配置

在该文件中,添加如下配置:

/var/log/celery/*.log {daily                        # 日志轮转频率,可选 weekly, monthlyrotate 7                     # 保留多少个日志文件missingok                    # 忽略不存在的日志文件notifempty                   # 不处理空文件compress                     # 压缩轮转后的日志文件delaycompress                # 等到下一个轮转周期才压缩copytruncate                 # 在不关闭原始文件的情况下复制和截断dateext                      # 使用日期作为后缀su celery celery             # 确保日志文件所有者和权限正确create 0640 celery celery    # 创建新日志文件时设置权限和所有者postrotatesystemctl reload celery  # 在日志轮转后重启或重新加载 Celery 服务endscript
}

1.3 配置解释:

  • daily:每天轮转日志,可以改为 weekly 或 monthly。
  • rotate 7:保留 7 个历史日志文件。
  • compress:压缩旧的日志文件以节省空间。
  • copytruncate:日志文件在轮转时截断,而不关闭 Celery 的日志写入句柄。这非常适合长时间运行的应用程序。
  • create 0640 celery celery:创建新的日志文件时,设置文件权限为 0640,所有者为 celery 用户和组。

2. 测试 logrotate 配置

为了确保你的 logrotate 配置文件工作正常,你可以手动运行 logrotate 进行测试:

sudo logrotate -f /etc/logrotate.d/celery

这将强制运行 logrotate 并立即对 Celery 日志进行轮转处理。你可以检查 /var/log/celery/ 目录下的日志文件,确认它们是否按预期被分割和压缩。

3. 确保 Celery 用户和日志目录权限

为了避免权限问题,确保 Celery 日志目录和日志文件的所有者和权限设置正确。假设你使用的是 celery 用户,设置目录和文件权限如下:

sudo chown -R celery:celery /var/log/celery
sudo chmod 755 /var/log/celery

4. 定期执行 logrotate

logrotate 是通过 cron 服务自动运行的。默认情况下,它每天都会检查配置并根据需要进行日志轮转。如果你想手动检查 cron 任务,可以运行:

sudo cat /etc/cron.daily/logrotate

CentOS 会根据配置对 Celery 日志进行定期拆分处理。

http://www.lryc.cn/news/462882.html

相关文章:

  • 深度学习(DL)实战——基本概念介绍
  • 较新(24.3)加速Diffusion模型推理的方法,附带参考文献
  • 硬件产品经理的开店冒险之旅(上篇)
  • 「C++」类和对象最终回
  • ELK:Elasticsearch、Logstash、Kibana Spring Cloud Sleuth和Spring Cloud Zipkin
  • 动态规划17:123. 买卖股票的最佳时机 III
  • 华为OD机试真题---预定酒店
  • 力扣242.有效的字母异位词
  • Android IP路由策略和防火墙
  • MySQL insert ... select 语句锁表导致数据写不进去
  • Android摄像头Camera2和Camera1的一些总结
  • 【Linux 从基础到进阶】Linux中的用户认证与授权
  • 用户界面设计:视觉美学与交互逻辑的融合
  • ZK集群搭建:详细步骤与注意事项
  • 如何将csdn文章导出为pdf
  • 【艾思科蓝】Imagen:重塑图像生成领域的革命性突破
  • java类和对象(下): 封装 static成员 内部类
  • 外包干了3周,技术退步太明显了。。。。。
  • VIVO算法题——数位之积
  • OPC Router快速打通设备层与influxDB数据通讯
  • 鸿蒙开发 四十四 ArkTs BuilderParam传递UI(二)
  • 同期数分析-留存率
  • Java前后端交互:构建现代Web应用
  • vue3中用axios请求怎么添加cookie
  • informer学习笔记
  • Elasticsearch介绍和使用
  • 【Flutter】基础入门:代码基本结构
  • 如何进行数据库缩容 | OceanBase应用实践
  • 机器学习和深度学习的差别
  • RAG拉满-上下文embedding与大模型cache