在CentOS镜像中,有多种方法可以用来监控系统状态。以下是一些常用的命令和工具:
常用命令
- top命令:实时显示系统进程和资源使用情况,按CPU占用率排序。
- htop命令(如果已安装):交互式进程查看器,提供图形化界面和更多功能。
- vmstat命令:报告系统虚拟内存统计信息,包括CPU、内存、磁盘和交换空间的信息。
- free命令:显示系统的内存使用情况,包括已使用内存、空闲内存等。
- iostat命令:报告系统的磁盘I/O统计信息,包括设备的读写速率等。
- netstat命令:显示当前活动的网络连接、路由表、接口统计信息等。
- ss命令:类似于netstat,用于显示活动的网络连接和套接字统计信息。
- dstat命令:实时显示系统的网络、CPU、内存、磁盘I/O等资源使用情况。
- iftop命令:实时监控网络带宽,显示发送和接收的数据量。
推荐工具
- Zabbix:功能强大的网络监控工具,可以监控服务器的CPU使用率、负载、磁盘IO等指标,并支持自定义监控项。
- Prometheus:开源的监控系统,具有高度的可扩展性和灵活性,适合处理高动态的云环境。
- Nagios:开源的免费网络监视工具,能有效监控服务器和网络设备的状态,并在异常时发出报警。
脚本示例
以下是一个简单的Shell脚本示例,用于监控系统状态:
#!/bin/bash # 获取 CPU 使用率 cpu=$(top -bn1 | grep "Cpu(s)" | awk '{ print $2 + $4 }') # 获取内存使用率 mem=$(free -m | awk 'NR==2{ printf "%.2f%%", $3*100/$2 }') # 获取磁盘使用率 disk=$(df -h | awk 'NF==1{ printf "%s", $5 }') # 获取网络流量(RX/TX) rx=$(ifconfig enp0s3 | grep "RX bytes" | awk '{ print $4 }') tx=$(ifconfig enp0s3 | grep "TX bytes" | awk '{ print $7 }') # 输出结果 echo "CPU使用率: $cpu" echo "内存使用率: $mem" echo "磁盘使用率: $disk" echo "网络流量(RX/TX): $rx / $tx"
通过上述命令和工具,您可以有效地监控CentOS服务器的状态,确保系统的稳定运行。