Nginx优化——日志分割

  

日志分割

  

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

  

实验

  

二、编译安装Nginx服务
1,远程获取Windows上的源码包,并挂载到Linux上

  
 <代码> [root@localhost ~] # smbclient - l//192.168.235.1
  进入SAMBA \ root的密码:
  Sharename类型的评论
  - - - - - - - - - - - - - - - - - - - - - - - -
  LNMP磁盘
  
  root@localhost ~ # mkdir/abc
  root@localhost ~ #山。cifs//192.168.235.1/LNMP/abc
  密码root@//192.168.235.1/LNMP:
  root@localhost ~ # ls/abc
  Discuz_X3.4_SC_UTF8。邮政nginx-1.12.0.tar。广州php-7.1.10.tar.bz2
  mysql-boost-5.7.20.tar。广州nginx-1.12.2.tar。广州php-7.1.20.tar.gz  
  

2,解压缩包

  
 <代码> root@localhost ~ # cd/abc
  (root@localhost abc) #焦油zxvf nginx-1.12.0.tar。广州- c/opt
  (root@localhost abc) # ls/选择
  nginx-1.12.0 rh  
  

3,安装编译组件包

  
 <代码> (root@localhost abc) # cd/选择
  [root@localhost选择]# yum安装- y \
  比;gcc \//C语言
  比;gcc-c + + \//c++语言
  比;pcre-devel \//pcre语言工具
  比;zlib-devel//压缩函数库代码 
  

4,创建程序用户并配置Nginx服务相关组件

  
 <代码> [root@localhost选择]# useradd - m - s/sbin/nologin nginx//创建程序用户nginx,并限定其不可登录终端
  root@localhost选择# cd nginx-1.12.0/# ./configure \ [root@localhost nginx-1.12.0)//配置nginx
  比;——prefix=//usr/地方/nginx \//指定安装路径
  比;——用户=nginx \//指定用户名
  比;——组=nginx \//指定用户所属组
  比;——with-http_stub_status_module//安装状态统计模块 
  

5,编译与安装

  
 <代码> [root@localhost nginx-1.12.0] #做,,使安装 
  

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 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: * 7520/nginx:听大师 
  

7, systemctl管理nginx脚本

  
 <代码> root@localhost ~ # vim/lib/systemd/system/nginx.服务# #创建配置文件
  
  (单位)
  描述=nginx # #描述
  后=网络。目标# #描述服务类型
  (服务)
  类型=分支# #后台运行形式
  PIDFile=/usr/地方/nginx/logs/nginx。pid # # pid文件位置
  ExecStart=/usr/地方/nginx/sbin/nginx # #启动服务
  ExecReload=/usr/bin/杀- s玫瑰MAINPID # #美元根据PID重载配置
  ExecStop=/usr/bin/杀- s退出美元MAINPID # #根据PID终止进程
  PrivateTmp=true
  (安装)
  WantedBy=multi-user.target
  
  # chmod 754/lib/systemd/system/nginx. root@localhost ~服务# #设置执行权限
  (root@localhost ~) # systemctl停止nginx。服务# #关闭nginx
  root@localhost ~ # systemctl开始nginx。服务# #开启 
  

8,编写日志分割脚本

  
 <代码> [root@localhost nginx-1.12.0] # vim fenge.sh
  
  # !/bin/bash
  #文件名:fengge。sh # #描述信息
  
  d=$(日期- d“1天”“+ % Y % m % d”) # #显示系统一天前的时间,并生成一个日期字符串,如“2019.11.11”
  logs_path="/var/log/nginx”# #日志分割后的存放路径
  pid_path="/usr/地方/nginx/logs/nginx。pid”# # Nginx的进程号文件
  [- d $ logs_path] | | mkdir - p $ logs_path # #判断是否存在日志分割存放路径,如不存在则创建该路径
  mv/usr/local/nginx/logs/access.日志$ {logs_path}/test.com-access.log - $ d
  # #移出原有路径下的访问日志生成到创建的路径下,并以日期命名生成一个日志文件
  杀死usr1美元(猫pid_path美元)# #结束此前的进程号,用以生成新的进程号
  发现美元logs_path -mtime + 30 | xargs rm射频# #寻找路径下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
  访问。日志错误。日志nginx。pid # #查看Nginx日志目录,可见又自动生成了一个access.log日志

Nginx优化——日志分割