傳統日誌分析滯後性強,運維人員需要「當下」發生什麼:誰在訪問、多少工作進程忙碌/空閒、CPU/流量佔用、請求處理耗時。mod_status 與 mod_info 正是為此而生的輕量級內建儀表盤。
ExtendedStatus On 後,提供每個進程的 PID、請求數、處理中請求詳情、客戶端 IP、請求行、虛擬主機名。<Location /server-status>
SetHandler server-status
Require ip 192.168.1.0/24 # 僅允許內網管理 IP
# Apache 2.4+ 語法;2.2 使用 Order Allow,Deny / Allow from ...
</Location>
# 可選:開啟詳細狀態
ExtendedStatus On
訪問 https://your-server/server-status 即可查看。建議配合 ?auto 參數輸出機器可解析格式,接入 Prometheus/Grafana/Nagios/Zabbix 等監控體系。
| 符號 | 含義 |
|---|---|
_ | 等待連接(空閒) |
S | 啟動中 |
R | 讀取請求 |
W | 發送回應 |
K | 保持連接 |
D | DNS 查詢 |
C | 關閉連接 |
L | 日誌記錄 |
G | 優雅完成 |
. | 尚未啟動的潛在進程槽位 |
<Location /server-info>
SetHandler server-info
Require ip 10.0.0.0/8
</Location>
# 確保模組已加載(通常預編譯或 DSO)
# LoadModule info_module modules/mod_info.so
訪問 https://your-server/server-info 可見:
StatusFile 持久化,需配置 logrotate 防止磁盤佔滿。mod_status 是「儀表盤」,關注運行時健康度;mod_info 是「說明書」,關注配置真相。兩者結合,構成 Apache 可觀測性的基石。善用它們,讓故障排查從「盲人摸象」變為「指尖可見」。