注:《Cacti和Zabbix所需Nginx安装配置》系列三篇文章的部分内容摘抄自公司同事编写的技术文档,在此对他致以衷心的谢意!

Cacti、Nagios、Zabbix都是生产环境常用的监控软件,为了整合资源便于管理一般都将这三种监控软件整合到一台服务器中,下面是工作中总结的适合Cacti、Zabbix、Nagios的编译参数和基本配置方法,希望对大家有帮助。

1. naginx编译和安装配置(nginx-1.1.12

 
  
  1. yum -y install "pcre*"
  2.  
  3. ./configure \ 
  4. --with-cc-opt=-'O3' \ 
  5. --user=daemon --group=daemon \ 
  6. --prefix=/usr/local/nginx-1.1.12 \ 
  7. --with-http_stub_status_module \ 
  8. --with-http_ssl_module 
  9.  
  10. make && make install
  11.  
  12. cd /usr/local; ln -s nginx-1.1.12 nginx
  13.  
  14. mkdir /data/website/sample.troodo.net/{htdocs,logs}

2. nginx访问日志切割脚本安装

nginx没有自带按天切割访问日志的功能,也无法通过cronolog来切割日志,所以只能以每天执行脚本的方式来实现这个功能,执行以下命令生成用于按天切割nginx访问日志的脚本,并添加到crontab中每天执行

 
  
  1. 1. 创建/usr/local/nginx/sbin/cut-nginx-log.sh文件,并将以下代码复制到该文件中
  2.  
  3. #!/bin/bash 
  4. # This script run at 00:00 
  5. # cut yesterday log and gzip 8th day before yesterday log files. 
  6.  
  7. webroot=/data/website 
  8. sitespath=`ls -F $webroot|grep "/"|sed 's:/::g'
  9. for sitepath in $sitespath 
  10.    do 
  11.      logs_path="$webroot/$sitepath/logs" 
  12.      date_dir=$logs_path/$(date -d "-1day" +"%Y%m"
  13.      earlyday_date_dir=$logs_path/$(date -d "-8day" +"%Y%m"
  14.      gzip_date=$(date -d "-8day" +"%y%m%d"
  15.  
  16.      mkdir -p $date_dir 
  17.      mv $logs_path/access.log $date_dir/access_log.$(date -d "-1day" +"%y%m%d"
  18.      /usr/local/nginx/sbin/nginx -s reopen 
  19.  
  20.      echo $earlyday_date_dir 
  21.      cd $earlyday_date_dir 
  22.      sed -i '/211.139.94.254/d' access_log.$gzip_date 
  23.      sed -i '/"-" 400 0 "-" "-" "-"/d' access_log.$gzip_date 
  24.      tar czf access_log_$gzip_date.tgz access_log.$gzip_date 
  25.      rm -f access_log.$gzip_date 
  26.      find $webroot/$sitepath/logs -name "*" -mtime +60 -exec rm -f {} \; 
  27. done 
  28.  
  29. 2. 执行以下命令 将nginx分隔日志脚本添加到crontab中
  30.  
  31. chmod +x cut-nginx-log.sh 
  32. sed -i '/cut-nginx-log.sh/d' /var/spool/cron/root 
  33. echo "0 0 * * * /usr/local/nginx/sbin/cut-nginx-log.sh > /dev/null 2>&1" >> /var/spool/cron/root

3. 由于博文字数限制 nginx基本配置请参看“Cacti和Zabbix所需Nginx安装配置(二)”(http://rolandqu.blog.51cto.com/3477736/945704)

4. 由于博文字数限制 nginx启动脚本配置请参看“Cacti和Zabbix所需Nginx安装配置(三)”(http://rolandqu.blog.51cto.com/3477736/945707)