nginx监控之 监控我所需要的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx监控之 监控我所需要的相关的知识,希望对你有一定的参考价值。
apache和nginx对比
相比 Apache 服务器,Nginx 因其采用的异步非阻塞工作模型,使其具备高并发、低资源消耗的特性,高度模块化设计使 Nginx 具备很好的扩展性;在处理静态文件、反向代理请求等方面,Nginx 表现出很大的优势。
常见的nginx用途
Nginx 可以作为反向代理服务器来转发用户请求;并能够在处理请求的过程中实现后端实例负载均衡,实现分发请求的功能;也可将 Nginx 配置为本地静态服务器,处理静态请求。
监控nginx需要的指标
Nginx 处理请求的过程被详细地记录在 access.log 以及 error.log 文件中
监控项目 | 所属性质 | 指标 |
---|---|---|
请求时长 | 服务性质 | 从发出请求到结束需要的时间$request_time 和 $upstream_response_time |
服务存活性 | 服务性质 | nginx是否存活 |
请求返回错误 | 服务性质 | 服务器日志方式错误码4xx和5xx |
流量 | 服务性质 | pv 和 流量 |
服务损耗 | 服务性质 | 连接数 打开文件数 cpu使用率和绑定cpu核心的使用率 |
请求时长
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$upstream_response_time" ‘;
添加上"$request_time" 和"$upstream_response_time"
这样在后面显示请求体和时间,根据自己请求的时长容忍度来实现程序层面的请求接口优化或者缓存
nginx是否存活
检查nginx访问 是否返回值和自己的理想的数据返回是否一致 或者状态码是否一致
请求返回错误
必须添加对诸如 500/502/504 等 5xx 服务类错误状态码的监控,它们告诉我们服务本身出现了问题。
5xx 类错误每分钟出现的频率应该在个位数,太多的 5xx 应及时排查问题并解决;4xx 类错误,在协助解决一些非预期的权限错误、资源丢失或性能等问题上可以给予帮助。
例如:
connection refused 用户请求超时 | 用户请求超时 |
---|---|
connection timed out | nginx与后端服务器连接超时 |
while connection upstream | nginx与后端服务器连接出现问题 |
流量
可以适当的监控网络接口的流量
服务损耗
location /nginx-status {
stub_status on;
access_log off;
allow 10.1.1.1/24;
deny all;
}
文件打开数:lsof |grep nginx|wc -l
cpu损耗: 监控cpu的使用率即可
active connection | 当前正在处理的活跃连接数 |
---|---|
reading | 正在读取的客户连接数 |
writing | 处理响应数据到客户端的数量 |
waiting | Nginx等待下次请求的驻留的客户连接数 |
第1列:
当前与http建立的连接数,包括等待的客户端连接: 20
第2列:
接受的客户端连接总数目:20
处理的客户端连接总数目:20
客户端总的请求数目:50
第3列:
当前,nginx读请求连接
当前,nginx写响应返回给客户端
目前有多少空闲客户端请求连接
以上是关于nginx监控之 监控我所需要的的主要内容,如果未能解决你的问题,请参考以下文章