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

设置 Nginx、MySQL 日志轮询

1. Nginx 设置日志轮询

机器直接安装的:
/etc/logrotate.d/nginx

/var/log/nginx/*.log {dailymissingokrotate 30compressdelaycompressnotifempty# 修改成实际的create 640 nginx admsharedscriptspostrotateif [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat /var/run/nginx.pid`fiendscript
}

docker 安装的:
/etc/logrotate.d/nginx-docker

# 挂载出来的 nginx 日志路径
/path/to/your/nginx/logs/*.log {dailymissingokrotate 30compressdelaycompressnotifemptycreate 640 root rootsharedscriptspostrotate# Nginx 容器的名称CONTAINER_NAME="your_nginx_container_name"# 重新加载 Nginx 配置docker exec $CONTAINER_NAME /bin/sh -c 'kill -USR1 $(cat /var/run/nginx.pid)'endscript
}

2. MySQL 设置日志轮询

机器直接安装的:
/etc/mysqladmin.cnf

[client]
user=root
password=your_password

修改属主为 mysql 用户

sudo chown mysql:mysql /etc/mysqladmin.cnf
sudo chmod 600 /etc/mysqladmin.cnf

/etc/logrotate.d/mysql

/var/log/mysql/*.log {dailymissingokrotate 30compressdelaycompressnotifempty# 修改成实际的create 640 mysql admsharedscriptspostrotate# 重新打开 MySQL 日志文件if test -x /usr/bin/mysqladmin && \/usr/bin/mysqladmin --defaults-extra-file=/etc/mysqladmin.cnf ping &>/dev/null; then/usr/bin/mysqladmin --defaults-extra-file=/etc/mysqladmin.cnf flush-logsfiendscript
}

docker 安装的:
比如 data 目录映射成 /path/to/your/mapped/mysql/data
log 目录映射成 /path/to/your/mapped/mysql/log

/path/to/your/mapped/mysql/logs/*.log {dailymissingokrotate 30compressdelaycompressnotifempty# 用 容器里面 mysql 的 uid 和 gidcreate 640 uid gidsharedscriptspostrotate# MySQL 容器的名称CONTAINER_NAME="your_mysql_container_name"# 重新打开 MySQL 日志文件docker exec $CONTAINER_NAME /bin/sh -c 'mysqladmin --defaults-extra-file=/var/lib/mysql/mysqladmin.cnf flush-logs'endscript
}

3. 测试

  1. 手动测试 logrotate 配置

使用 -d 选项来调试 logrotate 配置,这个选项会显示 logrotate 将执行的操作,但不会实际执行:

logrotate -d /etc/logrotate.d/nginx-docker
  1. 手动执行 logrotate

如果调试通过,可以手动执行 logrotate 以立即轮询日志:

logrotate -f /etc/logrotate.d/nginx-docker
  1. 检查日志文件

执行完 logrotate 后,检查日志文件目录,确认日志文件是否被轮询,并且新的日志文件是否被创建。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 栈与队列--python
  • webpack4手动搭建Vue项目
  • 石油设备和相关机械都包涵那些?
  • GLM-4-Long加持的RAG:更准,更简,更全!
  • 集运系统如何多维度展现企业业务情况?
  • Socket编程---UDP篇
  • 能大致讲一下Chat GPT的原理吗?
  • typedef区分结构体类型和结构体变量
  • 深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
  • 数据结构(Java实现):栈和队列相关练习题
  • 人工智能的可解释性(XAI) | 使用LIME
  • 【qml实现TCP服务器】
  • 滑膜观测器
  • 网络爬虫--生成假数据
  • 【零知识证明】构建第一个zk
  • 2017 前端面试准备 - 收藏集 - 掘金
  • GraphQL学习过程应该是这样的
  • java8 Stream Pipelines 浅析
  • Javascript Math对象和Date对象常用方法详解
  • leetcode388. Longest Absolute File Path
  • Linux链接文件
  • nodejs:开发并发布一个nodejs包
  • Python3爬取英雄联盟英雄皮肤大图
  • React-redux的原理以及使用
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 闭包--闭包之tab栏切换(四)
  • 搭建gitbook 和 访问权限认证
  • 老板让我十分钟上手nx-admin
  • 聊聊hikari连接池的leakDetectionThreshold
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 判断客户端类型,Android,iOS,PC
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (python)数据结构---字典
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (分布式缓存)Redis分片集群
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计高校学生选课系统
  • (算法)Travel Information Center
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)RocketMQ初步认识
  • (一)UDP基本编程步骤
  • (转)shell调试方法
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .DFS.
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET 直连SAP HANA数据库
  • .net和php怎么连接,php和apache之间如何连接