Nginx优化——日志分割

日志分割

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

实验

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

[[email protected] ~]# smbclient -L //192.168.235.1
Enter SAMBA\root‘s password:
Sharename       Type      Comment
---------       ----      -------
LNMP            Disk  

[[email protected] ~]# mkdir /abc
[[email protected] ~]# mount.cifs //192.168.235.1/LNMP /abc
Password for [email protected]//192.168.235.1/LNMP:
[[email protected] ~]# 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、解压缩包

[[email protected] ~]# cd /abc
[[email protected] abc]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[[email protected] abc]# ls /opt
nginx-1.12.0  rh

3、安装编译组件包

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

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

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

5、编译与安装

[[email protected] nginx-1.12.0]# make && make install

6、优化Nginx服务启动脚本,并建立命令软链接

[[email protected] nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
//创建nginx服务命令软链接到系统命令
[[email protected] nginx-1.12.0]# systemctl stop firewalld.service
//关闭防火墙
[[email protected] nginx-1.12.0]# setenforce 0
//关闭增强型安全功能
[[email protected] nginx-1.12.0]# nginx
//输入nginx 开启服务
[[email protected] 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脚本

[[email protected] ~]# 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

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

8、编写日志分割脚本

[[email protected] 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天前的文件并删除,xargs用于将前面命令的处理结果作为管道符号后的命令的参数
[[email protected] nginx-1.12.0]# chmod  +x  fenge.sh              ##授予脚本执行权限
[[email protected] nginx-1.12.0]# ./ fenge.sh
[[email protected] nginx-1.12.0]#  ls  /var/log/nginx
test.com-access.log-20191112                    ##查看指定路径下生成的的日志分割文件
[[email protected] nginx-1.12.0]# ls  /usr/local/nginx/logs
access.log  error.log  nginx.pid             ##查看Nginx日志目录,可见又自动生成了一个access.log日志

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

原文地址:https://blog.51cto.com/14475593/2450135

时间: 2024-11-08 00:23:58

Nginx优化——日志分割的相关文章

实现Nginx的日志分割!

时间越久内存占用率越高,高并发量,会给服务器带来巨大的缓存压力 解决方法:创建一个新的目录,设置周期性计划定期的将旧目录里面的日志移动到新目录中,一般只保存30天内,30天后一律删除 [[email protected] ~]# date "+%Y%m%d"                                  //今天的时间20190913[[email protected] ~]# date -d "-1 day" "+%Y%m%d&quo

nginx 设置日志分割

server { listen       80; server_name  bmw2.thefront.com.cn; charset utf-8; if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $year $1; set $month $2; set $day $3; } access_log  /home/weblogs/bmw2.thefront.com.cn.access.$year.$month.$day.log

Nginx之隐藏版本号,优化缓存,日志分割

nginx之隐藏版本号 配置nginx [[email protected] ~]# yum install pcre-devel zlib-devel gcc gcc-c++ -y ##安装环境包 [[email protected] ~]# useradd -M -s /sbin/nologin nginx ##创建程序性用户 [[email protected] ~]# mkdir /chen ##创建挂载点 [[email protected] ~]# mount.cifs //192.

Nginx服务优化之隐藏版本号、修改用户与组、配置页面缓存与时间、日志分割以及设置连接超时

Nginx服务优化之隐藏版本号.修改用户与组.配置页面缓存与时间.日志分割以及设置连接超时 前言 ? 在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行相应参数配置,以达到最优的用户体验. ? 默认的nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. 一.隐藏版本号 ? 我们为什么要隐藏版本号? ? 我们一定要有一个意识:对于软件或者说服务,其安全性必然不可能是无懈可击的,总会或多或少地存在各种bug或者

Nginx服务优化(四)日志分割

Nginx的日志切割 随着Nginx运行时间增加,日志也会增加.为了方便掌握Nginx运行状态,需要时刻关注Nginx日志文件,太大的日志文件对监控是一个大灾难,所以需要定期进行日志文件的切割.Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划任务周期性地进行日志切割. 1.在"/usr/local/nginx"目录下,添加一个日志分割脚本 [[email protected] nginx]# vim fenge.s

Nginx服务优化------(隐藏版本+缓存+修改用户与组+日志分割+进程超时)

[TOC] 文章目录 一.配置Nginx隐藏版本号 1.1.修改配置文件法 1.2.修改源码法 二.修改Nginx用户与组 2.1.修改配置文件指定用户与组 三.配置Nginx网页缓存时间 四.配置日志分割 五.实现连接超时 nginx的安装已经提前配置好了,需要的可以参考我的博客,链接为:Nginx 的配置 一.配置Nginx隐藏版本号 在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏 查看方法 使用fiddler工具在Windows客户端查看Nginx版本号 在CentOS系统

linux nginx或tomcat 日志 分割

nginx的日志不是按照日期自动分割的,感觉以后会是一个问题,所以打算自己分割日志,在网上找了下,感觉都挺麻烦的,要分割日志,然后还要从启pid之类的,应该也好用吧,我没有试验.感觉太麻烦.自己按照想法写了一个.也挺好用的.供大家参考吧. #!/bin/bash # The Nginx logs path yesterday=`date -d "yesterday" +%Y%m%d` cp /home/log/nginx/logs/access.log /home/log/nginx/

nginx 日志分割(简单、全面)

Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir  /home/shell  -p 专门写shell 脚本位置 [email protected]:/home/shell# cat nginxcut.sh #!/bin/sh ##### #by xuebao #2017.05.16 date=`date +%Y%m%d` nginxlog="/app/logs/nginx/" /bin/mv ${nginxlog}www_ac

nginx日志分割脚本

nginx 日志分割,可以分割一年内没有分割的日志,以每天一个日志文件打包 转载请注明出处:http://lm3810.blog.51cto.com/846925/1860543 #!/bin/bash #hls_nginx_log_cut.sh #by Louis 2016/10/10 logs_path='/data/store/logs/www/' #日志文件所在路径 files=`ls $logs_path` backup_path='/data/store/backuplogs/' #