CentOS 系统监控项

发布于:2024-07-11 ⋅ 阅读:(21) ⋅ 点赞:(0)

在维护和优化 CentOS 系统时,实时监控硬件和资源的使用情况非常重要。为了满足工作需要,可以定时采集 CentOS 系统相关的监控数据,并将其推送到 Prometheus 进行集中监控和管理。以下是日常采集项及对应的 shell 命令,并附上每项命令的输出解释。

1. CPU 使用情况

监控 CPU 使用情况可以帮助我们了解系统的负载和性能瓶颈。

  • 采集命令:
    top -b -n1 | grep "Cpu(s)"
    
    输出:
    %Cpu(s):  1.6 us,  1.6 sy,  0.0 ni, 96.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    
    解释:
    • us: 用户空间占用 CPU 百分比(1.6%)
    • sy: 内核空间占用 CPU 百分比(1.6%)
    • ni: 改变过优先级的进程占用 CPU 百分比(0.0%)
    • id: 空闲时间占用 CPU 百分比(96.8%)
    • wa: 等待 I/O 操作占用 CPU 百分比(0.0%)
    • hi: 硬中断占用 CPU 百分比(0.0%)
    • si: 软中断占用 CPU 百分比(0.0%)
    • st: 被虚拟化系统“偷走”的时间占用 CPU 百分比(0.0%)
2. 内存使用情况

监控内存使用情况可以避免系统因为内存不足而崩溃。

  • 采集命令:
    free -m
    
    输出:
                 total        used        free      shared  buff/cache   available
    Mem:          15866        2833        4773         844        8259       11857
    Swap:          2047           0        2047
    
    解释:
    • total: 总内存(15866 MB)
    • used: 已使用内存(2833 MB)
    • free: 可用内存(4773 MB)
    • shared: 共享内存(844 MB)
    • buff/cache: 缓存内存(8259 MB)
    • available: 可用内存(11857 MB)
    • Swap: 交换分区信息(总量 2047 MB,已使用 0 MB,可用 2047 MB)
3. 磁盘使用情况

监控磁盘使用情况可以预防磁盘空间耗尽的问题。

  • 采集命令:
    df -h
    
    输出:
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 7.8G     0  7.8G    0% /dev
    tmpfs                    7.8G   28K  7.8G    1% /dev/shm
    tmpfs                    7.8G  747M  7.1G   10% /run
    tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
    /dev/mapper/centos-root  197G   32G  166G   17% /
    /dev/sda1               1014M  239M  776M   24% /boot
    tmpfs                    1.6G     0  1.6G    0% /run/user/0
    
    解释:
    • 容量: 总磁盘空间
    • 已用: 已使用磁盘空间
    • 可用: 可用磁盘空间
    • 已用%: 已使用百分比
    • 挂载点: 磁盘分区挂载点
4. 磁盘 I/O

监控磁盘 I/O 性能,可以了解系统的读写速度和 I/O 瓶颈。

  • 采集命令:
    yum -y install sysstat
    sudo systemctl enable sysstat
    sudo systemctl start sysstat
    iostat
    
    输出:
    Linux 3.10.0-1160.118.1.el7.x86_64 (ops-gy-x86)         2024年07月10日  _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.55    0.00    0.51    0.00    0.00   98.94
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    scd0              0.00         0.00         0.00       1028          0
    sda               1.64         2.03        84.57    3713310  154970876
    dm-0              1.74         2.01        84.55    3690529  154923178
    dm-1              0.00         0.00         0.00       3236          0
    
    解释:
    • tps: 每秒传输次数(包括读写)
    • kB_read/s: 每秒读取的千字节数
    • kB_wrtn/s: 每秒写入的千字节数
    • kB_read: 总读取的千字节数
    • kB_wrtn: 总写入的千字节数
5. 网络使用情况

监控网络使用情况,可以确保网络连接的稳定性和流量的健康状况。

  • 采集命令:
    netstat -i
    
    输出:
    Kernel Interface table
    Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    br-5ed7a40877ed  1500        0      0      0 0             0      0      0      0 BMU
    br-7c60a2b8b408  1500        0      0      0 0             0      0      0      0 BMU
    docker0          1500        0      0      0 0             0      0      0      0 BMU
    ens33            1500 76085290      0      0 0      73441235      0      0      0 BMRU
    lo              65536 240163662      0      0 0      240163662      0      0      0 LRU
    
    解释:
    • Iface: 网络接口
    • MTU: 最大传输单元
    • RX-OK: 接收的正确数据包数
    • RX-ERR: 接收错误的数据包数
    • RX-DRP: 接收丢弃的数据包数
    • RX-OVR: 接收溢出数据包数
    • TX-OK: 发送的正确数据包数
    • TX-ERR: 发送错误的数据包数
    • TX-DRP: 发送丢弃的数据包数
    • TX-OVR: 发送溢出数据包数
    • Flg: 接口标志
6. 系统负载

监控系统的整体负载情况,了解系统的压力和性能瓶颈。

  • 采集命令:
    uptime
    
    top -b -n1 | grep "load average"
    
7. 系统日志

监控系统日志,可以帮助我们发现潜在的问题和错误。

  • 采集命令:
    tail -f /var/log/messages
    
    tail -f /var/log/syslog
    
8. 进程监控

监控系统中的进程,了解哪些进程占用了大量资源。

  • 采集命令:
    按照内存占用排序:
    ps aux --sort=-%mem | head
    
    按照 CPU 占用

排序:

ps aux --sort=-%cpu | head
9. 系统版本

了解系统版本可以帮助我们确定系统的具体配置和兼容性。

  • 采集命令:
    cat /etc/centos-release
    
    uname -a
    
10. CPU 信息

采集 CPU 信息有助于了解系统的计算能力和性能指标。

  • 采集命令:
    cat /proc/cpuinfo
    
11. 内存信息

采集内存信息可以帮助我们了解系统的内存配置和可用情况。

  • 采集命令:
    cat /proc/meminfo
    
12. 磁盘信息

了解磁盘信息有助于我们掌握系统的存储容量和分区情况。

  • 采集命令:
    df -h
    
13. 文件系统信息

采集文件系统信息可以帮助我们了解系统的文件系统类型和挂载点。

  • 采集命令:
    mount | column -t
    
14. 网络接口信息

采集网络接口信息有助于了解系统的网络配置和状态。

  • 采集命令:
    ifconfig -a
    
15. 系统启动时间

了解系统的启动时间可以帮助我们评估系统的运行时间和稳定性。

  • 采集命令:
    uptime
    
    who -b
    
16. 已安装软件包列表

采集已安装的软件包列表有助于了解系统的应用环境和依赖关系。

  • 采集命令:
    rpm -qa
    

结论

通过上述命令,您可以全面地监控 CentOS 系统的硬件和资源使用情况。这些命令不仅有助于系统的维护和优化,还可以为系统的扩展和升级提供重要参考。结合 Prometheus+Grafana,可以实现集中化界面监控和管理,及时发现并解决潜在的问题,提高系统的稳定性和性能。