当你使用定时任务对日志进行切割后,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
网友评论