运维监控 — nginx metric 的监控搭建

nginx 是现代 web 服务栈中最重要的组件之一,本文主要介绍通过 telegraf 和 Pandora TSDB 来收集 nginx 的 metric 数据。

监控内容

本文假设 nginx 的版本为开源版本的 nginx

  • accepts
  • active
  • handled
  • reading
  • writing
  • waiting
  • requests

商业版本的 nginx 有更多的 metric 数据

快速开始

1. 确认 nginx stub status module 被打开

  1. nginx -V 2>&1 | grep -o with-http_stub_status_module

如果这条命令的输出为with-http_stub_status_module,那么表示该 nginx 是支持 stub status module 的。

如果这条命名没有任何输出,那么需要重新编译 nginx

  1. ./configure \
  2. ... \
  3. --with-http_stub_status_module
  4. make
  5. sudo make install

2. 配置 nginx,确保 stub status 能被访问到

添加配置

  1. server {
  2. location /nginx_status {
  3. stub_status on;
  4. access_log off;
  5. allow 127.0.0.1;
  6. deny all;
  7. }
  8. }

!> 注意:server字段一般不写在 nginx 的主配置文件中(比如:/etc/nginx/nginx.conf),而是写在子配置文件中,通过在主配置文件中include的方式引入。

  1. nginx -t

可以找到主配置文件的位置

打开主配置文件,找到类似include /etc/nginx/conf.d/*.conf;的字样,然后找到任一配置文件,按照上述 server 的配置进行修改

最后执行

  1. nginx -s reload
  1. $ curl http://localhost/nginx_status
  2. Active connections: 2
  3. server accepts handled requests
  4. 34 34 741
  5. Reading: 0 Writing: 1 Waiting: 1

看到以上字样说明配置成功。

3. 在七牛应用市场打开 Grafana 应用,然后按照下图所示的配置:

nginx metric性能监控 - 图1

注意事项:

nginx metric性能监控 - 图2

4. 导入 Grafana dashboard 配置文件

下载 Grafana dashboard 配置文件

  1. wget http://orzfblcum.bkt.clouddn.com/NGINX.json

将下载的 dashboard 导入 Grafana

nginx metric性能监控 - 图3

完成!