Nginx优化——日志分割
admin
2023-02-27 21:23:42
0

日志分割

一、企业服务器中的日志文件过大会带来下面的问题:
1、查询过大的日志文件对于开发和运维十分不方便,特别是加班人很累的情况下更加雪上加霜;
2、很久以前的日志文件几乎没有价值,但是手工清理又太过繁琐。
这时候就需要一种解决方案可以自动来做日志分割,分割后的日志不仅“干净”,也便于实现日志定时清理。

实验

二、编译安装Nginx服务
1、远程获取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

2、解压缩包

[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

3、安装编译组件包

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

4、创建程序用户并配置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
//安装状态统计模块

5、编译与安装

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

6、优化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  

7、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       ##开启

8、编写日志分割脚本

[root@localhost nginx-1.12.0]# vim fenge.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天之前(不包括30天)的文件并删除,xargs用于将前面命令的处理结果作为管道符号后的命令的参数
[root@localhost nginx-1.12.0]# chmod  +x  fenge.sh              ##授予脚本执行权限
[root@localhost nginx-1.12.0]# ./ fenge.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日志

此方法大大加强了对企业服务器日志管理工作,提高了效率!!

相关内容

热门资讯

重磅消息“乐成棋牌.怎么开挂?... 有 亲,根据资深记者爆料乐成棋牌是可以开挂的,确实有挂(咨询软件无需打开...
终于明白“新版悟空牛牛.有挂吗... 有 亲,根据资深记者爆料新版悟空牛牛是可以开挂的,确实有挂(咨询软件无需...
终于明白“微乐陕西挖坑.怎么开... 家人们!今天小编来为大家解答微乐陕西挖坑透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
今日重大消息“夏天yy.可以开... 今日重大消息“夏天yy.可以开挂吗?”确实真的有挂您好,夏天yy这个游戏其实有挂的,确实是有挂的,需...
最新引进“同城乐吧.怎么装挂?... 有 亲,根据资深记者爆料同城乐吧是可以开挂的,确实有挂(咨询软件无需打开...
【第一财经】“山西大唐麻将.真... 您好:山西大唐麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款...
终于了解“兴义水鱼.是不是有挂... 网上科普关于“兴义水鱼有没有挂”话题很是火热,小编也是针对兴义水鱼作*弊开挂的方法以及开挂对应的知识...
玩家最新攻略“微信链接牛牛.有... 网上科普关于“微信链接牛牛有没有挂”话题很是火热,小编也是针对微信链接牛牛作*弊开挂的方法以及开挂对...
终于懂了“微乐贵阳麻将.究竟有... 终于懂了“微乐贵阳麻将.究竟有挂吗?”太坑了原来有挂您好,微乐贵阳麻将这个游戏其实有挂的,确实是有挂...
玩家攻略科普“蛮王牛牛.可以开... 有 亲,根据资深记者爆料蛮王牛牛是可以开挂的,确实有挂(咨询软件无需打开...