Nginx优化---日志分割
admin
2023-02-28 00:01:54
0

概述

随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注Nginx日志文件太大的日志文件对监控是-一个大灾难就需要定期进行日志文件的切割。
Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划任务周期性地进行日志切割。

实验步骤

一、编译安装Nginx服务

第一步:远程获取Windows上的源码包,并挂载到Linux上

[root@localhost ~]# smbclient -L //192.168.235.1
Enter SAMBA\root's password: 
Sharename       Type      Comment
---------       ----      -------
LNMP            Disk  

[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abc
Password for root@//192.168.235.1/LNMP:  
[root@localhost ~]# ls /abc
Discuz_X3.4_SC_UTF8.zip    nginx-1.12.0.tar.gz  php-7.1.10.tar.bz2
mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gz

第二步:解压源码包

[root@localhost ~]# cd /abc
[root@localhost abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[root@localhost abc]# ls /opt
nginx-1.12.0  rh

第三步:下载安装编译组件包

[root@localhost abc]# cd /opt
[root@localhost opt]# yum install -y \
> gcc \             //C语言
> gcc-c++ \         //c++语言
> pcre-devel \      //pcre语言工具
> zlib-devel        //压缩函数库

第四步:创建程序用户并配置Nginx服务相关组件

[root@localhost opt]# useradd -M -s /sbin/nologin nginx
//创建程序用户nginx,并限定其不可登录终端
[root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure \            
//配置nginx
> --prefix=//usr/local/nginx \      
//指定安装路径                        
> --user=nginx \
//指定用户名
> --group=nginx \
//指定用户所属组
> --with-http_stub_status_module
//安装状态统计模块

第五步:编译与安装Nginx

[root@localhost nginx-1.12.0]# make && make install

第六步:优化Nginx服务启动脚本,并建立命令软连接

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 
//创建nginx服务命令软链接到系统命令
[root@localhost nginx-1.12.0]# systemctl stop firewalld.service 
//关闭防火墙
[root@localhost nginx-1.12.0]# setenforce 0
//关闭增强型安全功能
[root@localhost nginx-1.12.0]# nginx 
//输入nginx 开启服务
[root@localhost nginx-1.12.0]# netstat -ntap | grep 80      //查看服务的80 端口,显示已开启
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7520/nginx: master  

第七步:systemctl管理nginx脚本

[root@localhost ~]# vim /lib/systemd/system/nginx.service      ##创建配置文件

[Unit]
Description=nginx                                            ##描述
After=network.target                                        ##描述服务类型
[Service]
Type=forking                                                    ##后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid            ##PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx              ##启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID    ##根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID       ##根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service     ##设置执行权限
[root@localhost ~]# systemctl stop nginx.service       ##关闭nginx 
[root@localhost ~]# systemctl start nginx.service       ##开启

二、编写脚本进行日志分割

[root@localhost nginx-1.12.0]# vim fengge.sh

#!/bin/bash
#Filename:fengge.sh
##描述信息

d=$(date -d "-1 day" "+%Y%m%d" )
##显示系统一天前的时间,并生成一个日期字符串,如"2019.11.11"

logs_path="/var/log/nginx"
##日志分割后存放路径

pid_path="/usr/local/nginx/logs/nginx.pid"
##Nginx的进程号文件

[ -d $logs_path ] || mkdir -p $logs_path
##判断是否有认真的存放路径,如不存在则创建该路径

mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
##移出原有路径下的访问日志生成到创建的路径下,并以日期命名生成后的日志文件

kill -USR1 $(cat $pid_path)
##结束此前的进程号,用以生成新的进程号

find $logs_path -mtime +30 | xargs rm -rf
##寻找路径下30天前的文件并删除,xargs用于将前面命令的处理结果作为管道符号后的命令的参数

[root@localhost nginx-1.12.0]# chmod +x fengge.sh 
##授予脚本执行权限

[root@localhost nginx-1.12.0]# ls /var/log/nginx
test.com-access.log-20191112
##查看指定路径下生成的的日志分割文件

[root@localhost nginx-1.12.0]# ls /usr/local/nginx/logs
access.log  error.log  nginx.pid
##查看Nginx服务日目录,可见有自动生成了一个access.log日志

谢谢阅读!!!

相关内容

热门资讯

中国第一台高能加速器:北京正负... 感谢IT之家网友 的线索投递! 5 月 7 日消息,中国科学院高能物理研究所今日官宣,2026 年...
最强计算组合刷新大分子模拟纪录 量子计算机最具前景的应用方向之一,就是模拟蛋白质,助力新药研发。但眼下这类设备误差率仍然偏高。据英国...
贵州高校借力“中国天眼”勇攀科... “中国天眼”(FAST)。 新华社记者 欧东衢 摄 4月8日,遵义师范学院青年教师吴庆东以第一作者身...
Claude牵手马斯克,调用限... 智东西 作者 | 程茜 编辑 | 李水青 智东西5月7日报道,今日凌晨,Anthropic在开发者大...
男子称爷爷30年前向天津美院捐... 5月6日,天津康先生反映,1996年他爷爷捐赠40件书画到天津美术学院,如今部分书画去向不明。
寒武纪股价再成A股最贵,半导体... 一方面,受益于AI产业发展,不少半导体公司业绩上涨;另一方面,美股半导体的上涨也带动了A股行情 文|...
OpenAI两大劲敌联手!马斯... AIPress.com.cn报道 奥特曼今晚能安然入睡吗? 就在刚刚,OpenAI的两大死对头美美牵...
原创 张... 文|唐辰 图|网络资料 张一鸣也没有余粮了么? 这两天,“豆包 付费”的话题持续高热,因为豆包要收费...
陈毓川院士逝世!他带领数千人干... ◎ 科技日报记者 操秀英5月6日,中国工程院院士,著名矿床地质学家陈毓川永远停下了跋涉的脚步,享年9...
利用中国国民党主席郑丽文形象的... 【大河财立方消息】 5月7日消息,上海证监局日前开出行政处罚决定书,对上海雷根资产管理有限公司实际控...