首页主机资讯ubuntu lnmp如何监控运行状态

ubuntu lnmp如何监控运行状态

时间2025-11-06 22:35:03发布访客分类主机资讯浏览902
导读:Ubuntu LNMP运行状态监控方法 一、基础命令行监控 1. 服务状态检查 使用systemctl(Ubuntu 16.04及以上版本)查看LNMP核心服务(Nginx、MySQL/MariaDB、PHP-FPM)的运行状态,是最直接的...

Ubuntu LNMP运行状态监控方法

一、基础命令行监控

1. 服务状态检查
使用systemctl(Ubuntu 16.04及以上版本)查看LNMP核心服务(Nginx、MySQL/MariaDB、PHP-FPM)的运行状态,是最直接的监控方式:

sudo systemctl status nginx    # 检查Nginx状态
sudo systemctl status mysql    # 检查MySQL状态(若使用MariaDB,命令为`sudo systemctl status mariadb`)
sudo systemctl status php-fpm  # 检查PHP-FPM状态(版本不同可能为`php7.4-fpm`、`php8.1-fpm`等)

若服务未运行,可通过sudo systemctl start < 服务名> 启动,sudo systemctl enable < 服务名> 设置开机自启。

2. 进程存在性检查
通过ps命令结合grep过滤,确认LNMP进程是否在运行:

ps aux | grep nginx    # 检查Nginx进程
ps aux | grep mysqld   # 检查MySQL主进程
ps aux | grep php-fpm  # 检查PHP-FPM进程

若无输出,说明进程可能崩溃,需手动重启或排查原因。

3. 端口监听检查
使用netstat(传统工具)或ss(更现代的工具)检查服务是否监听预期端口(Nginx:80/443、MySQL:3306、PHP-FPM:9000):

sudo netstat -tuln | grep -E '80|443|3306|9000'  # 查看端口监听情况
# 或使用ss命令(更高效)
sudo ss -tuln | grep -E '80|443|3306|9000'

若端口未监听,可能是配置错误或服务未启动。

4. 系统资源监控
通过以下命令实时查看系统资源占用,判断LNMP是否导致资源瓶颈:

top                    # 实时查看CPU、内存占用(按M按内存排序,按P按CPU排序)
htop                   # top的增强版(需安装:`sudo apt install htop`)
free -h                # 查看内存使用情况(人类可读格式)
df -h                  # 查看磁盘空间使用情况
iostat -x 1            # 查看磁盘I/O负载(需安装sysstat:`sudo apt install sysstat`)

高CPU、内存或磁盘占用可能导致服务响应变慢。

二、内置模块与日志分析

1. Nginx状态监控
启用Nginx的stub_status模块,查看连接数、请求数等指标:

  • 编辑Nginx配置文件(/etc/nginx/sites-available/default或自定义配置),添加以下内容:
    location /nginx_status {
        
        stub_status on;
        
        allow 127.0.0.1;
            # 仅允许本地访问(安全考虑)
        deny all;
    
    }
        
    
  • 重启Nginx:sudo systemctl restart nginx
  • 访问http://服务器IP/nginx_status(需在浏览器或curl中访问),输出示例:
    Active connections: 10 server accepts handled requests
     100 100 200
    Reading: 2 Writing: 3 Waiting: 5
    
    关键指标:Active connections(活跃连接数)、Reading/Writing/Waiting(读/写/等待连接数)。

2. MySQL状态监控

  • 使用mysqladmin命令快速查看MySQL状态:
    mysqladmin -u root -p status  # 需输入MySQL密码,输出包括Uptime(运行时间)、Threads(线程数)、Questions(查询数)等
    
  • 执行SQL语句查看详细状态:
    mysql -u root -p -e "SHOW GLOBAL STATUS;
        "  # 查看全局状态变量(如连接数、缓存命中率)
    mysql -u root -p -e "SHOW ENGINE INNODB STATUS\G"  # 查看InnoDB引擎状态(关键用于数据库性能分析)
    

3. 日志分析
定期检查LNMP组件的错误日志,及时发现异常:

tail -f /var/log/nginx/error.log    # 实时查看Nginx错误日志
tail -f /var/log/mysql/error.log    # 实时查看MySQL错误日志
tail -f /var/log/php-fpm.log        # 查看PHP-FPM错误日志(路径可能为`/var/log/php7.x-fpm.log`)

日志中常见异常:Nginx的502 Bad Gateway(PHP-FPM未运行)、MySQL的Too many connections(连接数过多)。

三、第三方监控工具

1. Prometheus + Grafana
开源监控组合,适合大规模、可视化监控:

  • Prometheus:收集系统和服务指标(需安装node_exporter收集系统指标,nginx_exporter收集Nginx指标,mysqld_exporter收集MySQL指标);
  • Grafana:可视化Prometheus数据,创建仪表盘(如Nginx请求量、MySQL查询数、系统CPU使用率)。
    安装步骤可参考:Ubuntu安装Prometheus、Ubuntu安装Grafana。

2. Zabbix
企业级开源监控系统,支持报警、自动化管理:

  • 安装Zabbix服务器和代理:sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
  • 配置数据库(MySQL/MariaDB)并初始化Zabbix;
  • 通过Web界面添加主机(Ubuntu服务器),配置监控项(如Nginx状态、MySQL性能、系统资源)。
    官方文档:Zabbix官方安装指南。

3. Netdata
实时监控工具,安装即用,适合快速查看系统状态:

  • 安装命令:bash < (curl -Ss https://my-netdata.io/kickstart.sh)
  • 访问http://服务器IP:19999,查看实时图表(包括CPU、内存、磁盘、网络、Nginx、MySQL等)。
    特点:无需复杂配置,开箱即用。

四、自动化监控与重启脚本

编写Shell脚本,定期检查LNMP服务状态,异常时自动重启并记录日志:

#!/bin/bash
timestamp=$(date '+%Y-%m-%d %H:%M:%S')

# 检查PHP-FPM
if ! pgrep -x "php-fpm" >
     /dev/null;
     then
    systemctl restart php-fpm
    echo "$timestamp PHP-FPM down, restarted." >
    >
     /var/log/lnmp_monitor.log
fi

# 检查MySQL
if ! systemctl is-active --quiet mysql;
     then
    systemctl restart mysql
    echo "$timestamp MySQL down, restarted." >
    >
     /var/log/lnmp_monitor.log
fi

# 检查Nginx
if ! systemctl is-active --quiet nginx;
     then
    systemctl restart nginx
    echo "$timestamp Nginx down, restarted." >
    >
     /var/log/lnmp_monitor.log
fi
  • 给脚本添加执行权限:chmod +x /usr/local/bin/lnmp_monitor.sh
  • 添加到crontab(每分钟检查一次):
    crontab -e
    
    添加以下内容:
    * * * * * /usr/local/bin/lnmp_monitor.sh
    

该脚本可有效应对服务意外崩溃的情况。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu lnmp如何监控运行状态
本文地址: https://pptw.com/jishu/744461.html
ubuntu lnmp更新升级注意啥 lnmp在ubuntu上稳定吗

游客 回复需填写必要信息