LAMP環境下系統監控的實施方法
LAMP(Linux、Apache、MySQL、PHP)環境的監控需覆蓋系統基礎資源、LAMP組件狀態及應用性能三大維度,結合命令行工具、專用監控軟件及自動化機制,實現全面、及時的狀態跟蹤。
基礎資源是LAMP運行的底層支撐,需優先監控以下指標:
top
(動態排序進程CPU/內存使用)、htop
(增強版top,支持鼠標操作)查看進程級資源消耗;vmstat 1
(每秒刷新)監控虛擬內存、CPU活動、I/O等待;iostat -x 1
(需安裝sysstat)分析磁盤I/O讀寫速率、利用率;free -h
查看內存總量、已用/空閑內存及緩存;df -h
檢查磁盤空間使用情況。netstat -tulnp
(或ss -tulnp
,更高效)查看監聽端口(如Apache的80/443端口)、連接狀態(ESTABLISHED/TIME_WAIT);tcpdump
捕獲特定端口流量(如tcpdump -i eth0 port 80
),用于網絡問題診斷。apachectl status
(需開啟mod_status)查看Apache基本狀態;httpd -M
列出加載的模塊;mod_status
(配置ExtendedStatus On
后)提供詳細指標(如請求數、字節傳輸、工作線程狀態),通過http://server-ip/server-status?auto
訪問。tail -f /var/log/apache2/error.log
(Debian/Ubuntu)或/var/log/httpd/error_log
(CentOS/RHEL),定位配置錯誤、權限問題;分析訪問日志tail -f /var/log/apache2/access.log
,了解請求頻率、來源IP。mysqladmin status
查看服務器運行時間、連接數、查詢速率;SHOW STATUS LIKE 'Threads_connected'
(連接數)、SHOW STATUS LIKE 'Queries'
(總查詢數)、SHOW STATUS LIKE 'Innodb_buffer_pool_hit_rate'
(InnoDB緩沖池命中率)獲取關鍵指標;SHOW PROCESSLIST
查看當前執行的查詢。slow_query_log = ON
,long_query_time = 2
),使用pt-query-digest
(Percona Toolkit)分析慢查詢,優化SQL語句;EXPLAIN
命令解析查詢執行計劃,識別索引缺失問題。http://server-ip/status?full
(需配置pm.status_path = /status
)查看進程狀態(活躍/閑置進程數、請求處理時間);php -m
查看加載的PHP模塊;php --ri extension_name
(如php --ri opcache
)檢查擴展配置。tail -f /var/log/php-fpm/error.log
(或/var/log/php7.x-fpm.log
),定位語法錯誤、運行時異常;使用Xdebug或Tideways Profiler生成性能分析報告,優化代碼性能。node_exporter
、mysqld_exporter
、apache_exporter
),Grafana配置 dashboard 可視化(如CPU使用率趨勢、MySQL查詢速率),支持告警規則(如內存使用率超過80%觸發郵件通知)。check_apache
、check_mysql
)監控服務可用性,支持閾值告警,適合中小規模環境。Glances
(跨平臺,支持本地/遠程監控,顯示CPU、內存、磁盤、網絡等綜合指標);Netdata
(輕量級,實時監控系統指標,提供Web界面);dstat
(整合vmstat
、iostat
功能,實時顯示資源使用情況)。df -h | awk '{print $5}' | grep -v Filesystem | sort -nr | head -1
),定期執行并通過郵件發送結果;使用cron
定時運行(如*/5 * * * * /path/to/script.sh
)。MaxRequestWorkers
、MySQL的innodb_buffer_pool_size
),提升系統性能。