在Ubuntu LNMP(Linux, Nginx, MySQL, PHP)环境中进行性能监控是确保系统稳定性和性能优化的关键步骤。以下是一些常用的监控工具和方法,可以帮助你有效地监控服务器状态:
#!/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 'NR2 {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服务器的状态,确保服务器的正常运行并及时发现潜在问题。