如何监控centos的lnmp状态
导读:如何监控CentOS的LNMP状态 监控CentOS环境下LNMP(Linux+Nginx+MySQL+PHP)的状态,需覆盖系统基础状态、各组件运行情况、性能指标及日志分析等多个维度,以下是具体方法: 一、系统基础状态监控 通过系统自带命...
如何监控CentOS的LNMP状态
监控CentOS环境下LNMP(Linux+Nginx+MySQL+PHP)的状态,需覆盖系统基础状态、各组件运行情况、性能指标及日志分析等多个维度,以下是具体方法:
一、系统基础状态监控
通过系统自带命令快速查看服务器整体运行状态,适用于快速排查系统级问题:
top/htop:实时显示系统进程的CPU、内存占用情况,top按P(CPU)、M(内存)排序可快速定位高消耗进程;htop(需sudo yum install htop安装)提供更友好的交互界面,支持鼠标操作。vmstat:报告系统虚拟内存、CPU、磁盘I/O等统计信息,vmstat 1表示每秒刷新一次,重点关注r(运行队列长度)、b(阻塞进程数)、si/so(内存交换情况)。free:查看内存使用情况(包括已用、空闲、缓存),free -h以人类可读格式(GB/MB)显示,重点关注available(可用内存)。df:检查磁盘空间使用情况,df -h显示各分区挂载点及使用率,避免磁盘爆满导致服务异常。
二、LNMP各组件状态监控
针对LNMP核心组件(Nginx、MySQL、PHP-FPM),可通过专用命令或配置模块查看详细运行状态:
1. Nginx监控
- 基础状态检查:使用
systemctl(CentOS 7+)或service命令查看Nginx服务状态:sudo systemctl status nginx # 查看Nginx是否运行及最近日志 sudo service nginx status # 旧版本CentOS使用 - Nginx状态模块:启用Nginx内置的
stub_status模块,获取请求、连接等详细指标(需修改Nginx配置文件):
在nginx.conf的server块中添加:重启Nginx后,访问location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; # 仅允许本地访问 deny all; }http://服务器IP/nginx_status可看到Active connections(活跃连接数)、requests(总请求数)等信息。
2. MySQL/MariaDB监控
- 基础状态检查:使用
systemctl或service命令查看MySQL服务状态:sudo systemctl status mysqld # MySQL服务名可能为mysqld或mariadb sudo service mysqld status mysqladmin工具:快速获取MySQL服务器状态(如运行时间、连接数、查询次数):mysqladmin -u root -p status # 输入密码后显示Uptime(运行时间)、Threads(线程数)、Questions(查询数)SHOW STATUS命令:登录MySQL命令行,执行SHOW STATUS;查看所有状态变量(如Threads_connected当前连接数、Slow_queries慢查询数),或针对性查询特定指标:SHOW STATUS LIKE 'Threads_connected'; -- 查看当前连接数 SHOW STATUS LIKE 'Slow_queries'; -- 查看慢查询数量- 慢查询日志:开启慢查询日志分析性能瓶颈(需修改
my.cnf配置文件):使用slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 # 超过2秒的查询视为慢查询pt-query-digest(Percona Toolkit工具包)分析慢查询日志:sudo yum install percona-toolkit sudo pt-query-digest /var/log/mysql/slow.log ```。
3. PHP-FPM监控
- 基础状态检查:使用
systemctl或service命令查看PHP-FPM服务状态:sudo systemctl status php-fpm # CentOS 7+默认使用php-fpm sudo service php-fpm status - PHP-FPM状态页面:修改
php-fpm.conf(或www.conf)配置文件,启用状态页面:在Nginx中添加location块允许访问(需与PHP-FPM同用户权限):[www] pm.status_path = /status # 状态路径访问location /php_status { fastcgi_pass 127.0.0.1:9000; # PHP-FPM监听端口 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; allow 127.0.0.1; deny all; }http://服务器IP/php_status可看到pool(进程池)、process manager(进程管理方式)、active processes(活跃进程数)等信息。
三、性能监控工具
通过专业工具实现长期性能数据收集、可视化及告警,适用于深度性能分析:
nmon:轻量级性能监控工具,支持实时查看CPU、内存、磁盘、网络等指标,也可后台收集数据(nmon -f -s 10 -c 60表示每10秒采集一次,共60次,生成nmon文件,用nmon analyser分析)。- Zabbix:企业级开源监控解决方案,支持监控服务器、网络设备及应用程序(如LNMP组件),提供告警、自动化运维功能。安装步骤大致为:
- 安装Zabbix Server、MySQL、Zabbix Web:
sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent; - 配置MySQL数据库(创建
zabbix库及用户); - 导入Zabbix数据库表结构(
mysql -uzabbix -p zabbix < /usr/share/doc/zabbix-server-mysql*/create.sql.gz); - 修改Zabbix Server配置文件(
/etc/zabbix/zabbix_server.conf)中的数据库连接信息; - 启动Zabbix Server及Agent:
sudo systemctl start zabbix-server zabbix-agent。
- 安装Zabbix Server、MySQL、Zabbix Web:
- Prometheus + Grafana:
- Prometheus:开源时间序列数据库,负责收集指标数据;
- Grafana:开源可视化平台,将Prometheus中的数据以图表形式展示(如Nginx请求量、MySQL CPU使用率)。
安装步骤大致为:
- 下载并安装Prometheus(
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz,解压后修改prometheus.yml添加LNMP监控目标); - 安装Node Exporter(收集系统指标)、MySQL Exporter(收集MySQL指标)、Blackbox Exporter(检查端口连通性);
- 安装Grafana(
sudo yum install grafana),配置Prometheus为数据源; - 导入Grafana模板(如Nginx、MySQL监控模板)即可查看可视化仪表盘。
四、日志监控与分析
通过分析日志文件快速定位错误、异常请求,是排查问题的关键手段:
- 实时查看日志:使用
tail -f命令实时跟踪日志文件更新(如Nginx访问日志、MySQL错误日志):tail -f /var/log/nginx/access.log # Nginx访问日志(记录所有请求) tail -f /var/log/nginx/error.log # Nginx错误日志(记录错误信息) tail -f /var/log/mysql/error.log # MySQL错误日志(记录数据库错误) - 搜索特定日志:使用
grep命令过滤日志中的关键字(如“ERROR”“404”),快速定位问题:grep "ERROR" /var/log/mysql/error.log # 查找MySQL错误日志中的ERROR信息 grep "404" /var/log/nginx/access.log # 查找Nginx访问日志中的404请求 - ELK Stack(可选):对于大规模日志分析,可使用Elasticsearch(存储)、Logstash(收集/解析)、Kibana(可视化)组合,实现日志的集中存储、搜索及可视化分析。
通过上述方法的组合,可实现从系统基础状态到组件详细运行情况、性能趋势及问题排查的全方位监控,确保CentOS环境下LNMP的稳定运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何监控centos的lnmp状态
本文地址: https://pptw.com/jishu/734287.html
