今天聊一聊故障的應急處理。
Web Server日誌
²常用web server有nginx/sun web server/apache http server/ibm http server ²/opt/IBM/HTTPServer/logs/access.log ² /opt/IBM/HTTPServer/logs/error.log ²/opt/IBM/HTTPServer/Plugins/logs/webserver1/http_plugin.log
²訪問日誌access.log,記錄了所有的接收到請求URL、返回碼、返回大小,還可以配置處理的總共花費時間。
²錯誤日誌error.log,如果請求報錯,在這裏可以看到更加詳細的錯誤信息。 錯誤日誌plugin.log,如果轉發請求日誌,在這裏可以看到轉發到中間件的日誌信息。
Web Server常見問題
²默認沒有打印處理時間。
²LogFormat "%h %l %u %t \"%r\" %>s %b" common
²默認只打印一個文件,導致文件太大。
²CustomLog "| /usr/sbin/rotatelogs /var/logs/access_%Y%m%d.log 86400 480" common
進程日誌
進程日誌重定向
²Some.sh > standout .log
²Some.sh 1 > standout .log
²Some.sh > > standout.log
²Some.sh 2> standerr.log
²Some.sh 1> standout.log 2> standerr.log
²Some.sh 1>standout.log 2>&1
²Some.sh 1>/dev/null 2>&1
²Some.sh < standin.txt
²1. 標準輸入(stdin) :代碼爲 0 ,使用 < 或 << ;
2. 標準輸出(stdout):代碼爲 1 ,使用 > 或 >> ;
3. 標準錯誤輸出(stderr):代碼爲 2 ,使用 2> 或 2>>
²1. java A_StdOut
²2. java A_StdOut > 1.log 2> 2.log
²3. java A_StdOut >1.log 2>&1
²4 . nohup java A_StdOut >1.log &
²5. nohup java A_StdOut >1.log 2>&1 &
問題
²問題1:生產服務器突然之間有一臺服務器CPU一直增漲到%100,過段時間另外幾臺也出現。
²問題2:系統監控到大部分時間是CPU是正常的,但是在某一個時間段,大約10多秒,CPU 佔%90以上併發出了警報。
²問題3:突然出現出現客戶訪問服務時,訪問不了,報訪問超時錯誤。
線程棧
²線程棧信息是非常重要的信息。從線程棧信息中可以看出應用服務行爲,也就是可以知道應用正在做什麼或正在等待什麼。結合應用的日誌,可能可以知道哪一個用戶正在執行什麼交易,並知道執行到哪裏。
²線程棧是應用程序在某一時間的文本表示形式。
²ibm jdk生成的javacore文件信息更多,包含線程、垃圾回收、JVM運行參數、內存地址、操作系統、生成文件原因等信息。
²而sun/oracle jdk生成的只有線程的信息。
進程內存
JVM進程內存
Gc日誌
²gc(Garbage Collection)日誌也就是java堆垃圾回收日誌。
²GC日誌是一個很重要的信息,它準確記錄了每一次的GC的執行時間和執行結果,通過分析GC日誌可以優化堆設置,或者改進應用程序的對象分配方式。
²最重要的是很多的應用的內存漏洞是一個緩慢的過程。通過GC日誌,可以查看出堆有沒有內存漏洞問題。
²默認情況下,jvm是沒有開啓gc日誌的,可以通過設置JVM參數來開啓gc日誌。 ²像was服務也可以在was控制檯設置開啓。
Gc日誌分析
Jconsole介紹
²was數據庫連接池監控
²Was的session監控
²Was的java堆監控
Tcp/ip狀態圖