线上服务器Nginx日志无切割引起问题及解决


状况:lnmp环境下nginx反向代理服务器,部分网站无法访问,重启服务器后ok
拿到权限后安装zabbix监控,负载Ok ,
IO报警:
Disk I/O is overloaded on xss152

使用命令工具查看io状况,top下78%wa........................
[root@xx16 /]#  iostat -x 1 10 
avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          0.27    0.00    0.59  21.81    0.00  77.33
 
Device:        rrqm/s  wrqm/s    r/s    w/s  rsec/s  wsec/s avgrq-sz avgqu-sz  await  svctm  %util
sda              9.58  152.95  128.06  63.60  1136.57  1732.58    14.97    12.19  63.58  4.44  85.00
dm-0              0.00    0.00  137.10  216.57  1130.05  1732.58    8.09    25.40  71.82  2.40  84.99
dm-1              0.00    0.00    0.08    0.00    0.65    0.00    7.67    0.00    2.45  2.23  0.02
dm-2              0.00    0.00    0.06    0.00    0.51    0.00    8.00    0.00    2.65  2.39  0.02

%util长期达到99%................
查看服务器本身状况,在nginx日志目录下发现,日志无切割,常年积累下来已经达到可怕的大小
-rw-r--r--  1 nobody root  4959870331 5月  18 11:38 access.log.1
[root@xx16 logs]# du -sh
37G 

so,先写nginx日志切割,其后强制执行一次.
[root@xx16 logrotate.d]# vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*log{
    daily
    rotate 7
    compress
    notifempty
    nocompress
    postrotate
    /bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` 2> /dev/null || true
endscript
}

强制执行一次,然后查看Io情况.
logrotate -f /etc/logrotate.d/nginx
root@xx16 logrotate.d]#  iostat -x 1 10 
 
avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          0.27    0.00    0.58  20.70    0.00  78.45
avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          0.25    0.00    0.75    0.00    0.00  99.00
 
Device:        rrqm/s  wrqm/s    r/s    w/s  rsec/s  wsec/s avgrq-sz avgqu-sz  await  svctm  %util
sda              0.00    3.00    0.00    2.00    0.00    40.00    20.00    0.02    9.00  5.00  1.00
dm-0              0.00    0.00    0.00    5.00    0.00    40.00    8.00    0.05    9.60  2.00  1.00
dm-1              0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  0.00  0.00
dm-2              0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  0.00  0.00
dm-3              0.00    0.00    0.00    5.00    0.00    40.00    8.00    0.05    9.60  2.00  1.00

TOP下
1234567 [root@xx16 logrotate.d]# top
 
top - 11:57:35 up  2:20,  3 users,  load average: 0.00, 0.00, 0.26
Tasks: 142 total,  1 running, 141 sleeping,  0 stopped,  0 zombie
Cpu(s):  0.1%us,  0.3%sy,  0.0%ni, 99.3%id,  0.3%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  3917212k total,  3762456k used,  154756k free,  2144812k buffers
Swap:  8388600k total,        0k used,  8388600k free,  774492k cached

0.3%wa  zabbix警报解除.搞定!!

该服务器搭建于2014年,上一任管理员写了nginx切割脚本,但是没有后面由于nginx网站增添,没有添加到脚本,引起nginx日志一直无切割.

更多Nginx相关教程见以下内容

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤 使用ngx_log_if不记录特定日志

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址

相关内容