注:《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)