Nginx
Nginx 是一个网页服务器,它能反向代理 HTTP, HTTPS, SMTP, POP3, IMAP 的协议链接,以及一个负载均衡器和一个 HTTP 缓存,其特点是占有内存少,并发能力强。
Cloud Insight 通过收集 Nginx 状态页数据监控 web 服务器的请求访问情况,可视化 Nginx 性能。
性能指标
Cloud Insight 采集 Nginx 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
nginx.connections.accepted | connections | 接受的客户端连接的总数 |
nginx.connections.active | connections | 当前客户端连接数 |
nginx.connections.dropped | connections | 删除的客户端连接的总数 |
nginx.connections.idle | connections | 当前空闲客户端连接数 |
nginx.generation | 配置(configuration)重新加载的总数 | |
nginx.load_timestamp | milliseconds | 上次重新加载配置(configuration)的时间(自 Epoch 以来的时间) |
nginx.net.conn_dropped_per_s | connections/second | 连接丢失率 |
nginx.net.conn_opened_per_s | connections/second | 打开连接的速率 |
nginx.net.connections | connections | 活动连接的总数 |
nginx.net.reading | connections | 读取客户端请求的连接数 |
nginx.net.request_per_s | requests/second | 请求的处理速率 |
nginx.net.waiting | connections | 等待工作的 keep-alive 连接的数量 |
nginx.net.writing | connections | 等待上行(upstream)响应 和/或 将响应写回客户端的连接数 |
nginx.pid | 处理状态请求的工作进程的 ID | |
nginx.processes.respawned | processes | 异常终止并重新生成的子进程的总数 |
nginx.requests.current | requests | 当前客户端请求数 |
nginx.requests.total | requests | 客户端请求的总数 |
nginx.server_zone.discarded | requests | 未发送响应而完成的请求总数 |
nginx.server_zone.processing | requests | 当前正在处理的客户端请求数 |
nginx.server_zone.received | bytes | 从客户端接收的数据总量 |
nginx.server_zone.requests | requests | 从客户端接收的客户端请求的总数 |
nginx.server_zone.responses.1xx | responses | 具有 1xx 状态码的响应数 |
nginx.server_zone.responses.2xx | responses | 具有 2xx 状态码的响应数 |
nginx.server_zone.responses.3xx | responses | 具有 3xx 状态码的响应数 |
nginx.server_zone.responses.4xx | responses | 具有 4xx 状态码的响应数 |
nginx.server_zone.responses.5xx | responses | 具有 5xx 状态码的响应数 |
nginx.server_zone.responses.total | responses | 发送到客户端的响应总数 |
nginx.server_zone.sent | bytes | 发送到客户端的数据总量 |
nginx.ssl.handshakes | 成功的 SSL 握手总数 | |
nginx.ssl.handshakes_failed | 失败的 SSL 握手总数 | |
nginx.ssl.session_reuses | SSL 握手期间的会话重用总数 | |
nginx.timestamp | milliseconds | 自 Epoch 以来的时间 |
nginx.upstream.keepalive | connections | 当前空闲的 keepalive 连接数 |
nginx.upstream.peers.active | connections | 当前活动连接数 |
nginx.upstream.peers.backup | 指示服务器是否为备份服务器的布尔值 | |
nginx.upstream.peers.downstart | milliseconds | 服务器变成 “unavail” 或 “unhealthy” 的时间(自Epoch开始) |
nginx.upstream.peers.downtime | milliseconds | 服务器处于 “unavail” 或 “unhealthy” 状态的总时间 |
nginx.upstream.peers.fails | 与服务器通信失败的总次数 | |
nginx.upstream.peers.health_checks.checks | health check 请求总数 | |
nginx.upstream.peers.health_checks.fails | health check 的失败数 | |
nginx.upstream.peers.health_checks.last_passed | 布尔值,指示上次运行状况检查请求是否成功并通过了测试 | |
nginx.upstream.peers.health_checks.unhealthy | 服务器变得不健康 (state “unhealthy”) 的次数 | |
nginx.upstream.peers.id | 服务器的 ID | |
nginx.upstream.peers.received | bytes | 从此服务器接收的总数据量 |
nginx.upstream.peers.requests | requests | 转发到此服务器的客户端请求总数 |
nginx.upstream.peers.responses.1xx | responses | 具有 1xx 状态码的响应数 |
nginx.upstream.peers.responses.2xx | responses | 具有 2xx 状态码的响应数 |
nginx.upstream.peers.responses.3xx | responses | 具有 3xx 状态码的响应数 |
nginx.upstream.peers.responses.4xx | responses | 具有 4xx 状态码的响应数 |
nginx.upstream.peers.responses.5xx | responses | 具有 5xx 状态码的响应数 |
nginx.upstream.peers.responses.total | responses | 从此服务器获取的响应总数 |
nginx.upstream.peers.selected | milliseconds | 上次选择服务器以处理请求(1.7.5)的时间(自Epoch开始) |
nginx.upstream.peers.sent | bytes | 发送到此服务器的数据总量 |
nginx.upstream.peers.unavail | 由于失败尝试次数达到 max_fails 阈值,服务器对客户端请求不可用 (state “unavail”) 的次数 | |
nginx.upstream.peers.weight | Weight of the server | |
nginx.version | nginx 的版本 |
配置 Nginx 监控
确保 http_stub_status_module 已安装
确保 http_stub_status_module
已安装在 Nginx 服务器上,这个模块提供访问状态信息的权限。具体安装操作,查看 Nginx 官方文档。
配置示例,修改 NGINX 的配置文件 /etc/nginx/site-available/default
,进入以下位置进行配置(根据自己环境进行配置):
server {
location /nginx_status {
stub_status on;
}
}
这时你可以在浏览器中访问 URL http://localhost/nginx_status
来查看状态信息。
编辑配置文件
编辑配置文件 conf.d/nginx.yaml,使 Cloud Insight Agent 可以与 Nginx 通信。
init_config:
instances:
# For every instance, you have an `nginx_status_url` and (optionally)
# a list of tags.
- nginx_status_url: http://localhost/nginx_status
tags:
- tag_key:tag_value
- nginx_status_url: http://example2.com:1234/nginx_status/
tags:
- tag_key:tag_value
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功'。
若 Agent Info 指令执行不成功,尝试在 root 权限下执行该指令。
Checks
======
[...]
nginx
-----
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
常见问题
- 配置 Nginx 启动报 404 错误
- ERROR: SSL:CERTIFICATE_VERIFY_FAILED certificate verify failed (_ssl.c:590)。
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。