温馨提示×

如何在Ubuntu上监控LNMP性能

小樊
68
2025-04-03 08:49:11
栏目: 智能运维

在Ubuntu上监控LNMP(Linux, Nginx, MySQL, PHP)性能是一个重要的任务,可以帮助你及时发现并解决性能问题。以下是一些常用的监控工具和方法:

推荐的监控工具

  • Netdata:一个开源的实时系统监控工具,可以监控CPU、内存、磁盘、网络等各种系统性能指标,并提供直观的图表展示。
  • Nagios:一个广泛使用的开源监控系统,可以监控服务器的各种指标,并进行警报和报警。
  • Zabbix:一个功能强大的企业级监控系统,可以监控服务器的各种指标,支持自定义报警规则等功能。
  • Munin:一个轻量级的监控系统,可以监控服务器的性能指标,并提供图表展示。
  • Top命令:实时显示系统中各个进程的资源占用情况。
  • Htop命令:类似于top命令的增强版工具,提供了更多的功能和更好的用户界面。
  • Vmstat命令:报告虚拟内存统计信息,包括CPU利用率、内存使用情况、磁盘IO等。
  • Iostat命令:报告CPU利用率和磁盘IO情况,帮助用户监控系统的性能表现。
  • Sar命令:收集系统的运行状态信息,并生成报告,帮助用户分析系统性能。

监控脚本示例

  • CPU占用率监控
#!/bin/bash
THRESHOLD=80
EMAILS="xxxxxxx@163.com,xxxxxxx@qq.com"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
echo "$CURRENT_TIME - 当前CPU使用率:$CPU_USAGE%"
if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - CPU 使用率超过阈值($THRESHOLD%),当前使用率:$CPU_USAGE%" | mail -s "CPU 使用率报警" $EMAILS
    echo "$CURRENT_TIME - 报警邮件已发送至 $EMAILS"
fi
  • 内存使用率监控
#!/bin/bash
MEMORY_THRESHOLD=90
EMAILS="xxxxxxx@163.com"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f"), $3/$2 * 100.0}')
echo "$CURRENT_TIME - 当前内存使用率:$MEMORY_USAGE%"
if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - 内存使用率超过阈值($MEMORY_THRESHOLD%),当前使用率:$MEMORY_USAGE%" | mail -s "内存使用率报警" $EMAILS
    echo "$CURRENT_TIME - 内存报警邮件已发送至 $EMAILS"
fi
  • 磁盘空间使用率监控
#!/bin/bash
DISK_THRESHOLD=95
EMAILS="xxxxxxxxxxxx@163.com"
DISK_PARTITION="/"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
DISK_USAGE=$(df -h $DISK_PARTITION | awk 'NR==2 {print $5}' | sed 's/%//')
echo "$CURRENT_TIME - 当前磁盘空间使用率:$DISK_USAGE%"
if (( $(echo "$DISK_USAGE > $DISK_THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - 磁盘空间使用率超过阈值($DISK_THRESHOLD%),当前使用率:$DISK_USAGE%" | mail -s "磁盘空间使用率报警" $EMAILS
    echo "$CURRENT_TIME - 报警邮件已发送至 $EMAILS"
fi

通过以上工具和方法,你可以有效地监控Ubuntu上的LNMP性能,确保服务器的稳定运行。

0