联系管理员

开通文章发布权限

扫码 添加微信
微信图片
电话:18888888888 QQ:

CentOS 运维密匙:命令行下的系统监控艺术

CentOS作为一款流行的Linux发行版,因其稳定性和安全性被广泛应用于服务器环境中。作为系统管理员,掌握有效的系统监控技巧对于确保系统稳定运行至关重要。本文将深入探讨在CentOS系统下,如何利用命令行工具进行系统监控,帮助管理员快速掌握系统状态。

一、实时资源监控

1. 综合监控 - htop (推荐)

sudo yum install epel-release -y && sudo yum install htop -y  # 安装
htop -d 10  # 10秒刷新间隔,按F2配置显示列
  • 优势:彩色界面显示CPU/内存使用率,支持进程树视图、鼠标操作和进程过滤(F4)

  • 关键指标:Load average(1/5/15分钟负载)、Tasks(僵尸进程)、CPU%按颜色区分类型

2. 磁盘I/O监控 - iotop

sudo yum install iotop -y
iotop -oPa  # 显示实际进行I/O的进程,按累积I/O排序
  • 诊断技巧:观察DISK WRITE列快速定位写密集型进程,结合pidstat -d获取进程级I/O统计

3. 高级综合监控 - glances

sudo yum install glances -y
glances --webserver -B 0.0.0.0  # 启用Web界面(http://IP:61208)
  • 特性:跨平台监控、支持API、可导出数据到Prometheus/Grafana


二、历史性能分析

1. 系统活动报告 - sar

sudo yum install sysstat -y
systemctl enable --now sysstat  # 启用数据收集

sar -u 1 3        # CPU使用率(%user/%system/%iowait)
sar -r -s 10:00:00  # 指定时间内存使用历史
sar -n DEV 1 5    # 网络接口包流量统计
  • 日志位置/var/log/sa/saXX(XX为日期)

  • 图形化工具:使用sadf -d导出CSV,配合Excel/Python分析趋势

2. 自定义数据收集 - collectl

sudo yum install collectl -y
collectl -s cmdnf -i 60 -P  # 监控CPU/内存/磁盘/网络/进程,每分钟采样
  • 优势:可同时记录多种子系统数据,支持多种输出格式(Plot、JSON)


三、网络深度监控

1. 连接分析 - ss (替代netstat)

ss -tunap4  # 查看所有TCP/UDPv4连接(-6显示IPv6)
ss -s       # 统计汇总(总连接数、各状态连接数)
  • 高级用法ss -o state established '( dport = :443 or sport = :443 )' 过滤HTTPS活动连接

2. 流量追踪 - nethogs

sudo yum install nethogs -y
nethogs eth0 -d 5  # 按进程实时显示带宽使用(每5秒刷新)
  • 场景:快速定位异常流量进程,支持多网卡监控

3. 协议分析 - iftop

sudo yum install iftop -y
iftop -nNP -i eth0  # 显示端口和IP(禁用DNS解析)
  • 交互命令:按t切换显示格式,l设置流量阈值过滤


四、进程级诊断工具

1. 进程状态跟踪 - pidstat

pidstat -durs -p <PID> 2 5  # 对指定PID监控磁盘/CPU/内存/栈使用,2秒间隔采样5次
  • 扩展功能-t显示线程级统计,-w监控上下文切换

2. 系统调用追踪 - strace

strace -ff -T -tt -p <PID>  # 跟踪进程所有线程的系统调用及耗时
  • 日志分析:重定向到文件(-o proc_trace.log),搜索EAGAIN等错误码


五、日志实时监控

1. 动态日志查看 - journalctl (systemd系统)

journalctl -u nginx -f  # 追踪Nginx服务日志
journalctl --since "2023-08-01" --until "1 hour ago"  # 时间范围查询
  • 高级过滤-p err显示错误日志,-k仅显示内核日志

2. 日志模式分析 - grep/awk

grep -E &#039;ERROR|WARN&#039; /var/log/messages | awk &#039;{print $4}&#039; | sort | uniq -c  # 统计错误来源
  • 实时报警:结合tail -f和管道触发邮件/API报警


六、应急响应工具箱

场景工具组合示例作用
CPU爆满top -> perf top -> pidstat 1定位高负载进程及热点函数
内存泄漏free -h -> vmstat 3 -> smem -s uss确认是否发生Swap,分析进程实际内存占用
磁盘IO瓶颈iostat -x 2 -> iotop -> blktrace检查await/util%,定位高IO进程及块层跟踪
网络丢包sar -n EDEV 1 -> ethtool -S eth0 -> mtr监控接口错误计数,路由追踪

七、自动化监控方案

  1. 定期健康检查脚本

#!/bin/bash
echo "===== $(date) ====="
echo "CPU Load: $(uptime)"
echo "Memory: $(free -m | awk &#039;/Mem/{printf "Used: %.2f%%", $3/$2*100}&#039;)"
echo "Disk: $(df -h / | awk &#039;NR==2{print $5}&#039;)"
ss -s | grep "Total:"
  1. 集成Prometheus+Grafana

    • 部署node_exporter采集系统指标

    • 使用alertmanager配置阈值报警规则

通过熟练使用以上工具组合,管理员可构建从实时监控到深度分析的全链路监控体系。建议针对不同场景制作快速参考手册,并通过alias设置常用命令快捷方式(如alias topsys=&#039;htop -s PERCENT_CPU&#039;)。

相关文章

neo4j部署手册
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
DataX和DataX-WEB 安装步骤
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、 MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
K8S集群搭建手册(集群版)
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Apollo部署手册
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册