centos

如何监控centos的lnmp

小樊
45
2025-11-06 00:26:19
栏目: 智能运维

如何监控CentOS上的LNMP环境

监控CentOS上的LNMP(Linux、Nginx、MySQL、PHP)环境需覆盖系统资源、服务状态、应用性能及日志等方面,以下是具体方法:

一、基础命令行监控(快速定位问题)

  1. 服务状态检查
    使用systemctl(CentOS 7及以上默认)查看Nginx、MySQL(MariaDB)、PHP-FPM的运行状态,确保服务正常启动:

    sudo systemctl status nginx      # 检查Nginx状态
    sudo systemctl status mysqld     # 检查MySQL状态(部分系统为mariadb)
    sudo systemctl status php-fpm    # 检查PHP-FPM状态
    

    若服务未运行,可通过sudo systemctl start <服务名>启动。

  2. 进程与端口监控

    • ps命令确认进程是否存在:
      ps aux | grep nginx    # 检查Nginx进程
      ps aux | grep mysqld   # 检查MySQL进程
      ps aux | grep php-fpm  # 检查PHP-FPM进程
      
    • ss(替代netstat,更高效)查看服务监听端口:
      sudo ss -tulnp | grep nginx  # 检查Nginx监听端口(默认80/443)
      sudo ss -tulnp | grep mysqld # 检查MySQL监听端口(默认3306)
      sudo ss -tulnp | grep php-fpm # 检查PHP-FPM监听端口(默认9000)
      ```。  
      
      
  3. 实时资源监控

    • top/htop:动态查看CPU、内存占用,按M(内存)、P(CPU)排序,快速识别高负载进程;htop需安装(sudo yum install epel-release && sudo yum install htop),支持鼠标操作。
    • vmstat:查看虚拟内存、CPU上下文切换、磁盘IO等系统级指标,每1秒刷新一次:
      vmstat 1
      
    • iostat:监控磁盘I/O和CPU使用率(需安装sysstat包):
      sudo yum install sysstat && iostat -x 1
      
    • free:查看内存使用情况(-h表示人类可读格式):
      free -h
      ```。  
      
      
  4. 网络与磁盘监控

    • iftop:实时显示网络带宽使用(按主机/连接排序,需安装):
      sudo yum install iftop && sudo iftop
      
    • iotop:按进程统计磁盘I/O(需安装):
      sudo yum install iotop && sudo iotop
      ```。  
      
      
      

二、LNMP组件专项监控(深入问题根源)

  1. Nginx监控

    • 检查配置文件语法:
      sudo nginx -t  # 若输出“syntax is ok”则表示配置正确
      
    • 查看Nginx状态(需提前开启stub_status模块,修改nginx.conf并添加location /nginx_status):
      curl http://localhost/nginx_status  # 返回活动连接数、请求数等信息
      ```。  
      
      
  2. MySQL监控

    • 使用mysqladmin快速查看服务器状态:
      mysqladmin -u root -p status  # 输出Uptime、Threads_connected等指标
      
    • 执行SHOW STATUS查看详细状态变量(如连接数、缓存命中率):
      mysql -u root -p -e "SHOW STATUS;"
      
    • pt-query-digest分析慢查询日志(需安装Percona Toolkit):
      sudo yum install percona-toolkit && pt-query-digest /var/log/mysql/slow.log
      ```。  
      
      
  3. PHP-FPM监控

    • 查看PHP-FPM状态(需在php-fpm.conf中开启pm.status_path = /status):
      curl http://localhost/status  # 返回池状态、进程数、请求处理时间等
      
    • 使用xdebug调试PHP代码(需安装),或通过error_log查看PHP错误日志:
      tail -f /var/log/php-fpm/error.log
      ```。  
      
      
      

三、日志监控(排查问题线索)

四、第三方综合监控(长期稳定运维)

  1. Prometheus + Grafana

    • 原理:Prometheus(时序数据库)通过Node Exporter(系统指标)、MySQL Exporter(MySQL指标)、Nginx Exporter(Nginx指标)采集数据,Grafana(可视化工具)将数据渲染为仪表盘。
    • 步骤
      1. 安装Prometheus:下载并配置prometheus.yml,添加LNMP Exporter作为目标;
      2. 安装Grafana:sudo yum install grafana,启动服务并登录Web界面;
      3. 导入Grafana Dashboard(如Nginx、MySQL官方模板),实现实时监控与告警。
  2. Zabbix

    • 功能:企业级开源监控工具,支持服务器、网络、应用的健康检查、告警通知(邮件/短信)、自动化巡检
    • 步骤
      1. 安装Zabbix Server、MySQL、Zabbix Agent;
      2. 配置Zabbix前端,添加LNMP服务器为监控主机;
      3. 设置触发器(如CPU使用率>80%、MySQL连接数>100),触发告警。
  3. Netdata

    • 特点:开箱即用的实时监控工具,低资源消耗,提供Web仪表盘,支持系统、网络、应用等多维度监控。
    • 安装bash <(curl -Ss https://my-netdata.io/kickstart.sh),一键安装并自动启动。

通过上述方法,可实现从基础状态检查深度性能分析的全方位监控,确保CentOS上LNMP环境的稳定运行。根据需求选择合适的工具:简单场景用命令行,复杂环境用第三方综合监控方案。

0
看了该问题的人还看了