企業級Nginx增長日誌選項

日誌介紹

目的:將用戶的訪問信息記錄到指定的文件中由ngx_http_log_module模塊負責html

訪問日誌參數:nginx

access_log:指定日誌文件的路徑和使用何種日誌格式記錄日誌shell

log_format:用來指定日誌的格式windows

能夠放置標籤段: main,http,server,location瀏覽器

image

日誌格式緩存

image

添加日誌:併發

sed -i '1 i error_log  logs/error.log  error;' /usr/local/nginx/conf/nginx.conf

建立日誌路徑:高併發

mkdir -p /usr/local/nginx/logs

配置訪問日誌(使用默認的配置)

1. 配置log_format(在http中配置)工具

sed -n '21,24p' nginx.conf.default    

取出信息後添加都nginx.conf的http模塊中(server以前)測試

image

2. 配置access_log(最好在虛擬主機裏面配置,便於統計)

默認配置:#access_log  logs/access.log  main;

image

放置位置:http  server location

本機配置:在單獨的虛擬域名的location後配置(注意封號)

server {
        listen       80;
        server_name  www.etiantian.com etiantian.com;
        location / {
            root   html/etiantian;
            index  index.html index.htm;
        }
access_log logs/access_etiantian.log main;
}            # main 表示全局,全部的訪問虛擬主機etianitian的都會打入

3. 配置windows的hosts解析

C:\Windows\System32\drivers\etc

image

4. 測試結果

瀏覽器訪問www.etiantian.com【注意,真實環境也有此IP,本次僅做實驗用,記得恢復hosts文件】

image

關於日誌的深刻研究

  1. 高併發能夠寫入緩存

access_log log/access_baobaotao.log main gzip buffer=32k flush=5s;

  2. nginx訪問日誌的輪詢處理(日誌按天分割)   -->推薦

原因:指定的訪問日誌長時間寫入會致使文件過大而沒法分析,能夠使用切割腳本

#!/bin/sh
Dateformat=`date +%Y%m%d`
Basedir="/usr/local/nginx"
Nginxlogdir="$Basedir/logs"
Logname="access_etiantian"
[ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1
[ -f ${Logname}.log ] || exit 1
/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log
$Basedir/sbin/nginx -s reload

   3.切割腳本添加到定時任務

crontab –e 
 00 00 * * * /bin/sh cut_nginx.sh &>/dev/null

關於日誌收集的工具

自帶:syslog  rsyslog

開源:flume logstash scrible Awstats ELK

相關文章
相關標籤/搜索