前言
本文列出了在linux系統下的幾個日志文件。以及結合message中的日志記錄,作出了簡單分析。
syslog是Linux系統默認的日志守護進程。默認的syslog配置文件是/etc/sysctl.conf文件
通常,syslog 接受來自系統的各種功能的信息,每個信息都包括重要級。/etc/syslog.conf 文件通知 syslogd 如何根據設備和信息重要級別來報告信息。
那麼,linux記錄的日志有哪些呢?
/var/log/lastlog :記錄最後一次用戶成功登陸的時間、登陸IP等信息
/var/log/messages :記錄Linux操作系統常見的系統和服務錯誤信息
/var/log/secure :Linux系統安全日志,記錄用戶和工作組變壞情況、用戶登陸認證情況
/var/log/btmp :記錄Linux登陸失敗的用戶、時間以及遠程IP地址
/var/log/cron :記錄crond計劃任務服務執行情況
grep '查找關鍵字段' /var/log/messages|head -n 行數
grep '查找關鍵字段' /var/log/messages|tail -n 行數
如何查看日志(以message為例子)
vi /var/log/messages-xxx
問題1:
time wait bucket table overflow
分析:
原因是超過了linux系統tw數量的閥值。危害是
超過閥值後
﹐系統會把多餘的time-wait socket 刪除掉,並且
顯示警告信息
,如果是NAT網絡環境又存在大量訪問,會產生各種連接不穩定斷開的情況。
根據報錯提示,需要更改net.ipv4.tcp_max_tw_buckets這個內核參數。這個參數是系統同時保持timewait套接字的最大數量。如果超過這個數字,time-wait套接字將立刻被清除並打印警告信息。這個限制僅僅是為了防止簡單的 DoS攻擊。
我看了我系統中TIME_WAIT 大部是由php-fpm產生的,是
屬於正常的現象
。
解決:
vi /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 20000
相關文章:
理解TIME_WAIT,徹底弄清解決TCP:
http://www.itnpc.com/news/web/146163065359633.html
解決TIME_WAIT過多造成的問題:
http://blog.csdn.net/eroswang/article/details/51141963
Linux日志系統日志及分析:
http://www.cnblogs.com/yingsong/p/6022181.html
問題2:
7:28 kernel:
php-fpm[18290]: segfault at 7ff56c752268 ip 00007ff56c752268 sp 00007fff18bc1b18 error 15 in zero (deleted)[7ff56be47000+8000000]
分析:
跟backlog的配置有關,需要了解系計算機網絡的三次握手,四次揮手機制。
不在此過多敘述了,找了幾篇文章,詳細有興趣的,可以看看下邊相關文章。
解決:
vi /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 10000
相關文章:
nginx php-fpm segfault那點事:
http://blog.csdn.net/mengfanzhong/article/details/53012478
php-fpm backlog參數潛在問題:
http://blog.csdn.net/willas/article/details/11634825
TCP/IP協議中backlog分析與設置以及TCP狀態變化:
http://www.2cto.com/net/201307/224634.html
一次segfault錯誤的排查過程:
http://blog.csdn.net/zhaohaijie600/article/details/45246569
總結:
所以,問多問題可以在sysctl.conf配置文件修改,如下圖所示。但是所有問題發現解決方法後,要結合當下業務與機器的配置合理調節,切莫胡亂修改。
平常有時間也可去生產看看操作系統的相關日志,有便於更佳了解自己的系統。
編輯配置文件:
vi /etc/sysctl.conf
其他文章參考:
linux syslog詳解:
http://www.cnblogs.com/skyofbitbit/p/3674664.html
設置Sysctl.conf (配置sysctl.conf文件詳解):
http://blog.csdn.net/21aspnet/article/details/6584792
linux下syslog使用說明 :
http://blog.chinaunix.net/uid-25120309-id-3359929.html
系統日志:記錄系統相關信息:
http://blog.csdn.net/ty_hf/article/details/55511624
apache訪問日志與錯誤日志:
http://blog.csdn.net/ty_hf/article/details/55504719
nginx訪問日志與錯誤日志:
http://blog.csdn.net/ty_hf/article/details/55518070
php-fpm慢日志
:檢測執行較慢的PHP腳本:
http://blog.csdn.net/ty_hf/article/details/55504172
php錯誤日志:檢測php運行時或用戶自記錄錯誤日志:
http://blog.csdn.net/ty_hf/article/details/55505262
mysql慢日志:記錄mysql服務器中影響性能的SQL:
http://blog.csdn.net/ty_hf/article/details/55504172
本文地址:http://blog.csdn.net/ty_hf/article/details/55511624