lunimous 可以开启 dashborad
rgw 通过 prometheus-nginxlog-exporter 可以解析 Nginx 日志,还有一些正则可以去处理,然后通过
relabel
的配置,让其在指标数据上打上标签。
civetweb 没有在日志记录请求返回的时间,所以考虑用 Nginx 来替换,为了能给 Ceph RGW 加一个请求相关的监控,所以需要去解析日志,在 prometheus-nginxlog-exporter 中,通过配置文件,可以把标签和端口等设置好,然后让 prometheus 加上这个 endpoint 就可以拉出来数据了。
listen {
port = 4040
enable_experimental = true
namespace "nginx" {
source = {
files = [
"/var/log/nginx/access.log"
format = "$remote_addr - $remote_user [$time_local] \"$request\" $status $body_bytes_sent \"$request_time\""
labels {
app = "default"
#relabel "request" {
# from = "request"
relabel "bucket" {
from = "request"
split = 2
match "^/general__lingqu/.*" {
replacement = "general__lingqu"
Nginx 日志。
xx.xx.xxx.x - - [26/Jun/2020:01:23:37 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/_SUCCESS HTTP/1.1" 200 0 "0.001"
xx.xx.xxx.x - - [26/Jun/2020:01:23:43 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00000 HTTP/1.1" 200 1165212977 "6.006"
xx.xx.xxx.x - - [26/Jun/2020:01:23:49 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00001 HTTP/1.1" 200 1180678766 "6.130"
xx.xx.xxx.x - - [26/Jun/2020:01:23:55 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00002 HTTP/1.1" 200 1181307932 "6.049"
xx.xx.xxx.x - - [26/Jun/2020:01:24:01 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00003 HTTP/1.1" 200 1207342395 "6.138"
xx.xx.xxx.x - - [26/Jun/2020:01:24:08 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00004 HTTP/1.1" 200 1198727695 "6.080"
xx.xx.xxx.x - - [26/Jun/2020:01:24:14 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00005 HTTP/1.1" 200 1206446826 "6.137"
xx.xx.xxx.x - - [26/Jun/2020:01:24:20 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00006 HTTP/1.1" 200 1204772146 "6.144"
xx.xx.xxx.x - - [26/Jun/2020:01:24:26 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00007 HTTP/1.1" 200 1165911854 "5.985"
xx.xx.xxx.x - - [26/Jun/2020:01:24:32 +0800] "GET /general__lingqu/kp/out/390280/n1590907415729/107916/20200601220441/part-00008 HTTP/1.1" 200 1179420268 "6.077"
prometheus-nginxlog-exporter 采集到的指标。
# HELP nginx_http_response_count_total Amount of processed HTTP requests
# TYPE nginx_http_response_count_total counter
nginx_http_response_count_total{app="default",bucket="",method="GET",status="200"} 1
nginx_http_response_count_total{app="default",bucket="general__lingqu",method="DELETE",status="204"} 2
nginx_http_response_count_total{app="default",bucket="general__lingqu",method="GET",status="200"} 214
nginx_http_response_count_total{app="default",bucket="general__lingqu",method="HEAD",status="200"} 8474
nginx_http_response_count_total{app="default",bucket="general__lingqu",method="PUT",status="200"} 5
# HELP nginx_http_response_size_bytes Total amount of transferred bytes
# TYPE nginx_http_response_size_bytes counter
nginx_http_response_size_bytes{app="default",bucket="",method="GET",status="200"} 338
nginx_http_response_size_bytes{app="default",bucket="general__lingqu",method="DELETE",status="204"} 0
nginx_http_response_size_bytes{app="default",bucket="general__lingqu",method="GET",status="200"} 2.1549611919e+10
nginx_http_response_size_bytes{app="default",bucket="general__lingqu",method="HEAD",status="200"} 0
nginx_http_response_size_bytes{app="default",bucket="general__lingqu",method="PUT",status="200"} 0
# HELP nginx_http_response_time_seconds Time needed by NGINX to handle requests
# TYPE nginx_http_response_time_seconds summary
nginx_http_response_time_seconds{app="default",bucket="",method="GET",status="200",quantile="0.5"} NaN
nginx_http_response_time_seconds{app="default",bucket="",method="GET",status="200",quantile="0.9"} NaN
nginx_http_response_time_seconds{app="default",bucket="",method="GET",status="200",quantile="0.99"} NaN
nginx_http_response_time_seconds_sum{app="default",bucket="",method="GET",status="200"} 0.002
nginx_http_response_time_seconds_count{app="default",bucket="",method="GET",status="200"} 1
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="DELETE",status="204",quantile="0.5"} 0.002
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="DELETE",status="204",quantile="0.9"} 0.009
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="DELETE",status="204",quantile="0.99"} 0.009
nginx_http_response_time_seconds_sum{app="default",bucket="general__lingqu",method="DELETE",status="204"} 0.011
nginx_http_response_time_seconds_count{app="default",bucket="general__lingqu",method="DELETE",status="204"} 2
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="GET",status="200",quantile="0.5"} 0.014
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="GET",status="200",quantile="0.9"} 0.112
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="GET",status="200",quantile="0.99"} 7.037
nginx_http_response_time_seconds_sum{app="default",bucket="general__lingqu",method="GET",status="200"} 115.89000000000006
nginx_http_response_time_seconds_count{app="default",bucket="general__lingqu",method="GET",status="200"} 214
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="HEAD",status="200",quantile="0.5"} 0.002
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="HEAD",status="200",quantile="0.9"} 0.002
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="HEAD",status="200",quantile="0.99"} 0.024
nginx_http_response_time_seconds_sum{app="default",bucket="general__lingqu",method="HEAD",status="200"} 22.99799999999861
nginx_http_response_time_seconds_count{app="default",bucket="general__lingqu",method="HEAD",status="200"} 8474
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="PUT",status="200",quantile="0.5"} NaN
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="PUT",status="200",quantile="0.9"} NaN
nginx_http_response_time_seconds{app="default",bucket="general__lingqu",method="PUT",status="200",quantile="0.99"} NaN
nginx_http_response_time_seconds_sum{app="default",bucket="general__lingqu",method="PUT",status="200"} 0.839
nginx_http_response_time_seconds_count{app="default",bucket="general__lingqu",method="PUT",status="200"} 5
- https://github.com/martin-helmich/prometheus-nginxlog-exporter
- https://www.martin-helmich.de/en/blog/monitoring-nginx.html
[PATHS-TO-LOGFILES...]
使用配置文件:
$ ./prometheus-nginxlog-exporter -config-file /path/to/config.hcl
Prometheus监控Nginx有两种方式。一种是通过nginx_exporter监控,需要开启nginx_stub_status,主要是nginx自身的status信息,metrics数据相对较少;另一种是使用nginx-vts-exporter监控,但是需要在编译nginx的时候添加nginx-module-vts模块,监控数据较多,提供了包含server、upstream以及cache的相关监控指标,指标更加丰富,所以采用nginx-vts-exporter实现对nginx的监控。
NGINX Prometheus 导出器使使用 Prometheus 监控 NGINX 或 NGINX Plus 成为可能。
通过公开了一些指标。 通过和提供了一组更丰富的指标。 NGINX Prometheus 导出器从单个 NGINX 或 NGINX Plus 获取指标,将指标转换为适当的 Prometheus 指标类型,最后通过 HTTP 服务器公开它们以供收集。
在本节中,我们将展示如何为 NGINX 或 NGINX Plus 快速运行 NGINX Prometheus Exporter。
关于 NGINX 入口控制器的说明
如果您想将 NGINX Prometheus 导出器与 for Kubernetes 一起使用,请参阅以获取安装说明。
我们假设您已经安装了 Prometheus 和 NGINX 或 NGINX Plus。
Usage of:
-config.file string
Nginx log exporter configuration file name. (default "config.yml")
-web.listen-address string
Address to listen on for the web
基于 prometheus 监控 nginx 可选两个 exporter,一个是通过 nginx_exporter 主要是获取 nginx-status 中的内建的指标,nginx 自身提供 status 信息,较为简单,promethues 中对应的 metrics 也较少。另外一个是可以通过 nginx-vts-exporter 监控更多的指标,但 nginx-vts-exporter 依赖在编译nginx 的时候添加 nginx-module-vts 模块来实现。vts 提供了访问虚拟主机状态的信息,
2021年2月26日,我的第一次开源项目代码贡献被合并了。
这完成了我一个宿愿。几年前老罗向 OpenSSL 捐献手机发布会门票款,我在上班的地铁上看到《隐形战友》这篇文章,有点激动,许下一个心愿:此生哪怕为开源项目贡献一行代码。后来在做模型开发的时候开始参与社区,翻译了一些 Flink 的文档,Flink 的大部分维护者是国人,主力是阿里。大项目要想参与代码贡献是比较难的,尤其是真正有意义的代码,做一做 lint 不能算。所以我先从翻译文档开始,在翻译的过程中可以比较细致的学习项目的功能,同时提高英语读
文章目录一、prometues部署tar包安装下载安装prometues配置启动脚本启动二、prometues的插件安装与使用1. prometues的插件之pushgateway下载pushgateway设置启动脚本配置和使用三、grafana安装配置下载访问修改密码使用配图
一、prometues部署
tar包安装
prometues官网:https://prometheus.io/download/
[root@VM-7-201-centos ~]# wget https://githu
location /automation-api/ {
proxy_pass http://serverstatistics-automation-api-dev:9980/;
location /utilization/ {
proxy_pass http://serverstatistics-utilization-...
Prometheus - 普罗米修斯
文章目录Prometheus - 普罗米修斯计划 及 参考文章介绍安装Promotheusexporter 各种导出器 -> Promotheus安装配置node_exporter配置Promotheus 拉取数据安装Grafana花里胡哨的仪表盘 罒ω罒日志监控 -> Promotheusmtail -测试安装配置mtail配置普罗米修斯调整mtail配置-日志分析栗子-统计报错原因日志监控小结小结其他
计划 及 参考文章
Prometheus
jenkins实例似乎离线
jenkins没有网络,报错 UnknownHostException,如果你尝试了很多文章都提到的替换url地址,但是没什么用,说明你的jenkins可能并没有网络。
如果是用docker启动的jenkins,需要添加参数docker run -it --rm --network=host jenkins /bin/bash,这样容器才能使用到物理机的网络。
如果是k8s部署的jenkins,则需要添加hostNetwork: true字段,加在跟container字段同级