服务器监控
服务器监控是AIOPS智能运维平台的基础功能模块,提供对物理服务器和虚拟机的全面监控能力,帮助用户实时掌握服务器的运行状态和性能指标,及时发现和解决潜在问题。
1. 功能概述
服务器监控模块提供以下核心功能:
- 实时性能监控:监控CPU、内存、磁盘、网络等核心性能指标
- 进程监控:监控服务器上运行的进程和服务
- 日志分析:收集和分析服务器日志
- 服务可用性检测:监控关键服务的可用性
- 资源容量规划:基于历史数据进行资源使用趋势分析和容量规划
- 异常检测:自动检测服务器性能异常
2. 监控指标
2.1 CPU指标
| 指标名称 | 单位 | 描述 | 告警阈值建议 |
|---|---|---|---|
| CPU使用率 | % | CPU总体使用率 | >90%持续3分钟 |
| 用户态CPU使用率 | % | 用户进程占用的CPU比例 | - |
| 系统态CPU使用率 | % | 系统内核占用的CPU比例 | - |
| 空闲CPU使用率 | % | CPU空闲时间比例 | <10%持续3分钟 |
| CPU负载 | - | 系统平均负载(1/5/15分钟) | >CPU核心数*0.8持续5分钟 |
| 上下文切换频率 | 次/秒 | CPU上下文切换次数 | 根据服务器规格调整 |
| 中断次数 | 次/秒 | CPU中断请求次数 | 根据服务器规格调整 |
2.2 内存指标
| 指标名称 | 单位 | 描述 | 告警阈值建议 |
|---|---|---|---|
| 内存使用率 | % | 内存总体使用率 | >85%持续3分钟 |
| 可用内存 | MB/GB | 可用内存大小 | <10%总量持续3分钟 |
| 已用内存 | MB/GB | 已使用内存大小 | - |
| 缓冲内存 | MB/GB | 用于文件缓冲的内存 | - |
| 缓存内存 | MB/GB | 用于文件缓存的内存 | - |
| 交换空间使用率 | % | 交换空间使用比例 | >50%持续5分钟 |
| 页面交换频率 | 页/秒 | 页面换入换出频率 | >1000持续5分钟 |
2.3 磁盘指标
| 指标名称 | 单位 | 描述 | 告警阈值建议 |
|---|---|---|---|
| 磁盘使用率 | % | 磁盘空间使用比例 | >85% |
| 已用空间 | GB/TB | 已使用的磁盘空间 | - |
| 可用空间 | GB/TB | 剩余可用的磁盘空间 | <10%总量 |
| 磁盘读取IOPS | IOPS | 每秒读取操作次数 | 根据存储性能调整 |
| 磁盘写入IOPS | IOPS | 每秒写入操作次数 | 根据存储性能调整 |
| 磁盘读取吞吐量 | MB/s | 每秒读取数据量 | 根据存储性能调整 |
| 磁盘写入吞吐量 | MB/s | 每秒写入数据量 | 根据存储性能调整 |
| 磁盘读取响应时间 | ms | 磁盘读取操作的平均响应时间 | >100ms持续3分钟 |
| 磁盘写入响应时间 | ms | 磁盘写入操作的平均响应时间 | >100ms持续3分钟 |
| 磁盘队列长度 | - | 磁盘IO队列中的请求数 | >CPU核心数*2持续3分钟 |
2.4 网络指标
| 指标名称 | 单位 | 描述 | 告警阈值建议 |
|---|---|---|---|
| 网络发送速率 | MB/s | 网络发送数据的速率 | 根据带宽调整 |
| 网络接收速率 | MB/s | 网络接收数据的速率 | 根据带宽调整 |
| 带宽使用率 | % | 网络带宽使用比例 | >80%持续5分钟 |
| 活跃连接数 | 个 | 当前活跃的TCP连接数 | 根据服务器规格调整 |
| 新建连接速率 | 个/秒 | 每秒新建的TCP连接数 | 根据服务器规格调整 |
| TCP重传率 | % | TCP数据包重传比例 | >5%持续3分钟 |
| 网络丢包率 | % | 网络数据包丢失比例 | >1%持续3分钟 |
| 网络错误率 | % | 网络接口错误比例 | >0.1%持续3分钟 |
3. 部署与配置
3.1 采集器安装
3.1.1 Linux服务器
# 下载采集器安装包
wget https://download.aiops.com/agent/aiops-agent-linux-amd64-v1.0.0.tar.gz
# 解压安装包
tar -zxvf aiops-agent-linux-amd64-v1.0.0.tar.gz
cd aiops-agent-linux-amd64
# 安装采集器
./install.sh --server=http://your-aiops-server:8080 --token=your-agent-token
# 启动服务
systemctl enable aiops-agent
systemctl start aiops-agent
3.1.2 Windows服务器
- 下载Windows版本的采集器安装包:
aiops-agent-windows-amd64-v1.0.0.msi - 双击运行安装包
- 在安装向导中输入AIOPS服务器地址和Agent令牌
- 完成安装后,采集器将自动注册为Windows服务并启动
3.2 采集器配置
采集器的主要配置文件位于安装目录下的config/agent.yaml,可以根据需要调整以下配置:
# 服务器连接配置
server:
url: "http://your-aiops-server:8080"
token: "your-agent-token"
retryInterval: 60 # 连接失败重试间隔(秒)
# 采集配置
collect:
cpu:
enabled: true
interval: 10 # 采集间隔(秒)
memory:
enabled: true
interval: 10
disk:
enabled: true
interval: 10
includePaths: ["/"] # 包含的磁盘路径
excludePaths: ["/tmp"] # 排除的磁盘路径
network:
enabled: true
interval: 10
includeInterfaces: ["eth0", "eth1"] # 包含的网络接口
excludeInterfaces: ["lo"] # 排除的网络接口
process:
enabled: true
interval: 30
includeProcesses: ["nginx", "mysql"] # 包含的进程
excludeProcesses: [] # 排除的进程
# 日志采集配置
log:
enabled: true
paths: # 日志文件路径
- "/var/log/syslog"
- "/var/log/messages"
- "/var/log/nginx/*.log"
excludePatterns: [] # 排除的日志模式
multilinePattern: "^\\d{4}-\\d{2}-\\d{2}" # 多行日志匹配模式
# 服务监控配置
service:
enabled: true
services: # 监控的服务列表
- name: "nginx"
type: "process"
pattern: "nginx"
- name: "mysql"
type: "tcp"
host: "localhost"
port: 3306
# 日志配置
logger:
level: "info"
file: "/var/log/aiops-agent.log"
4. 使用指南
4.1 服务器列表
在AIOPS平台界面中,点击左侧菜单栏的"监控中心" > "服务器监控",进入服务器列表页面:
- 服务器列表:展示所有已监控的服务器
- 搜索功能:支持按服务器名称、IP地址、标签等搜索
- 筛选功能:支持按操作系统类型、监控状态等筛选
- 批量操作:支持批量启用/禁用监控、批量删除等操作
4.2 服务器详情
点击服务器列表中的某个服务器,进入服务器详情页面:
4.2.1 概览
- 基本信息:服务器名称、IP地址、操作系统、CPU核心数、内存大小等
- 健康状态:服务器整体健康评分和状态
- 关键指标:CPU、内存、磁盘、网络的实时使用率
4.2.2 CPU监控
- CPU使用率趋势图:展示CPU总体使用率的历史趋势
- CPU负载趋势图:展示系统平均负载的历史趋势
- CPU详情:各核心CPU使用率、用户态/系统态/空闲态CPU使用率等详细指标
4.2.3 内存监控
- 内存使用率趋势图:展示内存使用率的历史趋势
- 内存详细指标:已用内存、可用内存、缓冲内存、缓存内存等
- 交换空间监控:交换空间使用率和页面交换频率
4.2.4 磁盘监控
- 磁盘使用率趋势图:展示各个磁盘分区的使用率趋势
- 磁盘IO监控:IOPS、吞吐量、响应时间等IO指标的趋势图
- 磁盘详情:各分区的详细信息,包括挂载点、文件系统类型、总容量等
4.2.5 网络监控
- 网络流量趋势图:展示各个网络接口的发送和接收流量趋势
- 网络连接监控:活跃连接数、新建连接速率等指标的趋势图
- 网络详情:各接口的详细信息,包括MAC地址、MTU、错误率等
4.2.6 进程监控
- 进程列表:展示服务器上运行的进程列表,包括进程ID、CPU使用率、内存使用率等
- 进程详情:点击进程查看详细信息,包括打开的文件、网络连接、线程信息等
- 进程历史:查看进程的CPU、内存使用历史
4.2.7 服务监控
- 服务列表:展示配置的监控服务列表和当前状态
- 服务详情:查看服务的详细信息和监控指标
- 服务历史:查看服务状态的历史记录
5. 告警配置
5.1 CPU告警规则
- name: "CPU使用率过高"
description: "CPU使用率持续超过90%"
severity: "high"
condition: "cpu.usage > 90"
duration: 300 # 持续时间(秒)
notifiers: ["email", "sms"]
tags: ["server", "cpu"]
- name: "CPU负载过高"
description: "CPU 5分钟平均负载超过CPU核心数的80%"
severity: "medium"
condition: "cpu.load5 > cpu.cores * 0.8"
duration: 300
notifiers: ["email"]
tags: ["server", "cpu"]
5.2 内存告警规则
- name: "内存使用率过高"
description: "内存使用率持续超过85%"
severity: "high"
condition: "memory.usage > 85"
duration: 300
notifiers: ["email", "sms"]
tags: ["server", "memory"]
- name: "交换空间使用率过高"
description: "交换空间使用率持续超过50%"
severity: "medium"
condition: "memory.swap.usage > 50"
duration: 300
notifiers: ["email"]
tags: ["server", "memory"]
5.3 磁盘告警规则
- name: "磁盘空间不足"
description: "磁盘使用率持续超过85%"
severity: "high"
condition: "disk.usage > 85"
duration: 600
notifiers: ["email", "sms"]
tags: ["server", "disk"]
- name: "磁盘IO响应时间过长"
description: "磁盘IO响应时间持续超过100ms"
severity: "high"
condition: "disk.io.readLatency > 100 or disk.io.writeLatency > 100"
duration: 300
notifiers: ["email", "sms"]
tags: ["server", "disk"]
5.4 网络告警规则
- name: "网络丢包率过高"
description: "网络丢包率持续超过1%"
severity: "high"
condition: "network.packets.dropped.rate > 1"
duration: 300
notifiers: ["email", "sms"]
tags: ["server", "network"]
- name: "TCP连接数过多"
description: "TCP连接数持续超过10000"
severity: "medium"
condition: "network.connections.tcp.active > 10000"
duration: 300
notifiers: ["email"]
tags: ["server", "network"]
6. 性能优化建议
6.1 CPU优化
- 识别高CPU消耗进程:使用进程监控功能识别消耗CPU较多的进程
- 优化应用程序:检查并优化高CPU消耗的应用程序代码
- 考虑增加CPU资源:如果CPU使用率长期超过80%,考虑升级CPU或增加服务器
- 使用负载均衡:将工作负载分散到多个服务器
6.2 内存优化
- 识别内存泄漏:监控内存使用趋势,识别可能存在内存泄漏的进程
- 调整应用内存参数:优化应用程序的内存配置参数
- 清理缓存和临时文件:定期清理系统缓存和临时文件
- 考虑增加内存:如果内存使用率长期超过85%,考虑增加服务器内存
6.3 磁盘优化
- 识别高IO进程:使用IO监控功能识别产生大量IO的进程
- 优化数据库查询:优化数据库查询和索引
- 使用SSD存储:考虑使用SSD存储提高IO性能
- 定期清理磁盘空间:删除不必要的文件,清理日志文件
- 考虑使用RAID:根据需要配置适当的RAID级别提高性能和可靠性
6.4 网络优化
- 识别网络流量来源:分析网络流量的来源和目的地
- 优化网络配置:调整操作系统和网络设备的参数
- 使用CDN:对于Web应用,使用CDN分发静态内容
- 考虑网络升级:如果带宽使用率长期超过80%,考虑升级网络带宽
7. 常见问题
7.1 采集器连接失败
- 检查网络连接:确保服务器可以访问AIOPS平台
- 检查防火墙设置:确保防火墙允许相关端口的通信
- 检查Agent令牌:确保Agent令牌正确
- 查看Agent日志:检查Agent日志获取详细错误信息
7.2 监控数据不完整
- 检查采集器状态:确保采集器正常运行
- 检查配置文件:确保相关指标的采集配置正确
- 检查权限设置:确保采集器有足够的权限获取数据
- 检查系统资源:确保服务器资源充足,没有影响采集器运行
7.3 告警误报
- 调整告警阈值:根据服务器的正常运行状态调整告警阈值
- 增加持续时间:增加告警触发的持续时间要求
- 使用智能告警:启用基于机器学习的异常检测,减少误报
- 分析历史数据:分析历史数据,了解指标的正常波动范围
7.4 性能问题
- 调整采集频率:降低非关键指标的采集频率
- 减少监控项:只监控真正需要的指标
- 优化服务器资源:确保服务器有足够的资源运行采集器
- 使用分布式部署:对于大规模环境,考虑使用分布式采集架构
