文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Nginx日志配置

2023-10-27 15:20

关注

  系统默认的错误日志配置:

[root@node1 ~]# vim /etc/nginx/nginx.conferror_log  /usr/local/nginx/logs/error.log;error_log  /usr/local/nginx/logs/error.log  notice;error_log  /usr/local/nginx/logs/error.log  info;

  系统默认的访问日志配置:

[root@node1 ~]# vim /etc/nginx/nginx.confhttp {    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  /usr/local/nginx/logs/access.log  main;}

  nginx日志切割:

        1>.  日志管理工具logrotate:在linux上logrotate是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用,它是默认随linux一起被安装的。

Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,内容如下:

[root@node2 ~]# vim /etc/cron.daily/logrotate#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.confEXITVALUE=$?if [ $EXITVALUE != 0 ]; then    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 0

        2>.  日志轮询周期:daily、weekly、monthly、yearly 。

默认是daily(即logrotate脚本放到了/etc/cron.daily下),具体执行时间可以查看 /etc/crontab 或者 /etc/anacrontab。

注意: logrotate是基于crontab运行的, 所以这个时间点是有crontab控制的, 具体可以查询crontab的配置文件/etc/anacrontab.。系统会按照计划的频率运行logrotate,通常是每天。

        3>.  强制执行:如果等不及cron自动执行日志轮转,可以强制切割日志。

语法:[root@node2 ~]# logrotate [OPTION...] [root@node2 ~]# logrotate -f /etc/logrotate.d/nginx-d, --debug :debug模式,测试配置文件是否有错误,不真实执行。-f, --force :强制转储文件。-m, --mail=command :压缩日志后,发送日志到指定邮箱。-s, --state=statefile :使用指定的状态文件。-v, --verbose :显示转储过程。

logrotate默认的日志在: /var/lib/logrotate/logrotate.status中。

  4>.  logrotate配置:使用rpm包安装的nginx,系统会自动生成日志切割的策略

## rpm包安装的nginx系统默认的日志切割策略:[root@node2 ~]# cd /etc/logrotate.d/[root@node2 logrotate.d]# vim nginx /var/log/nginx/*.log {  ##日志文件位置    create 0640(mode) nginx(owner) root(group)  ##转储文件,使用该模式创建日志文件    daily  ##日志轮询周期,weekly,monthly,yearly    rotate 10  ##保存30天数据,超过的则删除    missingok  ##如果没有日志文件也不报错    notifempty  ##日志为空时不进行切换,默认为ifempty    compress  ##切割后压缩,也可以为nocompress    delaycompress  ##切割时对上次的日志文件进行压缩    sharedscripts  ##所有的文件切割之后只执行一次下面脚本    postrotate        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true    endscript}

而使用源码安装的nginx,系统不会默认生成日志切割策略,可以复制rpm的默认切割策略,也可以自己定义切割策略。

## 自定义日志切割策略:[root@node1 ~]# mkdir -p /server/script/[root@node1 ~]# cd /server/script/[root@node1 script]# vim nginxlog.sh #!/bin/sh Dateformat=`date +%Y%m%d`Basedir="/usr/local/nginx"Nginxlogdir="$Basedir/logs"Logname="access"[ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1[ -f ${Logname}.log ] || exit 1/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log/usr/sbin/nginx -s reload## 添加执行权限:[root@node1 script]# chmod +x nginxlog.sh ## 创建计划任务:[root@node1 script]# crontab -e00 00 * * * /bin/sh /server/script/nginxlog.sh > /dev/null 2>&1

来源地址:https://blog.csdn.net/NancyLCL/article/details/127290157

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯