环境debian lenny:
Cacti监控主机:192.168.206.160
Nginx服务器:192.168.206..161
1、 首先在编译nginx时允许http_stub_status_module,不然是监控不到nginx的运行状态的
2、编辑配置文件,在要监控的虚拟主机里加入如下内容:
# vi /usr/local/nginx/conf/nginx.conf
###nginx monitor
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.206.0/24;
deny all;
}
3、重新加载nginx的配置文件
# /etc/init.d/nginx restart
4、下载cacti for nginx插件包
在Cacti主机上下载nginx监控模板
# wget http://forums.cacti.net/download.php?id=12676
解压后一共有5个文件
# tar xvfz cacti-nginx.tar.gz
# ls -l /home/lai/cacti-nginx
总计 48
-rw-r--r-- 1 lai lai 18775 05-25 15:10 cacti_graph_template_nginx_clients_stat.xml
-rw-r--r-- 1 lai lai 15376 2008-03-21 cacti_graph_template_nginx_sockets_stat.xml
-rw-r--r-- 1 lai lai 1160 2008-03-21 cacti-nginx-readme
-rwxr-xr-x 1 lai lai 941 2008-03-21 get_nginx_clients_status.pl
-rwxr-xr-x 1 lai lai 910 2008-03-21 get_nginx_socket_status.pl
把两个perl脚步传到cacti服务器的cacti网站目录的scripts下
#cp get_nginx_clients_status.pl /usr/share/cacti/site/scripts/
#cp get_nginx_socket_status.pl /usr/share/cacti/site/scripts/
修改这两个脚本的权限755
# chmod 755 /data/cacti/scripts/get_nginx*
5、检测插件
# ./get_nginx_clients_status.pl http://192.168.206.161/nginx_status
输出信息:nginx_active:245 nginx_reading:11 nginx_writing:4 nginx_waiting:230
#./get_nginx_socket_status.pl http://192.168.206.161/nginx_status
输出信息:nginx_accepts:41377 nginx_handled:41377 nginx_requests:223307
这样插件就安装成功了
6、最后在cacti的web管理面板导入以下2个监控模板文件Import Templates
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
导入成功会显示:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cacti has imported the following items: GPRINT Preset [success] Normal [update]Data Input Method [success] nginx clients stat [update]Data Template [success] Nginx Clients Stat [update]Graph Template [success] Nginx Clients Stat [update] |
然后你就能在 Graph Templates 中看到你刚所导入 Xml 后所产生的模板
接着进入New Graphs 选择任意一台已经创建好图标的监控服务器,或选择已有Devices。在Associated Graph Templates中添加
7、添加主机,创建图形的时候会提示你输入URL of nginx stub status,后面你所监控的页面额url,比如上面我们的http://192.168.206.161/nginx_status ,然后稍等几分钟数据就会出来了。