首页 > 数据库 >设置 Nginx、MySQL 日志轮询

设置 Nginx、MySQL 日志轮询

时间:2024-08-30 19:52:42浏览次数:12  
标签:nginx 轮询 MySQL mysqladmin Nginx logrotate mysql 日志 etc


title: 设置 Nginx、MySQL 日志轮询 tags: author: Chinge Yang date: 2024-8-30


1. Nginx 设置日志轮询

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

/var/log/nginx/*.log {
        daily
        missingok
        rotate 30
        compress
        delaycompress
        notifempty
		# 修改成实际的
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

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

# 挂载出来的 nginx 日志路径
/path/to/your/nginx/logs/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 640 root root
    sharedscripts
    postrotate
        # 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 {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
	# 修改成实际的
    create 640 mysql adm
    sharedscripts
    postrotate
        # 重新打开 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-logs
        fi
    endscript
}

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

/path/to/your/mapped/mysql/logs/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
	# 用 容器里面 mysql 的 uid 和 gid
    create 640 uid gid
    sharedscripts
    postrotate
        # 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 后,检查日志文件目录,确认日志文件是否被轮询,并且新的日志文件是否被创建。

标签:nginx,轮询,MySQL,mysqladmin,Nginx,logrotate,mysql,日志,etc
From: https://blog.51cto.com/ygqygq2/11877751

相关文章

  • 云计算:LNMP网站架构,前期准备,安装php,安装MySQL
    准备工作(初始化)1.关闭防火墙systemctl disablefirewalld --now    //直接永久关闭防火墙2.关闭SELINUX 查看SELINUX:getenforce永久关闭:[root@localhost~]#vim/etc/selinux/configSELINUX=enforcing|disabled或者[root@localhost~]#sed-i's/^S......
  • 【MySQL 11】索引 (带思维导图)
    文章目录......
  • 【MySQL 12】事务管理 (带思维导图)
    文章目录......
  • 【MySQL 14】用户管理
    文章目录......
  • 【MySQL 13】视图 (带思维导图)
    文章目录......
  • windows系统配置nginx环境运行pbootcms访问首页直接404的问题
    近来在协助客户处理安装过程中遭遇的这样一个状况,在安装pbootcms之后,访问后台的/admin.php能够成功,然而直接访问首页却显示404错误。运行环境所采用的运行环境为:windows操作系统加上nginx服务器再加上php语言的组合环境。详细经过客户表示伪静态规则始终未能生效,经过......
  • 用PowerDesigner创建Oracle模型转为mysql模型
    一.首先打开PowerDesigner1.File(位置:左上角)–>NewModel–>PhysicalDateModel(物理数据模型)(1)DBMS选择MySQL5.0(版本可能不对,但毕竟是mysql语句的)(2)之后点确定就行(3).可能会出现一个问题就是DBMS的下拉框什么也没有退出也不好用(其实挺简单的)1.点击DBMS最右边......
  • MySQL索引底层结构为什么用B+Tree?
    索引为何不选择二叉树?二叉搜索树是遵守二分搜索法实现的一种数据结构,它具有下面特点:任意节点的左节点不为空时,左节点值小于根节点值;右节点不为空时,右节点值大于根节点值;依次存入数据,如果数据是递增的,则原二叉树退化为链表结构 从动画中可以明显看到,需要经过5次查询才能......
  • mysql参数和配置文件优先级
    mysqld-auto.cnf,持久化配置参数文件(位于DATA目录)(mysqld-auto.cnf中的变量如果和my.cnf相同则使用mysqld-auto.conf中的)命令行输入的配置参数代码中指定配置文件my.cnf中的配置参数命令行输入配置文件my.cnf中的配置参数/etc目录中的配置文件my.cnf中的配置参数/etc/mysql目录中......
  • 【Mysql】mysql count主键字段很慢超时 执行计划Select tables optimized away ,最终调
     背景: mysql表 主键字段count,速度很慢,耗时将近30s   从执行计划可以看出:explainSELECTCOUNT(rule_id)ASdataCountFROM`sku_safe_stock_rule`;   原理分析:SelecttablesoptimizedawaySELECT操作已经优化到不能再优化了(MySQL根本没有遍历......