目標:
nginx cronolog日誌分割配置文檔,每分鐘分割一次NGINX訪問日誌。
大致步驟以下:
1.nginx日誌配置 access_log /var/log/nginx/access.log_pipe main;
2.先建立一個命名管道
mkfifo /var/log/nginx/access.log_pipe
3.配置cronolog按年月日時分保存分割後的文件
nohup cat /var/log/nginx/access.log_pipe | cronolog /var/log/nginx/domain.access_%Y%m%d%H%M.log 2>&1 &
4.啓動Nginx
/usr/local/nginx/sbin/nginx
注意: cronolog必須在nginx啓動前啓動
最後詳細講解下cronolog的安裝使用:node
(1).直接用yum安裝nginx
1
|
[root@node6 src] # yum install -y cronolog httpd
|
好了,到這裏咱們的cronolog就安裝完成了,下面咱們來講一下cronolog如何使用。bash
(3)cronolog 使用dom
.基本使用this
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@node6 ~] # cronolog -h
usage: cronolog [OPTIONS] logfile-spec
-H NAME, --hardlink=NAME maintain a hard link from NAME to current log
-S NAME, -- symlink =NAME maintain a symbolic link from NAME to current log
-P NAME, --prev- symlink =NAME maintain a symbolic link from NAME to previous log
-l NAME, --link=NAME same as -S /--symlink
-h, --help print this help, then exit
-p PERIOD, --period=PERIOD set the rotation period explicitly
-d DELAY, --delay=DELAY set the rotation period delay
-o, --once-only create single output log from template (not rotated)
-x FILE, --debug=FILE write debug messages to FILE
( or to standard error if FILE is "-" )
-a, --american American date formats
-e, --european European date formats (default)
-s, --start- time =TIME starting time
-z TZ, -- time -zone=TZ use TZ for timezone
-V, --version print version number, then exit
|
cronolog 通常是採起管道的方式來工做的,採用以下的形式:spa
1
|
[root@node6 ~] # loggenerator | cronolog log_file_pattern
|
其中,loggenerator爲產生log的程序,而log_file_pattern是日誌文件的路徑,能夠在其中加入cronolog所支持的時間相關的pattern字符,如/www/log/%y/%m/%d/access.log。其pattern爲%字符後跟一特殊字符,簡述以下:debug
轉義符: 日誌
1
2
3
|
% %字符
n 換行
t 水平製表符
|
時間域: code
1
2
3
4
5
6
7
|
H 小時(00..23)
I 小時(01..12)
p 該locale下的AM或PM標識
M 分鐘(00..59)
S 秒 (00..61, which allows for leap seconds)
X 該locale下時間表示符(e.g.: "15:12:47" )
Z 時區。若時區不能肯定,則無心義
|
日期域: regexp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
a 該locale下的工做日簡名(e.g.: Sun..Sat)
A 該locale下的工做日全名(e.g.: Sunday .. Satur-ay)
b 該locale下的月份簡稱(e.g.: Jan .. Dec)
B 該locale下的月份全稱(e.g.: January .. December)
c 該locale下的日期和時間(e.g.: "Sun Dec 15 14:12:47 GMT 1996" )
d 當月中的天數 (01 .. 31)
j 當年中的天數 (001 .. 366)
m 月數 (01 .. 12)
U 當年中的星期數,以週日做爲一週開始,其中第一週爲首個含星期天的星期(00..53)
W 當年中的星期數,以星期一做爲一週的開始,其中第一週爲首個含星期天的星期(00..53)
w 工做日數(0 .. 6, 0表示星期天)
x 該locale下的日期表示(e.g. "13/04/97" )
y 兩位數的年份(00 .. 99)
Y 四位數的年份(1970 .. 2038)
|
下面是效果
1
2
3
4
5
6
7
|
[root@localhost ~] # cd /log/www/
[root@localhost www] # ll
total 15072
-rw-r--r-- 1 root root 16028 Dec 26 15:16 access_20131225.log
-rw-r--r-- 1 root root 2406307 Dec 26 23:59 access_20131226.log
-rw-r--r-- 1 root root 8292792 Dec 27 23:59 access_20131227.log
-rw-r--r-- 1 root root 4682211 Dec 28 18:56 access_20131228.log
|