使用cacti监控nginx状态需要nginx启用了ngx_http_stub_status_module模块。
通过该模块,我们可以监控nginx的各项状态。
关于运行中的nginx增加模块请参考为运行中的nginx添加模块

在nginx配置文件中增加一个配置

server {
        listen 10.0.0.40:80;
        server_name  localhost;
location /nginx_status {
        stub_status on;
        access_log off;
        allow 10.0.0.57;
        allow 127.0.0.1;
        deny all;
        }
}

重启nginx之后
通过访问http://10.0.0.40/nginx_status可以看到下面的状态。
nginx_status

Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了38810620个连接,成功创建38810620次握手(证明中间没有失败的),总共处理了298655730个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接.
所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中.

接下来为cacti添加模板。
首先下载插件:


解压后一共有5个文件,首先把 get_nginx_socket_status.pl 以及 get_nginx_clients_status.pl 上传至服务器cacti 目录下scripts 并设置可执行权限跟755读写权限。

检测插件(举例)

shell> ./get_nginx_socket_status.pl http://10.0.0.40/nginx_status
nginx_accepts:25751 nginx_handled:25751 nginx_requests:25766 

显示的内容跟 NginxStatus 状态页内容相当即可。
然后在cacti管理面板导入xml文件
导入的方式是 Import Templates > Import Template from Local File (浏览导入插件包另外2个文件)
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
然后你就能在 Graph Templates 中看到你刚所导入 Xml 后所产生的模板
Nginx Clients Stat
Nginx Sockets Stat
接下来选择device添加刚才这两个模版就可以了。