nginx日誌文件需要手動分割,創建腳本文件clear_log.sh
文件路徑/usr/local/nginx/clear_log.sh
vi clear_log.sh。輸入如下內容
#!/bin/bash
cp /usr/local/nginx/logs/error.log /usr/local/nginx/error-$(date -d 「yesterday」 +「%Y%m%d」).log
#先復制原來的錯誤日誌文件,請根據自己實際的日誌路徑填寫
cat /dev/null 》 /usr/local/nginx/logs/error.log
#清空錯誤日誌文件
cp/usr/local/nginx/logs/access.log /var/log/nginx/access/access-$(date -d 「yesterday」 +「%Y%m%d」).log
#先復制原來的正常訪問日誌
cat /dev/null 》 /usr/local/nginx/logs/access.log
#清空原來的正常訪問日誌
創建dellog.sh文件,路徑/usr/local/nginx
vi dellog.sh
#!/bin/sh
find /usr/nginx/logs/error -mtime +7 -type f -name /*.log | xargs rm -f
find /usr/nginx/logs/access -mtime +7 -type f -name /*.log | xargs rm -f
#定期刪除七天前的日誌文件
啟動linux下的計劃任務,將剛才創建好的兩個shell腳本加入此計劃
crontab -e,輸入如下內容
0 0 * * * /usr/nginx/clear_log.sh
#每天0點執行/usr/nginx/clear_log.sh
0 0 * * * /usr/nginx/dellog.sh
#每天0點執行 /usr/nginx/dellog.sh
保存後退出,輸入命令crontab root就會看到/var/spool/cron/文件夾下看到相應的副本文件root。至此完成nginx日誌按天拆分與定期清除。
邏輯詳解:比如現在是3月18日0點0分,系統會自動執行clear_log.sh與dellog.sh兩個shell腳本。clear_log.sh會把3月17日的日誌文件分別生成為access_20140317.log與error_20140318.log,然後把原來的access.log與error.log分別清空。dellog.sh則會自動判斷該文件的創建時間,如果是十五天前的就會自動清除
上面就是Linux清理Nginx日誌的方法介紹了,因為Nginx日誌沒有自動清理的功能,一般採用切割日誌的方法進行處理。
『貳』 Linux系統怎麼分析Nginx日誌
Linux系統下Nginx 日誌可以查看系統運行記錄和出錯說明,對Nginx 日誌的分析可以了解系統運行的狀態。那麼Linux系統Nginx日誌怎麼分析呢?
Nginx 日誌相關配置有 2 個地方:access_log 和 log_format 。
默認的格式:
access_log /data/logs/nginx-access.log;
log_format old 『$remote_addr [$time_local] $status $request_time $body_bytes_sent 』
『「$request」 「$http_referer」 「$http_user_agent」』;
相信大部分用過 Nginx 的人對默認 Nginx 日誌格式配置都很熟悉,對日誌的內容也很熟悉。但是默認配置和格式雖然可讀,但是難以計算。
Nginx 日誌刷盤相關策略可配置:
比如,設置 buffer,buffer 滿 32k 才刷盤;假如 buffer 不滿 5s 鍾強制刷盤的配置如下:
access_log /data/logs/nginx-access.log buffer=32k flush=5s;
這決定了是否實時看到日誌以及日誌對磁碟 IO 的影響。
Nginx 日誌能夠記錄的變數還有很多沒出現在默認配置中:
比如:
請求數據大小:$request_length
返回數據大小:$bytes_sent
請求耗時:$request_time
所用連接序號:$connection
當前連接發生請求數:$connection_requests
Nginx 的默認格式不可計算,需要想辦法轉換成可計算格式,比如用控制字元 ^A (Mac 下 ctrl+v ctrl+a 打出)分割每個欄位。
log_format 的格式可以變成這樣:
log_format new 『$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A』
『$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent』;
這樣之後就通過常見的 Linux 命令行工具進行分析了:
查找訪問頻率最高的 URL 和次數:
cat access.log | awk -F 『^A』 『{print $10}』 | sort | uniq -c
查找當前日誌文件 500 錯誤的訪問:
cat access.log | awk -F 『^A』 『{if($5 == 500) print $0}』
查找當前日誌文件 500 錯誤的數量:
cat access.log | awk -F 『^A』 『{if($5 == 500) print $0}』 | wc -l
查找某一分鍾內 500 錯誤訪問的數量:
cat access.log | awk -F 『^A』 『{if($5 == 500) print $0}』 | grep 』09:00』 | wc-l
查找耗時超過 1s 的慢請求:
tail -f access.log | awk -F 『^A』 『{if($6》1) print $0}』
假如只想查看某些位:
tail -f access.log | awk -F 『^A』 『{if($6》1) print $3″|」$4}』
查找 502 錯誤最多的 URL:
cat access.log | awk -F 『^A』 『{if($5==502) print $11}』 | sort | uniq -c
查找 200 空白頁
cat access.log | awk -F 『^A』 『{if($5==200 && $8 《 100) print $3″|」$4″|」$11″|」$6}』
查看實時日誌數據流
tail -f access.log | cat -e
或者
tail -f access.log | tr 『^A』 『|』
照著這個思路可以做很多其他分析,比如 UA 最多的訪問;訪問頻率最高的 IP;請求耗時分析;請求返回包大小分析;等等。
這就是一個大型 Web 日誌分析系統的原型,這樣的格式也是非常方便進行後續大規模 batching 和 streaming 計算。
以上就是Linux系統Nginx日誌怎麼分析的全部內容了,可以看出來Nginx日誌還是有很強大的作用的。
『叄』 linux系統,我把那些日誌全刪了,結果nginx就啟動不了了。 其他軟體無影
方法/步驟
先打開winSCP軟體進root賬號,/us/local/nginx/logs下面,看到只剩下error.log一個文件了,本身應該是access.log error.log nginx.pid三個文件,因為刪除了access.log,導致nginx無法運行了,我先把error.log文件download到本地,如圖
在本地將error.log文件重命名為access.log,再上傳到伺服器上logs文件夾下
此時啟動nginx是無法啟動的,報錯nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory),啟動nginx.pid失敗,
這個時候就要運行 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf命令,大家配置伺服器的習慣不一樣,可能路徑也不一樣。使用nginx -c的參數指定nginx.conf文件的位置
4
reboot一下伺服器以後,我用了./nginx -s reload命令,發現logs下面nginx.pid已經出來了,我運行了下網站,打開了
『肆』 linux nginx 編譯安裝的 怎麼啟動
linux nginx 編譯安裝的 怎麼啟動
–prefix=path
定義保存伺服器文件的目錄。這個目錄同時將作用於nginx.conf配置文件中配置的相對路徑(但不包括源碼庫的路徑)。默認值為/usr/local/nginx。
–sbin-path=path
設置nginx可執行文件的名稱,該名稱只在安裝期間使用。默認值是prefix/sbin/nginx
–conf-path=path
設置nginx.conf配置文件的名稱。如果需要,nginx可以使用不同的配置文件啟動,你可以通過命令行參數 -c file啟動。默認文件名為prefix/conf/nginx.conf
–pid-path=path
設置nginx.pid文件的名稱,nginx.pid用於存儲主進程的進程ID。安裝後,該文件名稱可以在nginx.conf的pid指令中修改。默認為prefix/logs/nginx.pid
–error-log-path=path
設置重要的錯誤、警告以及診斷文件的名字。安裝後,可以通過nginx.conf的error_log指令修改。默認為prefix/logs/error.log
–http-log-path=path
記錄主要請求日誌的名稱,安裝後通過access_log指令修改。默認為prefix/logs/access.log
–user=name
設置工作進程的用戶名,安裝後可以通過user指令修改。默認值為nobody
–group=name
設置工作進程的用戶組,安皇後可以通過user指令修改,默認與user相同。
–with-xxx_mole
安裝xxx模塊,這些模塊可以在nginx文檔中找到。
–without-xxx_mole
不安裝xxx模塊(有些模塊是默認安裝的,如果不想安裝,可以通過這個參數屏蔽),這些模塊可以在nginx文檔中找到。
『伍』 Linux系統日誌怎麼查看
1. 前言
在Linux日常管理中,我們肯定有查看某些服務的日誌需求,或者是系統本身的日誌。本文主要介紹如何查看Linux的系統日誌,包括文件的路徑、工具的使用等等。會看Linux日誌是非常重要的,不僅在日常操作中可以迅速排錯,也可以快速的定位。
2. 如何查看Linux日誌
Linux日誌文件的路徑一般位於,/var/log/,比如ngix的日誌路徑為/var/log/nginx/,如果要查看某服務的日誌,還可以使用systemctl status xxx,比如查看ssh服務的壯態,systemctl status sshd
查看Linux某服務的日誌
Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息
在linux系統當中,有三個主要的日誌子系統:
1、連接時間日誌:由多個程序執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,
login等程序會更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
2、進程統計:由系統內核執行,當一個進程終止時,為每個進程往進程統計文件中寫一個記錄。進程統計的目的是為系統中的基本服務提供命令使用統計
3、錯誤日誌:由rsyslogd守護程序執行,各種系統守護進程、用戶程序和內核通過rsyslogd守護程序向文件/var/log/messages報告值得注意的時間。另外有許多linux程序創建日誌,像HTTP和FTP這樣提供的伺服器也保持詳細的日誌。
4、其他日誌……
查看Linux日誌默認路徑
可以看到在/var/log目錄下存在很多的日誌文件,接下來就對裡面的一些常用日誌文件進行分析
主要日誌文件介紹:
內核及公共消息日誌:/var/log/messages
計劃任務日誌:/var/log/cron
系統引導日誌:/var/log/dmesg
郵件系統日誌:/var/log/maillog
用戶登錄日誌:/var/log/lastlog
/var/log/boot.log(記錄系統在引導過程中發生的時間)
/var/log/secure (用戶驗證相關的安全性事件)
/var/log/wtmp(當前登錄用戶詳細信息)
/var/log/btmp(記錄失敗的的記錄)
/var/run/utmp(用戶登錄、注銷及系統開、關等事件)
日誌文件詳細介紹:
/var/log/secure
Linux系統安全日誌,記錄用戶和工作組的情況、用戶登陸認證情況
例子:我創建了一個zcwyou的用戶,然後改變了該用戶的密碼,於是該信息就被記錄到該日誌下
Linux系統安全日誌默認路徑
該日誌就詳細的記錄了我操作的過程。
內核及公共信息日誌,是許多進程日誌文件的匯總,從該文件中可以看出系統任何變化
查看Linux內核及公共信息日誌
系統引導日誌
該日誌使用dmesg命令快速查看最後一次系統引導的引導日誌
查看Linux系統系統引導日誌
最近的用戶登錄事件,一般記錄最後一次的登錄事件
該日誌不能用諸如cat、tail等查看,因為該日誌裡面是二進制文件,可以用lastlog命令查看,它根據UID排序顯示登錄名、埠號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示 Never logged。
該日誌文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件。該日誌為二進制文件,不能用諸如tail/cat/等命令,使用last命令查看。
記錄郵件的收發
此文件是記錄錯誤登錄的日誌,可以記錄有人使用暴力破解ssh服務的日誌。該文件用lastb打開
該日誌記錄當前用戶登錄的情況,不會永久保存記錄。可以用who/w命令來查看
3. 常用的日誌分析工具與使用方法
3.1 統計一個文本中包含字元個數
3.2 查看當天訪問排行前10的url
3.3 查看apache的進程數
3.4 訪問量前10的IP
cut部分表示取第1列即IP列,取第4列則為URL的訪問量
3.5 查看最耗時的頁面
按第2列響應時間逆序排序
3.6 使用grep查找文件中指定字元出現的次數
-o 指示grep顯示所有匹配的地方,並且每一個匹配單獨一行輸出。這樣只要統計輸出的行數就可以知道這個字元出現的次數了。
4. 總結
查看Linux日誌需求了解和熟悉使用一些常用的工具方能提升我們的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日誌和使用 Rsyslog 和 AWK 過濾等等,只要能掌握這些工具。我們才能高效地處理和定位故障點。
https://www.linuxrumen.com/rmxx/647.html