网站首页 > 技术教程 正文
概述
不管什么程序,一般都会有日志的。哪怕你在浏览器上网访问了一个网站,也会有记录保存的。在我们平时解决报错过程中,查看日志往往是解决问题的重要方式,今天主要讲讲nginx的日志管理和设置定时任务去对nginx做日志分割。
Nginx日志描述
通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。
参数明细表:
Nginx日志分割
nginx的日志文件没有rotate功能,不过我们也可以自己写一个nginx日志切割脚本来自动切割日志文件。
第一步就是重命名日志文件,这样就不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,Linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主进程发送USR1信号。nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。工作进程立刻打开新的日志文件并关闭重名名的日志文件。然后你就可以处理旧的日志文件了。[或者重启nginx服务]。
Nginx日志格式
打开nginx.conf配置文件:vim /usr/local/nginx/conf/nginx.conf
查看Nginx的nginx.conf文件,可以看到这样一条信息
#access_log logs/access.log main;
这说明该server访问日志的文件是 logs/host.access.log,使用的格式”main”格式。
日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式,也可以自定义格式。
main格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"';
#参数解释
$remote_addr 客户端IP地址; $remote_user 客户端用户名; $time_local 访问的时间和时区; $request 访问请求的类型,POST或者GET; $status 记录请求状态,404、304、200等等; $body_bytes_sent 客户端给服务器发送的文件主体内容的大小; $http_referer 访问来源——从哪个链接过来的; $http_user_agent 用户代理信息,一般是浏览器的标记,有时候也是爬虫标记。 $http_x_forwarded_for 直接访问该服务器的IP地址,可能是客户端IP也可能是代理服务器IP
除了main格式,你可以自定义其他格式,只需要把上述参数重新组合即可。
定时任务完成日志切割
1、创建一个日志切割的脚本
vi /usr/local/nginx/conf/runlog.sh(创建一个脚本为runlog.sh的脚本,路径位置为/usr/local/nginx/data/runlog.sh)在里面写入脚本
记得最后一行的“-SIGUSR1”命令根据操作系统不同使用会有所差异,所以需要查询自己的系统是不是这样写的。使用命令kill -l就可以看到支持那些命令。
脚本说明:定义日志存放路径,然后计算今天的日期确定存放的目录,然后将这个目录创建出来。然后再根据“时和分”计算出日志名称(存放在那个目录下)。然后将日志移动到文件夹中。然后创建一个新的空日志文件,下次创建日志的时候,里面是重新开始记录日志的。
2、创建一个定时器
Crontab -e 01 00 * * * /xxx/path/b.sh 每天0时1分(建议在02-04点之间,系统负载小)
这样日志就会每天定时备份到指定位置中去。
小技巧:一般手动切割日志查看具体信息可以这样写:
tail -n 30000 logs/catalina.out > a.txt (截取后3万行日志,保存到a.txt中)
上面核心其实1个就是理解下main格式的一些参数,然后自己去对应修改就行,另一个就是做下日志分割,大家有空也可以自己测试一下。后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!!
猜你喜欢
- 2024-10-10 通过什么方式来读取和监控nginx的日志呢
- 2024-10-10 linux运维之nginx日志之 log_format详解
- 2024-10-10 Nginx 日志自动切割(Centos6.8)(nginx日志切割配置)
- 2024-10-10 nginx - linux上日志分割(nginx日志级别顺序)
- 2024-10-10 练习Nginx定时备份日志及正则配置
- 2024-10-10 nginx启动时报错的日志 端口查看(nginx启动日志在哪儿)
- 2024-09-16 Nginx奇技淫巧之:按日期自动生成日志文件
- 2024-09-16 nginx的日志切割(nginx的日志切割脚本)
- 2024-09-16 ELK日志系统之使用Rsyslog快速方便的收集Nginx日志
- 2024-09-16 nginx 部署的项目查看错误日志并处理
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)