nginx日志分片切割、不记录不读取问题 pyLogmanage

当你使用定时任务对日志进行切割后,linux还是为nginx保留切割前的文件,很多教程都说用kill或 restart的方法,实际上nginx提供了重新打开日志的命令:

$ nginx -s reopen

python django在配合使用uwsgi的话,可以在所在项目uwsgi.ini,新增配置

[uwsgi]
master = true
touch-logreopen = {你的日志路径}/touchforlog

只要在切割完毕后,重新touch一下uwsgi就会reopen日志文件

$ touch {你的日志路径}/touchforlog

如果你的服务器支持python3,并且使用钉钉的话,可以部署开源项目pyLogmanage项目https://github.com/OPN48/pyLogmanage

额外提供了

钉钉通知:
压缩后新增的日志tar大小通知
日志文件过期自动删除
单日志文件过大提醒
一秒内同IP多次请求通知(防CC攻击)

等功能

【xxx.xxx.xxx.xx】:
xxx_nginx_access.log 173.66MB
xxx_uwsgi.log 1.33MB
log-2020-01-01.tar.gz 50.33MB

并且提供了多功能个性化配置

$ python3 setup.py 
用法: python3 setup.py [-options] [args...](执行初始化配置)
    -url -durl      配置钉钉机器人url 默认:https://oapi.dingtalk.com/
    -d -dingtalk        钉钉通知开关 默认:TRUE
    -k -dkeyword        配置钉钉自定义关键词 默认:logdatatar
    -w -warnsize        配置单日志文件大小告警值,单位MB 默认:500
    -day -days      日志删除天数 默认:180
    -n -nginx       使用nginx配置的服务器可使用 默认:TRUE
    -u -uwsgi       使用uwsgi配置 需要在uwsgi.ini内配置master=true和touch-logreopen=/{log文件夹}/touchforlog 默认:TRUE
    -f -file        日志文件后缀名 默认:.log
    -l -lastlines       读取日志文件最后n行提供listener.py判断 默认:1000
    -m -secondmax       1秒钟同时请求大于m条,告警,同时作为报文倍数分组step使用 默认:3

你可能感兴趣的:(nginx日志分片切割、不记录不读取问题 pyLogmanage)