Httpd
如何對剛剛沉默的 Apache httpd 進行故障排除?
我的一個 Apache httpd 伺服器在一夜之間以一種奇怪的方式“死掉”了。我查看了所有相關日誌,找不到任何異常之處。
謝天謝地,這發生在我們的開發環境中,但我很擔心,因為我們的開發環境幾乎完全反映了我們的生產環境。
誰能告訴我這裡可能發生了什麼?
症狀和故障排除步驟
Apache httpd 完全沒有響應
負載平均為 0.0
無日誌異常
ps aux | grep httpd
看起來很正常
iptables -L
顯示埠 80 打開SELinux 已啟用並正確配置:未記錄 AVC
無論多麼微不足道,都沒有對任何系統組件進行配置更改
Apache httpd在伺服器時間重新載入
17:11:25
以清除 APC (php) 記憶體
- 重新載入後提出了成功的請求,
17:20
之後我離開了一天- 重新載入後沒有什麼特別的事情發生
第二天早上,httpd 程序沒有響應
Telnet 到 80 埠連接成功
- 手動 GET、POST、OPTIONS 和 HEAD 請求沒有收到任何響應;沒有記錄
日誌
訪問日誌
172.22.44.41 - - [03/Mar/2011:17:20:18 -0600] "GET /admin.php?type=notifications HTTP/1.0" 200 44326 "http://umc.dev.example.com/admin.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13" 172.22.44.41 - - [04/Mar/2011:14:45:16 -0600] "GET / HTTP/1.0" 200 62921 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13"
錯誤日誌
[Thu Mar 03 17:11:25 2011] [notice] SIGHUP received. Attempting to restart [Thu Mar 03 17:11:25 2011] [notice] Digest: generating secret for digest authentication ... [Thu Mar 03 17:11:25 2011] [notice] Digest: done [Thu Mar 03 17:11:25 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations [Fri Mar 04 14:45:05 2011] [notice] caught SIGTERM, shutting down [Fri Mar 04 14:45:05 2011] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0 [Fri Mar 04 14:45:05 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Mar 04 14:45:05 2011] [notice] Digest: generating secret for digest authentication ... [Fri Mar 04 14:45:05 2011] [notice] Digest: done [Fri Mar 04 14:45:05 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
附言 | grep httpd
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 8477 0.0 1.9 408748 9876 ? Ss Feb24 0:03 /usr/sbin/httpd apache 19933 0.4 14.6 436436 74692 ? S Mar03 0:01 /usr/sbin/httpd apache 19936 0.4 8.4 419708 43148 ? S Mar03 0:01 /usr/sbin/httpd
/var/日誌/消息
Feb 27 04:02:01 webdev1 syslogd 1.4.1: restart. Mar 4 14:43:35 webdev1 yum: Installed: strace-4.5.18-5.el5_5.5.x86_64
版本
作業系統和核心
- CentOS 5.5 版(最終版)
- Linux webdev1.int.example.com 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU / Linux
阿帕奇 httpd
Server version: Apache/2.2.3 Server built: Aug 30 2010 12:28:40 Server's Module Magic Number: 20051115:3 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
PHP
- php53u-5.3.5-3.ius.el5
使用的儲存庫
所有軟體包的 CentOS 基礎和更新,以下例外:來自IUS 社區儲存庫的 php53u。
除了磁碟已滿之外,沒有什麼可去的了。如果它不再發生,那麼它將屬於怪異類別。您是否有
dmesg
輸出來查看作業系統是否有問題(例如,oom 殺手)。如果它再次發生,那麼您將必須使用
strace
以下分叉來查看究竟是什麼阻塞了程序。