简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索

活动公告

通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,将及时处理!
10-23 09:31

Rocky Linux实例监控完全手册从基础工具配置到高级性能分析掌握系统监控核心技能保障服务器高效稳定运行提升企业级应用可靠性实现自动化运维

SunJu_FaceMall

3万

主题

153

科技点

3万

积分

大区版主

碾压王

积分
32103
发表于 2025-9-28 23:50:01 | 显示全部楼层 |阅读模式 [标记阅至此楼]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Rocky Linux作为CentOS的替代品,已经成为企业级Linux服务器的重要选择。系统监控是保障服务器高效稳定运行的关键环节,对于提升企业级应用可靠性和实现自动化运维具有重要意义。本手册将全面介绍Rocky Linux系统监控的各个方面,从基础工具配置到高级性能分析,帮助读者掌握系统监控的核心技能。

基础监控工具配置

系统信息工具

在Rocky Linux中,首先需要配置一些基础的系统信息工具,这些工具可以帮助我们快速了解系统的基本情况。
  1. # 安装基础系统信息工具
  2. dnf install -y util-linux coreutils procps-ng
  3. # 查看系统基本信息
  4. uname -a              # 显示所有系统信息
  5. hostnamectl           # 显示系统主机名和相关信息
  6. lsb_release -a        # 显示发行版信息(需要安装redhat-lsb-core)
  7. cat /etc/os-release   # 显示操作系统信息
复制代码

系统监控基础工具包
  1. # 安装基础监控工具
  2. dnf install -y sysstat htop iotop nmap telnet net-tools
  3. # 启用sysstat服务(包含sar等工具)
  4. systemctl enable sysstat
  5. systemctl start sysstat
复制代码

性能监控工具
  1. # 安装性能监控工具
  2. dnf install -y perf bc
  3. # perf是Linux内核自带的性能分析工具
  4. # bc是一个计算器语言,用于处理监控数据中的数学计算
复制代码

系统资源监控

CPU监控

CPU是系统的核心资源,监控CPU使用情况对于系统性能分析至关重要。
  1. # 使用top命令实时监控CPU使用情况
  2. top
  3. # 使用vmstat监控CPU使用情况
  4. vmstat 1 5    # 每秒刷新一次,共5次
  5. # 使用mpstat监控多核CPU使用情况
  6. mpstat -P ALL 1 5
  7. # 使用sar监控历史CPU使用情况
  8. sar -u 1 5    # 每秒刷新一次,共5次
  9. sar -u -f /var/log/sa/saDD  # 查看历史数据(DD为日期)
复制代码

内存监控

内存使用情况直接影响系统性能,需要密切监控。
  1. # 使用free命令查看内存使用情况
  2. free -h      # 以人类可读格式显示
  3. # 使用vmstat监控内存使用情况
  4. vmstat -s    # 显示内存计数器
  5. vmstat 1 5   # 每秒刷新一次,共5次
  6. # 使用slabtop监控内核 slab 内存分配器信息
  7. slabtop
  8. # 使用smem显示更详细的内存使用信息(需要安装)
  9. dnf install -y smem
  10. smem -tk     # 按进程显示内存使用情况,包括比例
复制代码

磁盘监控

磁盘空间和I/O性能是系统稳定运行的关键因素。
  1. # 使用df命令查看磁盘空间使用情况
  2. df -h        # 以人类可读格式显示
  3. # 使用du命令查看目录大小
  4. du -sh /path/to/directory    # 显示指定目录的总大小
  5. # 使用iostat监控磁盘I/O
  6. iostat -xz 1 5    # 每秒刷新一次,共5次,显示扩展统计信息
  7. # 使用iotop监控进程I/O情况
  8. iotop -oP     # 只显示有I/O操作的进程和线程
复制代码

网络监控

网络性能对于服务器应用至关重要,需要全面监控。
  1. # 使用ifconfig查看网络接口信息
  2. ifconfig
  3. # 使用ip命令查看网络接口信息(推荐)
  4. ip addr show
  5. # 使用netstat监控网络连接
  6. netstat -tuln   # 显示所有监听的TCP和UDP端口
  7. netstat -s      # 显示网络统计信息
  8. # 使用ss命令替代netstat(推荐)
  9. ss -tuln        # 显示所有监听的TCP和UDP端口
  10. ss -s           # 显示网络统计信息
  11. # 使用nload监控网络流量(需要安装)
  12. dnf install -y nload
  13. nload           # 显示网络接口的实时流量
复制代码

日志监控与分析

系统日志监控

系统日志记录了系统运行的各种事件,是故障排查的重要依据。
  1. # 使用journalctl查看系统日志
  2. journalctl -xe     # 显示所有日志,从最新到最旧
  3. journalctl -u service_name  # 显示特定服务的日志
  4. journalctl -f      # 实时跟踪日志
  5. # 配置日志轮转
  6. vim /etc/logrotate.conf   # 编辑日志轮转配置文件
复制代码

应用日志监控

应用日志对于了解应用程序运行状态和排查问题非常重要。
  1. # 使用tail命令实时监控日志文件
  2. tail -f /path/to/logfile
  3. # 使用grep过滤日志内容
  4. grep "error" /path/to/logfile
  5. # 使用awk分析日志内容
  6. awk '{print $1}' /path/to/logfile | sort | uniq -c  # 统计IP访问次数
复制代码

集中化日志管理

对于多服务器环境,集中化日志管理是必要的。
  1. # 安装ELK Stack(Elasticsearch, Logstash, Kibana)
  2. # 首先安装Java运行环境
  3. dnf install -y java-1.8.0-openjdk
  4. # 安装Elasticsearch
  5. dnf install -y elasticsearch
  6. systemctl enable elasticsearch
  7. systemctl start elasticsearch
  8. # 安装Logstash
  9. dnf install -y logstash
  10. systemctl enable logstash
  11. systemctl start logstash
  12. # 安装Kibana
  13. dnf install -y kibana
  14. systemctl enable kibana
  15. systemctl start kibana
复制代码

高级性能分析工具

perf工具

perf是Linux内核自带的强大性能分析工具。
  1. # 使用perf进行CPU性能分析
  2. perf top                    # 实时显示CPU使用最多的函数
  3. perf record -a              # 记录系统所有进程的性能数据
  4. perf report                 # 分析记录的性能数据
  5. # 使用perf分析内存访问
  6. perf stat -e cache-misses,cache-references ./program  # 统计程序运行的缓存命中率
复制代码

eBPF工具

eBPF(extended Berkeley Packet Filter)是Linux内核的高级技术,可以用于安全、网络和性能监控。
  1. # 安装BCC工具包
  2. dnf install -y bcc-tools
  3. # 使用execsnoop跟踪新进程创建
  4. /usr/share/bcc/tools/execsnoop
  5. # 使用opensnoop跟踪文件打开操作
  6. /usr/share/bcc/tools/opensnoop
  7. # 使用biolatency跟踪块设备I/O延迟
  8. /usr/share/bcc/tools/biolatency
复制代码

SystemTap

SystemTap是一个强大的动态追踪工具,可以用于深入分析系统行为。
  1. # 安装SystemTap
  2. dnf install -y systemtap systemtap-runtime
  3. # 安装内核调试信息(用于SystemTap脚本)
  4. dnf debuginfo-install kernel
  5. # 使用SystemTap监控进程创建
  6. stap -ve 'probe begin { print("Hello, SystemTap!\n") exit() }'
  7. # 监控系统调用
  8. stap -c 'cat /proc/cpuinfo' 'probe syscall.* { if (pid() == target()) printf("%s\n", name) }'
复制代码

可视化监控方案

Grafana与Prometheus

Grafana和Prometheus是现代监控系统的黄金组合,提供强大的数据采集、存储和可视化功能。
  1. # 安装Prometheus
  2. dnf install -y prometheus
  3. systemctl enable prometheus
  4. systemctl start prometheus
  5. # 安装Grafana
  6. dnf install -y grafana
  7. systemctl enable grafana
  8. systemctl start grafana
  9. # 配置Prometheus数据源到Grafana
  10. # 访问Grafana Web界面(默认端口3000),添加Prometheus数据源
复制代码

Node Exporter

Node Exporter是Prometheus的官方导出器,用于收集系统级别的指标。
  1. # 下载并安装Node Exporter
  2. wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
  3. tar xzf node_exporter-1.3.1.linux-amd64.tar.gz
  4. mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/
  5. # 创建systemd服务文件
  6. cat > /etc/systemd/system/node_exporter.service <<EOF
  7. [Unit]
  8. Description=Node Exporter
  9. After=network.target
  10. [Service]
  11. User=prometheus
  12. ExecStart=/usr/local/bin/node_exporter
  13. [Install]
  14. WantedBy=multi-user.target
  15. EOF
  16. # 启动Node Exporter
  17. systemctl enable node_exporter
  18. systemctl start node_exporter
  19. # 配置Prometheus抓取Node Exporter数据
  20. # 编辑/etc/prometheus/prometheus.yml,添加以下内容:
  21. scrape_configs:
  22.   - job_name: 'node_exporter'
  23.     static_configs:
  24.       - targets: ['localhost:9100']
复制代码

自定义仪表盘

使用Grafana创建自定义仪表盘,展示关键系统指标。
  1. // 示例:CPU使用率仪表盘JSON配置
  2. {
  3.   "dashboard": {
  4.     "id": null,
  5.     "title": "Rocky Linux System Monitor",
  6.     "tags": ["rocky", "linux", "system"],
  7.     "timezone": "browser",
  8.     "panels": [
  9.       {
  10.         "id": 1,
  11.         "title": "CPU Usage",
  12.         "type": "graph",
  13.         "targets": [
  14.           {
  15.             "expr": "100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)",
  16.             "legendFormat": "{{instance}} CPU Usage"
  17.           }
  18.         ],
  19.         "yaxes": [
  20.           {
  21.             "format": "percent",
  22.             "min": 0,
  23.             "max": 100
  24.           }
  25.         ]
  26.       }
  27.     ]
  28.   }
  29. }
复制代码

自动化监控与告警

Prometheus告警规则

配置Prometheus告警规则,在系统异常时及时通知。
  1. # 创建告警规则文件 /etc/prometheus/rules.yml
  2. groups:
  3. - name: system
  4.   rules:
  5.   - alert: HighCPUUsage
  6.     expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
  7.     for: 5m
  8.     labels:
  9.       severity: warning
  10.     annotations:
  11.       summary: "High CPU usage detected"
  12.       description: "CPU usage is above 80% for more than 5 minutes (current value: {{ $value }}%)"
  13.   
  14.   - alert: HighMemoryUsage
  15.     expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90
  16.     for: 5m
  17.     labels:
  18.       severity: critical
  19.     annotations:
  20.       summary: "High memory usage detected"
  21.       description: "Memory usage is above 90% for more than 5 minutes (current value: {{ $value }}%)"
复制代码

Alertmanager配置

配置Alertmanager处理告警并发送通知。
  1. # /etc/alertmanager/alertmanager.yml
  2. global:
  3.   smtp_smarthost: 'localhost:587'
  4.   smtp_from: 'alertmanager@example.com'
  5.   smtp_auth_username: 'alertmanager@example.com'
  6.   smtp_auth_password: 'password'
  7. route:
  8.   group_by: ['alertname', 'cluster', 'service']
  9.   group_wait: 10s
  10.   group_interval: 10s
  11.   repeat_interval: 1h
  12.   receiver: 'web.hook'
  13. receivers:
  14. - name: 'web.hook'
  15.   email_configs:
  16.   - to: 'admin@example.com'
  17.     subject: '[Rocky Linux Alert] {{ .GroupLabels.alertname }}'
  18.     body: |
  19.       {{ range .Alerts }}
  20.         Alert: {{ .Annotations.summary }}
  21.         Description: {{ .Annotations.description }}
  22.         Labels: {{ .Labels }}
  23.       {{ end }}
复制代码

自动化监控脚本

使用Shell脚本实现自定义的自动化监控任务。
  1. #!/bin/bash
  2. # 系统监控脚本
  3. # 保存为 /usr/local/bin/system_monitor.sh
  4. LOG_FILE="/var/log/system_monitor.log"
  5. ALERT_THRESHOLD_CPU=80
  6. ALERT_THRESHOLD_MEM=90
  7. ALERT_THRESHOLD_DISK=90
  8. # 获取系统指标
  9. CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
  10. MEM_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}')
  11. DISK_USAGE=$(df -h / | awk 'NR==2{print $5}' | sed 's/%//')
  12. # 记录系统指标
  13. echo "$(date): CPU: ${CPU_USAGE}%, MEM: ${MEM_USAGE}%, DISK: ${DISK_USAGE}%" >> $LOG_FILE
  14. # 检查告警阈值
  15. if (( $(echo "$CPU_USAGE > $ALERT_THRESHOLD_CPU" | bc -l) )); then
  16.     echo "$(date): WARNING: High CPU usage: ${CPU_USAGE}%" >> $LOG_FILE
  17.     # 发送告警邮件或其他通知
  18. fi
  19. if (( $(echo "$MEM_USAGE > $ALERT_THRESHOLD_MEM" | bc -l) )); then
  20.     echo "$(date): CRITICAL: High memory usage: ${MEM_USAGE}%" >> $LOG_FILE
  21.     # 发送告警邮件或其他通知
  22. fi
  23. if [ $DISK_USAGE -gt $ALERT_THRESHOLD_DISK ]; then
  24.     echo "$(date): CRITICAL: High disk usage: ${DISK_USAGE}%" >> $LOG_FILE
  25.     # 发送告警邮件或其他通知
  26. fi
复制代码

设置定时任务:
  1. # 编辑crontab
  2. crontab -e
  3. # 添加以下行,每5分钟运行一次监控脚本
  4. */5 * * * * /usr/local/bin/system_monitor.sh
复制代码

企业级监控方案构建

分布式监控架构

对于大型企业环境,需要构建分布式监控架构。
  1. # 安装Prometheus联邦配置
  2. # 在主Prometheus服务器上配置 /etc/prometheus/prometheus.yml
  3. scrape_configs:
  4.   - job_name: 'federate'
  5.     scrape_interval: 15s
  6.     honor_labels: true
  7.     metrics_path: '/federate'
  8.     params:
  9.       'match[]':
  10.         - '{job="prometheus"}'
  11.         - '{__name__=~"job:.*"}'
  12.     static_configs:
  13.       - targets:
  14.         - 'prometheus-server-1:9090'
  15.         - 'prometheus-server-2:9090'
  16.         - 'prometheus-server-3:9090'
复制代码

高可用监控方案

确保监控系统本身的高可用性。
  1. # 安装Keepalived实现监控服务器高可用
  2. dnf install -y keepalived
  3. # 配置Keepalived /etc/keepalived/keepalived.conf
  4. vrrp_script check_prometheus {
  5.     script "killall -0 prometheus"
  6.     interval 2
  7.     weight 2
  8. }
  9. vrrp_instance VI_1 {
  10.     state BACKUP
  11.     interface eth0
  12.     virtual_router_id 51
  13.     priority 100
  14.     advert_int 1
  15.     authentication {
  16.         auth_type PASS
  17.         auth_pass prometheus-ha
  18.     }
  19.     virtual_ipaddress {
  20.         192.168.1.100
  21.     }
  22.     track_script {
  23.         check_prometheus
  24.     }
  25. }
  26. # 启动Keepalived
  27. systemctl enable keepalived
  28. systemctl start keepalived
复制代码

监控数据长期存储

配置长期存储解决方案,保存历史监控数据。
  1. # 安装Thanos作为Prometheus的长期存储解决方案
  2. # 下载Thanos
  3. wget https://github.com/thanos-io/thanos/releases/download/v0.25.0/thanos-0.25.0.linux-amd64.tar.gz
  4. tar xzf thanos-0.25.0.linux-amd64.tar.gz
  5. mv thanos-0.25.0.linux-amd64/thanos /usr/local/bin/
  6. # 配置Thanos Sidecar与Prometheus一起运行
  7. # 编辑Prometheus systemd服务 /etc/systemd/system/prometheus.service
  8. [Unit]
  9. Description=Prometheus
  10. After=network.target
  11. [Service]
  12. User=prometheus
  13. ExecStart=/usr/local/bin/prometheus \
  14.     --config.file=/etc/prometheus/prometheus.yml \
  15.     --storage.tsdb.path=/var/lib/prometheus \
  16.     --web.enable-lifecycle
  17. ExecStartPost=/usr/local/bin/thanos sidecar \
  18.     --prometheus.url=http://localhost:9090 \
  19.     --tsdb.path=/var/lib/prometheus \
  20.     --objstore.config-file=/etc/thanos/object-storage.yaml
  21. [Install]
  22. WantedBy=multi-user.target
  23. # 创建对象存储配置 /etc/thanos/object-storage.yaml
  24. type: S3
  25. config:
  26.   bucket: "monitoring-data"
  27.   endpoint: "s3.example.com"
  28.   access_key: "access-key"
  29.   secret_key: "secret-key"
复制代码

最佳实践与常见问题

监控最佳实践

1. 监控关键指标:专注于对业务最重要的指标,避免监控过多无关数据。
2. 设置合理的告警阈值:避免告警疲劳,只对真正需要关注的问题发送告警。
3. 建立监控层次:从基础设施到应用层,建立完整的监控层次。
4. 定期审查监控策略:随着业务发展,定期审查和调整监控策略。
5. 文档化监控配置:保持监控配置的文档化,便于团队协作和知识传承。

常见问题解决
  1. # 检查时间同步
  2. timedatectl status
  3. # 如果时间不同步,启用NTP同步
  4. dnf install -y chrony
  5. systemctl enable chronyd
  6. systemctl start chronyd
复制代码
  1. # 调整Prometheus资源限制
  2. # 编辑 /etc/systemd/system/prometheus.service
  3. [Service]
  4. LimitNOFILE=65000
  5. LimitNPROC=65000
  6. MemoryMax=8G
复制代码
  1. # 检查Alertmanager日志
  2. journalctl -u alertmanager -f
  3. # 调整告警处理配置
  4. # 编辑 /etc/alertmanager/alertmanager.yml
  5. route:
  6.   group_wait: 30s
  7.   group_interval: 5m
  8.   repeat_interval: 12h
复制代码

监控安全考虑
  1. # 配置监控服务的基本认证
  2. # 对于Prometheus,添加以下配置到 /etc/prometheus/web.yml
  3. basic_auth_users:
  4.   admin: $2y$10$salt.hashedpassword
  5. # 编辑Prometheus启动参数,添加
  6. --web.config.file=/etc/prometheus/web.yml
  7. # 对于Grafana,配置反向代理和SSL
  8. # 安装Nginx
  9. dnf install -y nginx
  10. # 配置Nginx反向代理 /etc/nginx/conf.d/grafana.conf
  11. server {
  12.     listen 443 ssl;
  13.     server_name grafana.example.com;
  14.    
  15.     ssl_certificate /etc/ssl/certs/grafana.crt;
  16.     ssl_certificate_key /etc/ssl/private/grafana.key;
  17.    
  18.     location / {
  19.         proxy_pass http://localhost:3000;
  20.         proxy_set_header Host $host;
  21.         auth_basic "Grafana";
  22.         auth_basic_user_file /etc/nginx/.htpasswd;
  23.     }
  24. }
  25. # 创建密码文件
  26. htpasswd -c /etc/nginx/.htpasswd admin
复制代码

总结与展望

Rocky Linux系统监控是保障服务器高效稳定运行的关键环节。通过本手册介绍的基础工具配置、系统资源监控、日志分析、高级性能分析、可视化监控、自动化告警和企业级监控方案构建等内容,读者可以全面掌握Rocky Linux系统监控的核心技能。

随着技术的发展,监控系统也在不断演进。未来,基于AI的智能监控、云原生监控解决方案和更精细化的性能分析将成为趋势。持续学习和实践这些技术,将有助于提升企业级应用的可靠性,实现更高效的自动化运维。

通过建立完善的监控系统,企业可以及时发现并解决潜在问题,保障业务连续性,提高系统性能,最终实现业务目标。希望本手册能够帮助读者在Rocky Linux系统监控领域取得成功。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Discord频道

加入Discord频道

加入QQ社群

加入QQ社群

联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.