新聞中心
Linux常見日志統(tǒng)計分析命令
在上文中,我們已經詳細介紹 linux 三劍客的基本使用,接下來我們看看具體在性能測試領域的運用,本文主要介紹的是在 Tomcat 和 Nginx access日志的統(tǒng)計分析。
創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站制作、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元布爾津做網站,已為上家服務,為布爾津各地企業(yè)和個人服務,聯(lián)系電話:13518219792
server.xml 使用配置方式,%D-請求時間,%F-響應時間
字段說明如下:
日志樣例:
使用默認 combined 的經典格式上擴展 response_timeupstream_response_time
nginx.conf 使用配置方式:
字段說明如下:
日志示例:
為了能理解 AWK 程序,我們下面概述其基本知識。
模式( pattern ) 用于匹配輸入中的每行文本。對于匹配上的每行文本,awk 都執(zhí)行對應的 動作( action )。模式和動作之間使用花括號隔開。awk 順序掃描每一行文本,并使用 記錄分隔符(一般是換行符)將讀到的每一行作為 記錄,使用 域分隔符( 一般是空格符或制表符 ) 將一行文本分割為多個 域, 每個域分別可以使用 2, … 表示。1 表示第一個域,表示第二個域,n 表示第 n 個域。 $0 表示整個記錄。模式或動作都可以不指定,缺省模式的情況下,將匹配所有行。缺省動作的情況下,將執(zhí)行動作 {print},即打印整個記錄。
此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。 使用 awk 分解出Nginx access日志中的信息
以此類推…… 當我們使用默認的域分割符時,我們可以從日志中解析出下面不同類型的信息:
我們不難發(fā)現(xiàn),僅使用默認的域分隔符,不方便解析出請求行、引用頁和瀏覽器類型等其他信息,因為這些信息之中包含不確定個數的空格。 因此,我們需要把域分隔符修改為 “ ,就能夠輕松讀出這些信息。
注意:這里為了避免 Linux Shell 誤解 “ 為字符串開始,我們使用了反斜杠,轉義了 “ 。 現(xiàn)在,我們已經掌握了 awk 的基本知識,以及它是怎樣解析日志的。
此處使用Nginx access.log 舉例,Tomcat 日志自己舉一反三。
如果我們想知道那些類型的瀏覽器訪問過網站,并按出現(xiàn)的次數倒序排列,我可以使用下面的命令:
此命令行首先解析出瀏覽器域,然后使用管道將輸出作為第一個 sort 命令的輸入。第一個 sort 命令主要是為了方便 uniq 命令統(tǒng)計出不同瀏覽器出現(xiàn)的次數。最后一個 sort 命令將把之前的統(tǒng)計結果倒序排列并輸出。
我們可以使用下面的命令行,統(tǒng)計服務器返回的狀態(tài)碼,發(fā)現(xiàn)系統(tǒng)可能存在的問題。
正常情況下,狀態(tài)碼 200 或 30x 應該是出現(xiàn)次數最多的。40x 一般表示客戶端訪問問題。50x 一般表示服務器端問題。 下面是一些常見的狀態(tài)碼:
HTTP 協(xié)議狀態(tài)碼定義可以參閱:
查找并顯示所有狀態(tài)碼為 404 的請求
統(tǒng)計所有狀態(tài)碼為 404 的請求
現(xiàn)在我們假設某個請求 ( 例如 : URI: /path/to/notfound ) 產生了大量的 404 錯誤,我們可以通過下面的命令找到這個請求是來自于哪一個引用頁,和來自于什么瀏覽器。
有時候會發(fā)現(xiàn)其他網站出于某種原因,在他們的網站上使用保存在自己網站上的圖片。如果您想知道究竟是誰未經授權使用自己網站上的圖片,我們可以使用下面的命令:
注意:使用前,將 修改為自己網站的域名。
統(tǒng)計共有多少個不同的 IP 訪問:
統(tǒng)計每一個 IP 訪問了多少個頁面:
將每個 IP 訪問的頁面數進行從小到大排序:
統(tǒng)計 2018 年 8 月 31 日 14 時內有多少 IP 訪問 :
統(tǒng)計訪問最多的前十個 IP 地址
查看某一個 IP訪問了哪些頁面:
統(tǒng)計某個 IP 的詳細訪問情況,按訪問頻率排序
列出傳輸大小最大的幾個文件
列出輸出大于 204800 byte ( 200kb) 的頁面以及對應頁面發(fā)生次數
列出訪問最頻的頁面(TOP100)
列出訪問最頻的頁面([排除php頁面】(TOP100)
列出頁面訪問次數超過100次的頁面
列出最近1000條記錄,訪問量最高的頁面
統(tǒng)計每分鐘的請求數,top100的時間點(精確到分鐘)
統(tǒng)計每小時的請求數,top100的時間點(精確到小時)
統(tǒng)計每秒的請求數,top100的時間點(精確到秒)
統(tǒng)計當天的 pv
說明:
可以使用下面的命令統(tǒng)計出所有響應時間超過 3 秒的日志記錄。
注意:NF 是當前記錄中域的個數。$NF 即最后一個域。
列出php頁面請求時間超過3秒的頁面,并統(tǒng)計其出現(xiàn)的次數,顯示前100條
列出相應時間超過 5 秒的請求,顯示前20條
統(tǒng)計蜘蛛抓取次數
統(tǒng)計蜘蛛抓取404的次數
通過本文的介紹,我相信同學們一定會發(fā)現(xiàn) linux三劍客強大之處。在命令行中,它還能夠接受,和執(zhí)行外部的 AWK 程序文件,可以對文本信息進行非常復雜的處理,可以說“只有想不到的,沒有它做不到的”。
linux查看日志的命令是?具體怎么用
Linux查看日志的命令有很多,比如tail、cat、tac、head、echo等,今天給大家介紹幾種常用的方法:
1、tail-實時查看變化的日志
命令格式:tail [必要參數][選擇參數][文件]
-f:循環(huán)讀取
-q:不顯示處理信息
-v:顯示詳細的處理信息
-c數目:顯示的字節(jié)數
-n行數:顯示行數
-q, --quiet, --silent:從不輸出給出文件名的首部
-s, --sleep-interval=S:與-f合用,表示在每次反復的間隔休眠S秒
2、head
跟tail相反,head是看日志的前多少行
head -n 10 test.log:查詢日志文件中的前10行日志;
head -n -10 test.log:查詢日志文件除了最后10行的其他所有日志;
3、cat-搜索關鍵字附近的日志
cat是由第一行到最后一行連續(xù)顯示在屏幕上
最常用的命令:cat -n filename | grep "關鍵字"
cat app.log | grep -C 5 '關鍵字':顯示日志里匹配字串那行以及前后5行;
cat app.log | grep -B 5 '關鍵字':顯示匹配字串及前5行;
cat app.log | grep -A 5 '關鍵字':顯示匹配字串及后5行;
4、more
more命令是一個基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,支持vi中的關鍵字定位操作。
more的語法:more 文件名
Linux查看系統(tǒng)日志的一些常用命令
last
-a 把從何處登入系統(tǒng)的主機名稱或ip地址,顯示在最后一行。
-d 指定記錄文件。指定記錄文件。將IP地址轉換成主機名稱。
-f 記錄文件 指定記錄文件。
-n 顯示列數或-顯示列數 設置列出名單的顯示列數。
-R 不顯示登入系統(tǒng)的主機名稱或IP地址。
-x 顯示系統(tǒng)關機,重新開機,以及執(zhí)行等級的改變等信息
以下看所有的重啟、關機記錄
last | grep reboot
last | grep shutdown
history
列出所有的歷史記錄:
[zzs@Linux] # history
只列出最近10條記錄:
[zzs@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執(zhí)行命令,執(zhí)行歷史清單中的第99條命令
[zzs@linux] #!99 (!和99中間沒有空格)
重復執(zhí)行上一個命令
[zzs@linux] #!!
執(zhí)行最后一次以rpm開頭的'命令(!? ?代表的是字符串,這個String可以隨便輸,Shell會從最后一條歷史命令向前搜索,最先匹配的一條命令將會得到執(zhí)行。)
[zzs@linux] #!rpm
逐屏列出所有的歷史記錄:
[zzs@linux]# history | more
立即清空history當前所有歷史命令的記錄
[zzs@linux] #history -c
cat, tail 和 watch
系統(tǒng)所有的日志都在 /var/log 下面自己看(具體用途可以自己查,附錄列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何實時查看 tail -f /var/log/messages
還可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
該指令,不會直接返回命令行,而是實時打印日志文件中新增加的內容,
這一特性,對于查看日志是非常有效的。如果想終止輸出,按 Ctrl+C 即可。
除此之外還有more, less ,dmesg|more,這里就不作一一列舉了,因為命令太多了,關鍵看個人喜好和業(yè)務需求.個人常用的就是以上那些
linux日志文件說明
/var/log/message 系統(tǒng)啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關的日志信息
/var/log/maillog 與郵件相關的日志信息
/var/log/cron 與定時任務相關的日志信息
/var/log/spooler 與UUCP和news設備相關的日志信息
/var/log/boot.log 守護進程啟動和停止相關的日志消息
/var/log/wtmp 該日志文件永久記錄每個用戶登錄、注銷及系統(tǒng)的啟動、停機的事件
linux下如何使用命令行查看apache日志?
1.看下http.conf的配置中日志放在那里\x0d\x0a 比如:egrep -v '#|^$' /etc/httpd/conf/httpd.conf |grep log\x0d\x0a\x0d\x0a2.進入響應的日志保持目錄\x0d\x0a cat access_log\x0d\x0a cat error_log
linux日志顯示長度,設置命令
題主是否想詢問“l(fā)inux日志怎么顯示長度,設置命令”?
1、首先打開軟件linux,并登陸自己的個人賬戶。
2、其次在界面中,點擊日志。
3、最后在界面中,選擇日志信息,選擇顯示長度即可。
linux日志 audit
我們知道在Linux系統(tǒng)中有大量的日志文件可以用于查看應用程序的各種信息,但是對于用戶的操作行為(如某用戶修改刪除了某文件)卻無法通過這些日志文件來查看,如果我們想實現(xiàn)監(jiān)管企業(yè)員工的操作行為就需要開啟審計功能,也就是audit。
1、首先執(zhí)行以下命令開啟auditd服務
| 1 | service auditd start |
2、接著查看看auditd的服務狀態(tài),有兩種方法可以實現(xiàn),使用auditctl命令時主要看enabled是否為1,1為開啟,0為關閉
[root@ns-master-c01 ~]``# service auditd status` |
`auditd (pid 20594) is running...
[root@ns-master-c01 ~]``# auditctl -s
| 5 | AUDIT_STATUS: enabled=1 flag=1 pid=20594 rate_limit=0 backlog_limit=320 lost=0 backlog=0 |
3、開啟了autid服務后,所有的審計日志會記錄在/var/log/audit/audit.log文件中,該文件記錄格式是每行以type開頭,其中紅框處是事件發(fā)生的時間(代表從1970年1月1日到現(xiàn)在過了多久,可以用date命令轉換格式),冒號后面的數字是事件ID,同一個事件ID是一樣的。
4、audit可以自定義對指定的文件或命令進行審計(如監(jiān)視rm命令被執(zhí)行、/etc/passwd文件內容被改變),只要配置好對應規(guī)則即可,配置規(guī)則可以通過命令行(臨時生效)或者編輯配置文件(永久生效)兩種方式來實現(xiàn)。
命令行語法(臨時生效****)****:
| 1 | auditctl -w /bin/``rm -p x -k removefile ``#-w指定所要監(jiān)控的文件或命令 |
| 2 | #-p指定監(jiān)控屬性,如x執(zhí)行、w修改 |
| 3 | #-k是設置一個關鍵詞用于查詢 |
編輯配置文件(****永久生效)****:
auditd的配置文件為/etc/audit/audit下的auditd.conf 和audit.rules,auditd.conf 主要是定義了auditd服務日志和性能等相關配置,audit.rules才是定義規(guī)則的文件,下面是一個例子,其實就是把auditctl的命令直接拿過來即可,auditctl里支持的選項都可以在這個文件里指定
修改完后重啟服務
| 1 | service auditd restart |
5、如果直接使用tailf等查看工具進行日志分析會比較麻煩,好在audit已經提供了一個更好的事件查看工具—— ausea****rch, 使用auserach -h查看下該命令的用法:
這里列出幾個常用的選項:
-a number #只顯示事件ID為指定數字的日志信息,如只顯示926事件:ausearch -a 926
-c commond #只顯示和指定命令有關的事件,如只顯示rm命令產生的事件:auserach -c rm
-i #顯示出的信息更清晰,如事件時間、相關用戶名都會直接顯示出來,而不再是數字形式
-k #顯示出和之前auditctl -k所定義的關鍵詞相匹配的事件信息
通過下圖可以看到每個事件被虛線分開,用戶名和執(zhí)行的操作也都能清晰的看到了:
6、使用auditctl還可以查看和清空規(guī)則
查看源碼
embed width="16" height="16" id="highlighter_638828_clipboard" type="application/x-shockwave-flash" title="復制到剪貼板" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_638828" menu="false" src="" style="margin: 0px; padding: 0px; outline: 0px; zoom: 1; max-width: 96%;"
摘自
| 1 | auditctl -l 查看定義的規(guī)則 |
| 2 | auditctl -D 清空定義的規(guī)則 |
新聞標題:linux日志配置命令 linux日志配置文件
文章位置:http://www.ef60e0e.cn/article/dodoihi.html