centos 创建 logrotate 进行日志分割

本文介绍如何配置logrotate进行Nginx和Mysql的日志文件自动切割,包括具体参数设置及操作指令,适用于服务器日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

这里就不赘述logrotate了,具体是什么,有什么作用,自行百度。

我们先说下,如何进行nginx的日志切割:

比如:日志目录为:/usr/local/nginx/logs/access.log
按照如下进行操作:(具体每个指令是什么意思,请自行百度,这里不赘述)

/usr/local/nginx/logs/access.log {
    su root root 
    weekly
    rotate 5
    compress
    dateext
    sharedscripts
    postrotate
        [ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    endscript
}

 

我们再进行Mysql的日志切割:

Mysql日志切割
比如:日志目录为:/usr/local/mysql/var/localhost-slow.log
按照如下进行操作:

/usr/local/mysql/var/localhost-slow.log {
        # create 600 mysql mysql
        notifempty
        daily
        rotate 5
        missingok
        compress
                dateext
    postrotate
        # just if mysqld is really running
        if test -x /usr/local/mysql/bin/mysqladmin && \
           /usr/local/mysql/bin/mysqladmin ping &>/dev/null
        then
           /usr/local/mysql/bin/mysqladmin flush-logs
        fi
    endscript
}

 

使用方法: /usr/local/logrotate -f nginx_access   或者 logrotate -f nginx_access

               /usr/local/logrotate -f mysql_slow   或者 logrotate -f mysql_slow

参数: -f 可以加可以不加,加上-f是强制的意思。

以上为切割nginx与mysql日志方法,可自己修改参数。

 

转载于:https://www.cnblogs.com/willamwang/p/10678559.html

<think>好的,用户想了解在CentOS 7上配置日志服务器的教程。首先,我需要回忆一下相关的方法。记得CentOS通常使用rsyslog来管理日志,可能还需要结合LogAnalyzer这样的工具进行可视化。 首先,检查用户提供的引用。引用3提到了使用logrotate分割日志,引用4提到了用rsyslog和LogAnalyzer搭建日志服务器。这两个应该是关键。用户的需求是配置日志服务器,所以重点应该在rsyslog和LogAnalyzer的配置上。 接下来,分步骤思考:安装必要的软件包,配置rsyslog服务端和客户端,设置防火墙规则,然后是安装LogAnalyzer进行日志分析。可能需要配置数据库,比如MySQL,因为LogAnalyzer需要存储数据。 另外,用户提供的引用2中提到关闭防火墙和SELinux的步骤,可能在配置过程中需要暂时关闭这些安全措施,但完成配置后需要重新开启并放行相应端口,比如TCP 514和80端口。 需要注意的细节包括修改rsyslog的配置文件,允许接收远程日志,设置模板以正确存储日志。对于LogAnalyzer,可能需要调整文件权限,配置Apache虚拟主机,并处理PHP依赖。 可能遇到的问题包括SELinux导致的权限问题,防火墙未正确放行端口,或者PHP配置不符合要求。需要提醒用户检查这些点,确保服务正常运行。 最后,生成相关问题时要围绕日志服务器的维护、优化、安全性以及替代方案等方面,帮助用户进一步了解相关知识。</think>在CentOS 7上配置日志服务器可通过rsyslog+LogAnalyzer实现,以下是具体步骤: ### 一、基础环境准备 1. 关闭防火墙和SELinux(配置完成后再开启) ```bash systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ``` [^2] ### 二、安装rsyslog服务 1. 安装必要组件 ```bash yum install -y rsyslog rsyslog-mysql mariadb-server httpd php php-mysql ``` 2. 配置服务端(日志服务器) ```bash vim /etc/rsyslog.conf ``` 修改以下内容: ```properties # 启用UDP/TCP日志接收 $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 # 定义日志存储模板 $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?RemoteLogs ``` ### 三、配置LogAnalyzer 1. 部署前端界面 ```bash wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.13.tar.gz tar zxvf loganalyzer-4.1.13.tar.gz cp -r loganalyzer-4.1.13/src/ /var/www/html/syslog chown -R apache:apache /var/www/html/syslog ``` [^4] 2. 创建数据库 ```sql CREATE DATABASE syslog; GRANT ALL ON syslog.* TO 'sysloguser'@'localhost' IDENTIFIED BY 'yourpassword'; ``` 3. 通过浏览器完成初始化配置 访问`http://服务器IP/syslog`,按向导填写数据库信息: - 数据库类型:MySQL - 数据库名:syslog - 用户/密码:与上一步一致 ### 四、客户端配置 在需要收集日志的客户端执行: ```bash vim /etc/rsyslog.conf ``` 添加: ```properties *.* @服务端IP:514 # UDP方式 *.* @@服务端IP:514 # TCP方式 ``` ### 五、重启服务 ```bash systemctl restart rsyslog httpd mariadb systemctl enable rsyslog httpd mariadb ``` ### 六、后期维护建议 1. 启用防火墙规则 ```bash firewall-cmd --permanent --add-port=514/tcp --add-port=514/udp firewall-cmd --reload ``` 2. 日志轮转配置 ```bash vim /etc/logrotate.d/syslog ``` 添加轮转策略: ```properties /var/log/*/*.log { daily missingok rotate 7 compress delaycompress sharedscripts postrotate /usr/bin/systemctl restart rsyslog >/dev/null 2>&1 || true endscript } ``` [^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值