Linux 系統監控工具全攻略:top、htop、iotop、netstat,實時掌握你的服務器狀態

dba 日常運維中,實時監控是最必備的技能。它可以幫助我們:

快速定位 CPU/內存 瓶頸監控 I/O 消耗查看網絡連接狀態

本篇我們集中講解四大監控利器:

top:系統進程、資源實時概覽htop:top 的可視化增強版iotop:監控進程 I/O 行為netstat:網絡連接與端口狀態查看

環境說明

操作系統:Almalinux 8.x數據庫mysql 一主兩從,均部署在 docker 容器中腳本目錄:scripts/monitoring


二、準備工作:創建目錄 & 命令檢查登錄到主服務器(master)ssh?dba@master.example.com創建監控腳本存放目錄mkdir-p?scripts/monitoringcd?scripts/monitoring檢查四大命令是否可用for?cmd?intophtop?iotop?netstat;docommand?-v?$cmd>/dev/NULL?>&1if[$?-ne];thenecho?“未檢測到命令?$cmd,安裝請執行:”case?$cmd?intop)echo?” ?yum install -y procps-ng”;;htop)echo?” ?yum install -y htop”;;? ? ? iotop)echo?” ?yum install -y iotop”;;netstat)echo?” ?yum install -y net-tools”;;esacelseecho”??$cmd?已安裝”fidone若出現?bash: iotop: 未找到命令,就按照提示安裝并重新登錄或刷新?PATH。

Linux 系統監控工具全攻略:top、htop、iotop、netstat,實時掌握你的服務器狀態圖片

三、top:最基礎的系統監控工具3.1 啟動 top代碼語言:JavaScript代碼運行次數:0運行復制

top

界面示例

Linux 系統監控工具全攻略:top、htop、iotop、netstat,實時掌握你的服務器狀態圖片

top 實時界面

3.2 常用快捷鍵

快捷鍵

功能

P

按 CPU 占用排序

M

內存占用排序

T

按運行時間排序

1

顯示所有 CPU 核心使用情況

q

退出 top

3.3 排查 “bash: top: 未找到命令”代碼語言:javascript代碼運行次數:0運行復制

yum?install-y?procps-ng

安裝后,再次運行?top即可。


四、htop:彩色可視化,操作更友好4.1 啟動 htop代碼語言:javascript代碼運行次數:0運行復制

htop

支持上下左右方向鍵支持 F3/F4 過濾、F6 列排序支持用鼠標滾動(如果終端支持)4.2 安裝代碼語言:javascript代碼運行次數:0運行復制

yum?install-y?epel-releaseyum?install-yhtop

4.3 報錯排查bash: htop: 未找到命令→ 確認已啟用 EPEL 源并安裝如果界面亂碼,檢查終端字符集為 UTF-8

Linux 系統監控工具全攻略:top、htop、iotop、netstat,實時掌握你的服務器狀態圖片

五、iotop:實時監控 I/O 消耗5.1 啟動 iotop代碼語言:javascript代碼運行次數:0運行復制

sudo?iotop

5.2 常用參數代碼語言:javascript代碼運行次數:0運行復制

只顯示當前有 I/O 活動的進程

代碼語言:javascript代碼運行次數:0運行復制

sudo?iotop?-o-d>?iotop.log

5.3 安裝 & 排查代碼語言:javascript代碼運行次數:0運行復制

yum?install-y?iotop

若報?bash: iotop: 未找到命令,按上述安裝若報?IOPRIO_CLASS: Operation not permitted,請加?sudo或提升權限


六、netstat:查看網絡連接與端口6.1 基本用法代碼語言:javascript代碼運行次數:0運行復制

netstat-tunlp

代碼語言:javascript代碼運行次數:0運行復制

TCP 連接

示例輸出

Linux 系統監控工具全攻略:top、htop、iotop、netstat,實時掌握你的服務器狀態圖片

netstat 輸出示例

6.2 報錯排查bash: netstat: 未找到命令→yum?install-y?net-tools若顯示?You must be root to see process info,請加?sudo


七、腳本化:把監控命令做成自動報告

下面給出一個簡單的例子:每天凌晨 1 點收集一次系統狀態

腳本:daily_monitor.sh

代碼語言:javascript代碼運行次數:0運行復制

#!/bin/bashOUTDIR="/home/dba/dba-scripts/monitoring/reports/$(date?+%F)"mkdir-p"$OUTDIR"# top 快照top-b-n>"$OUTDIR/top_$(date?+%H%M).txt"# iotop 快照(需 sudo)sudo?iotop?-b-n-d>"$OUTDIR/iotop_$(date?+%H%M).txt"# netstat 快照netstat-tunlp>"$OUTDIR/netstat_$(date?+%H%M).txt"echo"監控報告已生成在?$OUTDIR"

賦權并測試:

代碼語言:javascript代碼運行次數:0運行復制

chmod?+x daily_monitor.sh./daily_monitor.sh

無報錯則成功生成報告。


八、配置定時:crontab 自動執行

編輯 crontab:

代碼語言:javascript代碼運行次數:0運行復制

crontab-e

添加:

代碼語言:javascript代碼運行次數:0運行復制

***/home/dba/dba-scripts/monitoring/daily_monitor.sh>>/home/dba/dba-scripts/monitoring/monitor.log>&

保存后執行?crontab -l確認生效。

下篇我們將深入講解如何利用?prometheus + grafana構建可視化監控平臺,敬請期待! ?(腳本為服務器復制可能有空格問題,手敲完印象深刻)

以上就是Linux 系統監控

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享