轨道 · 写下来的字

nginx-prometheus

2020.01.08

监控Nginx服务器

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

安装Nginx

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

  1. 下载对应软件包
$ cd /root
$ wget 'http://nginx.org/download/nginx-1.9.2.tar.gz'
$ git clone git://github.com/vozlt/nginx-module-vts.git
  1. 编译安装Nginx
$ 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
  1. 修改Nginx配置 (/usr/local/nginx/conf/nginx.conf)
http {
    vhost_traffic_status_zone;

    ...

    server {

        ...

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

exporter metrics

安装nginx-vts-exporter

$ 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服务

$ 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

$ systemctl start nginx_vts_exporter.service

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

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

scrape_configs:
  - job_name: nginx
    static_configs:
      - targets: ["127.0.0.1:9913"]
← 回到文章