vts静态配置
1.功能介绍
提供对虚拟主机状态信息的访问。包含当前状态、服务器、上游、缓存等信息。 首先,指令 vhost_traffic_status_zone 是必需的, 然后如果指令 vhost_traffic_status_display 设置后,可按如下方式访问: /metrics/format/json
- 如果您要求 /metrics/format/json,将使用包含当前活动数据的 JSON 文档进行响应,以便在实时仪表板和第三方监视工具中使用。
- /metrics/format/html
- 如果您要求 /metrics/format/html,将使用 HTML 中的内置实时仪表板进行响应,该仪表板在内部请求 /metrics/format/json.
- /metrics/format/jsonp
- 如果您要求 /status/format/jsonp,将使用包含当前活动数据的 JSONP 回调函数进行响应,以便在实时仪表板和第三方监视工具中使用。
- /metrics/format/prometheus
- 如果您要求 /status/format/prometheus,将响应 prometheus 格式,包含当前活动数据的文档。
2.依赖模块
njet_ctrl.conf:
load_module modules/njt_http_vtsc_module.so;
njet.conf:
load_module modules/njt_http_vtsd_module.so;
3.指令说明
3.1 vhost_traffic_status
- | - |
---|---|
语法 | vhost_traffic_status <on|off> |
默认 | 关闭 |
上下文 | http、server、location |
配置 | 数据面 |
描述: 启用或禁用数据面统计指定上下文内性能指标数据。如果设置 了vhost_traffic_status_zone 指令,将自动启用。
3.2 vhost_traffic_status_zone
- | - |
---|---|
语法 | vhost_traffic_status_zone [shared:name:size] |
默认 | shared:vhost_traffic_status:1m |
上下文 | http |
配置 | 数据面 |
描述: 为数据面共享内存区域设置参数,该区域将保留各种键的状态。缓存在所有工作进程之间共享。
在大多数情况下,njet-module-vts使用的共享内存大小不会增加太多。当使用vhost_traffic_status_filter_by_set_key指令时,共享内存大小会增加很多,但如果过滤器的键是固定的(例如。国家代码的总数约为240),则不会持续增加。
如果使用vhost_traffic_status_filter_by_set_key指令,设置如下:
- 默认设置为上限32M的共享内存大小。(vhost_traffic_status_zone shared:vhost_traffic_status:32 m)
- 如果在error_log中打印出:(“ngx_slab_alloc() failed: no memory in vhost_traffic_status_zone”),则增加到大于(usedSize * 2)。
3.3 vhost_traffic_status_filter_by_set_key
- | - |
---|---|
语法 | vhost_traffic_status_filter_by_set_key key [name] |
默认 | - |
上下文 | http |
配置 | 数据面 |
描述: 通过用户定义的变量作为展示的维度。key和name可以使用变量,如$host、$server_name等
示例如下:
http{
vhost_traffic_status_filter_by_set_key $request_uri "$realip_remote_addr to $server_name";
...
}
3.4 vhost_traffic_status_display
- | - |
---|---|
语法 | vhost_traffic_status_display |
默认 | - |
上下文 | location |
配置 | 控制面 |
描述: 启用或禁用控制面显示处理程序。
3.5 vhost_traffic_status_display_format
- | - |
---|---|
语法 | vhost_traffic_status_display_format <json|html|jsonp|prometheus> |
默认 | json |
上下文 | location |
配置 | 控制面 |
描述: 设置控制面数据输出的格式。
-
如果设置 json,将使用 JSON 格式进行响应;
-
如果设置 html,将使用 HTML 中的内置实时仪表板进行响应;
-
如果设置 jsonp,将使用 JSONP 回调函数(默认: ngx_http_vhost_traffic_status_jsonp_callback);
-
如果设置 prometheus,将响应 prometheus格式的数据。
4. 配置样例
njet_ctrl.conf:
load_module modules/njt_http_vtsc_module.so;
error_log logs/error-ctrl.log info;
events {
....
}
http {
access_log logs/access-ctrl.log combined;
server {
listen 8081;
location /metrics {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}
njet.conf:
load_module modules/njt_http_vtsd_module.so;
helper broker modules/njt_helper_broker_module.so conf/mqtt.conf;
helper ctrl modules/njt_helper_ctrl_module.so conf/ctrl.conf;
error_log logs/error.log info;
events {
....
}
http {
vhost_traffic_status_zone;
vhost_traffic_status_filter_by_set_key $request_uri "$realip_remote_addr to $server_name";
....
....
}
3.功能展示
vts监控页面: