Nginx添加Prometheus監(jiān)控模塊nginx-lua-prometheus
Nginx添加Prometheus監(jiān)控模塊nginx-lua-prometheus前言 nginx-lua-prometheus是為專(zhuān)為nginx設(shè)計(jì)的Prometheus監(jiān)控腳本,使用lua開(kāi)發(fā),所以需要nginx支持lua插件運(yùn)行,關(guān)于如何讓nginx支持lua這里就不說(shuō)了,
Nginx添加Prometheus監(jiān)控模塊nginx-lua-prometheus前言 nginx-lua-prometheus是為專(zhuān)為nginx設(shè)計(jì)的Prometheus監(jiān)控腳本,使用lua開(kāi)發(fā),所以需要nginx支持lua插件運(yùn)行,關(guān)于如何讓nginx支持lua這里就不說(shuō)了,

nginx-lua-prometheus是為專(zhuān)為nginx設(shè)計(jì)的Prometheus監(jiān)控腳本,使用lua開(kāi)發(fā),所以需要nginx支持lua插件運(yùn)行,關(guān)于如何讓nginx支持lua這里就不說(shuō)了,網(wǎng)上很容易搜到教程。
nginx-lua-prometheus目前網(wǎng)絡(luò)上我見(jiàn)過(guò)兩個(gè)版本,一個(gè)比較新的,一個(gè)比較古老的,比較新的嘗試后發(fā)現(xiàn)存在不兼容問(wèn)題,我的nginx版本是1.14,后來(lái)使用了比較老的版本,不過(guò)功能相似。
github地址:https://github.com/jialj/nginx-lua-prometheus
1.在server模塊下面添加下面的代碼
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | lua_shared_dict prometheus_metrics 10M; lua_package_path "你的lua文件目錄/prometheus.lua"; init_by_lua ' ??prometheus = require("prometheus").init("prometheus_metrics") ??metric_requests = prometheus:counter( ????"nginx_http_requests_total", "Number of HTTP requests", {"host", "status"}) ??metric_latency = prometheus:histogram( ????"nginx_http_request_duration_seconds", "HTTP request latency", {"host"}) ??metric_connections = prometheus:gauge( ????"nginx_http_connections", "Number of HTTP connections", {"state"}) ??metric_requests_uri = prometheus:counter( ????????????????"nginx_http_requests_uri_total", "Number of HTTP requests_uri", {"host","uri", "status", "method"}) '; log_by_lua ' ??metric_requests:inc(1, {ngx.var.server_name, ngx.var.status}) ??metric_latency:observe(tonumber(ngx.var.request_time), {ngx.var.server_name}) ??metric_requests_uri:inc(1, {ngx.var.server_name,ngx.var.document_uri, ngx.var.status, ngx.var.request_method}) '; |
上面的metric_requests_uri模塊是官方例子中沒(méi)有的,是我自己添加的,取的是uri的訪問(wèn)記錄,nginx中document_uri是不包含參數(shù)的,具體的參數(shù)都可以自行修改。
2.新建metrics對(duì)外導(dǎo)出監(jiān)控?cái)?shù)據(jù)
新建虛擬主機(jī),端口自定義,添加下面的模塊
| 1 2 3 4 5 6 7 8 | location /metrics { ????content_by_lua_block { ??????metric_connections:set(ngx.var.connections_reading, {"reading"}) ??????metric_connections:set(ngx.var.connections_waiting, {"waiting"}) ??????metric_connections:set(ngx.var.connections_writing, {"writing"}) ??????prometheus:collect() ????} } |
保存,重載nginx配置,訪問(wèn)metrics目錄,可以看到監(jiān)控?cái)?shù)據(jù)

gafana上用的圖是 462,因?yàn)閡ri是自己加的,需要添加下面的查詢(xún)語(yǔ)句
| 1 | sum(irate(nginx_http_requests_total{role=~"$role",host!="127.0.0.1"}[30s])) |
電話(huà):18696588163
坐機(jī):18696588163
郵箱:[email protected]
地址:重慶渝中區(qū)新華路4號(hào)
重慶安菲科技有限公司
版權(quán)所有:重慶安菲科技有限公司
友情鏈接: