Ubuntu LNMP如何进行资源监控
导读:Ubuntu LNMP 资源监控实操指南 一 系统层实时监控 进程与资源总览:使用 top/htop 查看 CPU、内存、负载 与占用最高的进程;安装 htop:sudo apt-get install htop。 内存与交换:使用 fr...
Ubuntu LNMP 资源监控实操指南
一 系统层实时监控
- 进程与资源总览:使用 top/htop 查看 CPU、内存、负载 与占用最高的进程;安装 htop:sudo apt-get install htop。
- 内存与交换:使用 free -h 查看 可用内存、已用内存、Swap 使用情况。
- 虚拟内存与 CPU 调度:vmstat 1 观察 si/so(换入/换出)、us/sy/id(用户/系统/空闲)等。
- 磁盘与 I/O:iostat -x 1(需安装 sysstat:sudo apt-get install sysstat)关注 await、r/s、w/s、util。
- 网络接口与丢包:ip -s link 或 ethtool -S <
网卡>
查看 RX/TX 错误、丢包、带宽;也可读取 /proc/net/dev 获取网卡统计。
以上命令适合快速定位瓶颈(CPU、内存、磁盘 I/O、网络)并判断是否存在异常抖动或饱和。
二 组件状态与日志检查
- 服务存活与端口监听:
- 服务状态:sudo systemctl status nginx/mysql/php-fpm;旧系统可用 service 命令。
- 端口监听:ss -tulpen | egrep ‘:(80|443|3306|9000)’; 或 netstat -tulpen | egrep ‘:(80|443|3306|9000)’。
- 错误与慢查询定位:
- Nginx:tail -n50 /var/log/nginx/error.log;访问日志用于分析 5xx/4xx 与耗时。
- MySQL:tail -n50 /var/log/mysql/error.log;慢查询分析:mysqldumpslow /var/log/mysql/slow.log。
- PHP-FPM:查看 /var/log/php-fpm.log 或 /var/log/php7.x-fpm.log(路径随版本/发行版不同)。
- Nginx 运行状态页:启用 ngx_http_stub_status_module,在 server 配置中加入:
location /nginx_status { stub_status on; allow 127.0.0.1; deny all; }
访问 http://服务器IP/nginx_status 可查看 Active connections、accepts、handled、requests 等关键指标。 - MySQL 即时状态:mysqladmin -u root -p status 查看 Threads、Queries/s、Slow queries 等。
以上步骤覆盖“服务是否存活—端口是否可达—错误与慢操作定位—Nginx 细粒度状态”的完整闭环。
三 可视化与告警平台
- Prometheus + Grafana:
- 采集:Node Exporter(主机指标,9100)、Nginx Exporter(9113)、MySQL Exporter(9104)。
- 配置示例(prometheus.yml):
- job_name: ‘node’ static_configs: targets: [‘localhost:9100’]
- job_name: ‘nginx’ static_configs: targets: [‘服务器IP:9113’]
- job_name: ‘mysql’ static_configs: targets: [‘服务器IP:9104’]
- 可视化:部署 Grafana,添加 Prometheus 数据源,导入 Node/MySQL/Nginx 官方或社区仪表盘。
- 一体化与轻量方案:
- Zabbix:企业级监控与告警,支持 自动发现、图形、触发器 等。
- Nagios:老牌告警系统,插件丰富。
- Netdata:开箱即用的实时可视化,适合单机与快速排查。
- Munin:轻量、按节点与插件组织图表。
这些平台可将系统、Nginx、MySQL、PHP-FPM 指标集中展示,并提供 阈值告警 与 历史趋势分析。
四 自动化巡检与自恢复脚本
- 快速巡检脚本(示例):
#!/usr/bin/env bash
ts=$(date ‘+%F %T’)
check() { systemctl is-active --quiet “$1” || { echo “$ts $1 DOWN, restarting…”; systemctl restart “$1”; echo “$ts $1 restarted” > > /var/log/lnmp-monitor.log; } }
check nginx; check mysql; check php-fpm - 定时执行:crontab -e 加入
*/1 * * * * /usr/local/bin/lnmp-monitor.sh - 建议:脚本仅做“保活”,根因仍应通过 日志与指标 分析;重启前可先 告警,避免雪崩。
该方式适合小规模部署或临时兜底,生产环境建议配合 平台化监控与告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu LNMP如何进行资源监控
本文地址: https://pptw.com/jishu/748471.html
