使用nginx-prometheus-exporter 监控nginx

摘要:
因为nginx提供了stubs_一般来说,我们可以基于此监视状态模块。目前,官方提供了一个出口商,尽管有一些限制。

因为nginx 已经提供了stub_status 模块,一般我们可以基于此进行监控,目前官方提供了一个exporter
尽管有一些限制(web必须使用8080)。以下是一个简单的学习使用

环境准备

  • docker-compose 文件
    注意使用了ranadeeppolavarapu 提供的nginx 镜像(很方便,可以学习各种nginx 插件的使用)
 
version: "3"
services:
    httpservice:
        image: ranadeeppolavarapu/nginx-http3:edge
        volumes:
            - "./nginx.conf:/etc/nginx/nginx.conf"
            - "./h3.nginx.conf:/etc/nginx/conf.d/h3.nginx.conf"
            - "./status.conf:/etc/nginx/conf.d/status.conf"
            - "./localhost.crt:/etc/ssl/localhost.crt"
            - "./localhost.key:/etc/ssl/localhost.key"
        ports:
            - "443:443/tcp"
            - "443:443/udp"
            - "8080:8080"
    prome:
        image: nginx/nginx-prometheus-exporter:0.8.0
        command: -nginx.scrape-uri http://httpservice:8080/stub_status
        ports:
            - "9113:9113"
  • nginx 配置
    nginx.conf:
    核心部分主要是关于nginx 的配置加载
  include /etc/nginx/conf.d/*.conf;

status.conf:

server {
  listen 8080;
  server_name localhost;
  gzip on;
  gzip_http_version 1.1;
  gzip_vary on;
  gzip_comp_level 6;
  gzip_proxied any;
  gzip_types text/plain text/css application/json application/javascript application/x-javascript text/javascript;
  brotli_static on;
  brotli on;
  brotli_types text/plain text/css application/json application/javascript application/x-javascript text/javascript;
  brotli_comp_level 4;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
  }
  location = /stub_status {
    stub_status;
  }
}
  • 启动访问效果

exporter信息
使用nginx-prometheus-exporter 监控nginx第1张

说明

nginx-prometheus-exporter 的实现并不是很难,可以学习下实现,而且目前官方也提供了grafana 的dashboard 配置,但是总的来说监控点
还是太弱了

参考资料

https://github.com/nginxinc/nginx-prometheus-exporter
http://nginx.org/en/docs/http/ngx_http_stub_status_module.html
https://github.com/RanadeepPolavarapu/docker-nginx-http3

免责声明:文章转载自《使用nginx-prometheus-exporter 监控nginx》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IDEA中阿里JAVA代码规范插件(P3C)的安装及使用vue中使用Ueditor编辑器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

nginx配置静态路径

原因:文件资料上传至ftp上,由于需要大量图片回显,导致服务器压力过大,反应不过来,所以改为通过nginx做静态资源代理。 服务器路径为:/var/ftp/2020/10/09/12a1b8f973fc4d51b67e9a168fcb757f1602227927258.jpg 初次尝试,是通过: location /ftp/ {      root /va...

nginx 限制ip访问频率和限速 (摘录)

限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃。   ...

Nginx开机自启

编写service脚本: vim /usr/lib/systemd/system/nginx.service 将以下内容复制到nginx.service文件中 ps:我的nginx目录是/usr/local/nginx [Unit] Description=nginx After=network.target [Service] Type=fork...

在Windows环境下搭建Snort+BASE入侵检测系统

操作系统: Windows 7 (service pack 1) 所需软件: 虚拟机:VirtualBox 网络数据包截取驱动程序:WinPcap 4.1.3 (WinPcap_4_1_3.exe) Windows版本的Snort安装包:Snort 2.8.6 for Win32 (Snort_2_8_6_Installer.exe) 官方认证S...

nginx服务器下 PHP 出现 502 解决方案

https://blog.csdn.net/qq_34625397/article/details/51744859 nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端php-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题导致不能正确解析php代码,最终返回给了...

wed的各种前端打印方法(2)

JQery打印插件PrintArea实现网页打印: 第一步: jquery.PrintArea.js下载 js引用 1 <script language="javascript" src="http://t.zoukankan.com/jquery-1.7.1.min.js"></script> 2 <script type...