04 centos實現nginx日記滾動
在上一篇當中,已經搭建好nginx+tomcat實現動靜資源的分離。
接下來,使用ab做壓力測試:
2.使用ab進行壓力測試
//-c : 設定併發度,同時訪問的線上人數
//-n : 設定總的訪問請求數。
cmd>ab -c 100 -n 10000 http://localhost:80/eshop/phone/iphonex.html
3就會發現
s128佔了1份,s129,s130,s131分別佔了四份,因為是上一篇中window10上的nginx反向代理伺服器將它們權重分別設定為1,4,4,4.
因為在本專案當中,整個收集資料流程是這樣的:
當客戶訪問瀏覽器,在nginx上產生資料,然後每臺機開啟flume監聽日記動態生成,將新生成的資料傳送到kafka叢集,然後開啟兩個消費者,一個是hdfs消費者,將儲存到kafka叢集的資料直接進行儲存(原生資料),另外一個是hive消費者,從kafka叢集中提取資料,然後進行資料清洗進行實時計算等等。。為了優化hdfs的儲存,需要將每日生成的資料在hdfs中以時間來命名,所以,這時需使用到了centos的排程(最小到分鐘)即nginx的日記滾動。
使用centos的cron機制實現nginx的日誌滾動。(排程)
-----------------------------------------------
[/usr/local/bin/rolllog.sh]
#!/bin/bash
#
dataformat=`date +%Y-%m-%d-%H-%M`
#
cp /soft/nginx-1.6.3/logs/access.log /soft/nginx-1.6.3/logs/access_$dataformat.log
host=`hostname`
sed -i 's/^/'${host}',&/g' /soft/nginx-1.6.3/logs/access_$dataformat.log
#
lines=`wc -l < /soft/nginx-1.6.3/logs/access_$dataformat.log`
#move access-xxx.log flume's spooldir
mv /soft/nginx-1.6.3/logs/access_$dataformat.log /soft/nginx-1.6.3/logs/flume
#delete rows
sed -i '1,'${lines}'d' /soft/nginx-1.6.3/logs/access.log
#reboot nginx , otherwise log can not roll.
kill -USR1 `cat /soft/nginx/logs/nginx.pid`
然後編輯cron配置
$>sudo nano /etc/crontab
[/etc/crontab]
...
PATH=...:/usr/local/bin
...
* * * * * centos testcron.sh
儲存退出。
重啟crontab伺服器
$>sudo service crond restart
會發現在
每分鐘產生一個以時間命名的檔案,裡面存放的是此時間段使用者訪問的資料。