LNMP服务器性能监控
LNMP服务器性能监控方案
作为IT工程师,我将为您提供一套全面的LNMP(Linux+Nginx+MySQL+PHP)服务器性能监控方案,帮助您实时掌握服务器运行状态并及时发现问题。
一、基础监控工具
1. Linux系统监控
- top/htop: 实时查看CPU、内存使用情况
- vmstat: 监控系统进程、内存、分页、块IO等
- iostat: 监控磁盘I/O性能
- iftop/nethogs: 网络流量监控
- dstat: 综合性能监控工具
2. Nginx监控
- nginx-status: 启用Nginx状态模块
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
- 访问日志分析: 使用goaccess、awstats等工具
3. MySQL监控
- mysqladmin: 基础状态查看
mysqladmin -u root -p extended-status
- SHOW STATUS: 查看详细状态信息
- 慢查询日志: 识别性能瓶颈
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
4. PHP监控
- php-fpm状态页
pm.status_path = /status
- OPcache状态:
opcache_get_status()
- XHProf/Xdebug: 性能分析工具
二、综合监控解决方案
1. Prometheus + Grafana
- Prometheus: 收集和存储时间序列数据
- Grafana: 数据可视化
- 相关导出器:
- node_exporter (系统监控)
- nginx_exporter
- mysqld_exporter
- php-fpm_exporter
2. ELK Stack (Elasticsearch + Logstash + Kibana)
- 集中式日志收集与分析
- 适合分析Nginx访问日志、错误日志等
3. Zabbix
- 企业级监控解决方案
- 提供告警功能
- 支持自定义监控项
三、关键性能指标
1. 系统层面
- CPU使用率(特别是I/O等待)
- 内存使用率(包括swap)
- 磁盘I/O和空间使用
- 网络带宽使用
2. Nginx层面
- 活跃连接数
- 请求处理速率
- 各状态码数量
- 上游响应时间
3. MySQL层面
- 查询缓存命中率
- 连接数使用情况
- 临时表创建数量
- 慢查询数量
- InnoDB缓冲池命中率
4. PHP层面
- 当前运行的PHP-FPM进程数
- 请求处理时间
- 内存使用情况
- OPcache命中率
四、自动化告警设置
- CPU使用率 > 90%持续5分钟
- 内存使用率 > 90%
- 磁盘空间 < 10%
- MySQL连接数 > 最大连接数的80%
- PHP-FPM进程 全部繁忙
- HTTP 5xx错误 突然增加
五、性能优化建议
- 定期检查: 设置每周性能报告
- 基准测试: 使用ab、siege等工具进行压力测试
- 配置调优: 根据监控结果调整Nginx、MySQL、PHP-FPM配置
- 定期维护: 清理日志、优化表、更新软件
通过以上监控方案,您可以全面掌握LNMP服务器的运行状态,及时发现并解决性能瓶颈,确保服务稳定高效运行。