0%

nginx-prometheus

监控Nginx服务器

由于官方没有提供Nginx直接可用的exporter,Nginx的监控要相对复杂一些。这里使用的是三方提供nginx-vts-exporter。

安装Nginx

由于nginx-vts-exporter依赖于Nginx的nginx-module-vts模块,所以这里需要重新编译下Nginx。

  1. 下载对应软件包
    1
    2
    3
    $ cd /root
    $ wget 'http://nginx.org/download/nginx-1.9.2.tar.gz'
    $ git clone git://github.com/vozlt/nginx-module-vts.git
  2. 编译安装Nginx
    1
    2
    3
    4
    5
    $ apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential
    $ tar xzvf nginx-1.9.2.tar.gz
    $ cd nginx-1.9.2
    $ ./configure --add-module=/root/nginx-module-vts
    $ make && make install
  3. 修改Nginx配置 (/usr/local/nginx/conf/nginx.conf)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    http {
    vhost_traffic_status_zone;

    ...

    server {

    ...

    location /status {
    vhost_traffic_status_display;
    vhost_traffic_status_display_format html;
    }
    }
    }
  4. 验证nginx-module-vts模块
    1
    访问 http://IP/status

exporter metrics

安装nginx-vts-exporter

1
2
3
4
$ wget -O nginx-vts-exporter-0.5.zip https://github.com/hnlq715/nginx-vts-exporter/archive/v0.5.zip
$ unzip nginx-vts-exporter-0.5.zip
$ mv nginx-vts-exporter-0.5 /usr/local/prometheus/nginx-vts-exporter
$ chmod +x /usr/local/prometheus/nginx-vts-exporter/bin/nginx-vts-exporter

创建Systemd服务

1
2
3
4
5
6
7
8
9
10
11
12
$ vim /etc/systemd/system/nginx_vts_exporter.service

[Unit]
Description=nginx_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/nginx-vts-exporter/bin/nginx-vts-exporter -nginx.scrape_uri=http://localhost/status/format/json
Restart=on-failure
[Install]
WantedBy=multi-user.target

启动nginx-vts-exporter

1
$ systemctl start nginx_vts_exporter.service

修改prometheus.yml,加入下面的监控目标:

nginx-vts-exporter默认的抓取地址为http://IP:9913/metrics