centos

centos lnmp如何监控状态

小樊
35
2025-11-22 02:25:26
栏目: 智能运维

CentOS 上 LNMP 状态监控实操指南

一 系统与服务状态快速检查

二 组件级关键指标与常用命令

组件 关键指标 常用命令或路径
Nginx 连接数、请求数、请求耗时、状态码分布 启用模块:ngx_http_stub_status_module,配置 location /status { stub_status; } 后访问;日志:/var/log/nginx/access.log/var/log/nginx/error.log
MySQL/MariaDB 连接数、线程、查询吞吐、慢查询 mysqladmin -u root -p statusSHOW STATUS;SHOW PROCESSLIST;SHOW VARIABLES LIKE 'slow_query_log%';,慢查询分析:pt-query-digest /var/log/mysql/slow.log
PHP-FPM 进程池状态、排队、慢请求 sudo systemctl status php-fpmpm.status_path(如 /status)、slowlogrequest_terminate_timeout,日志:/var/log/php-fpm/error.log
系统 CPU、内存、磁盘 IO、网络 top/htopfree -hiostat -x 1vmstat 1ss -sdf -h
以上指标与方法可定位连接瓶颈、慢查询、进程异常与资源紧张等常见问题。

三 日志与慢查询分析

四 第三方监控与告警方案

五 一键巡检脚本示例

#!/usr/bin/env bash
set -e

echo "=== 服务状态 ==="
systemctl is-active --quiet nginx && echo "Nginx: active" || echo "Nginx: inactive"
systemctl is-active --quiet mysqld && echo "MySQL: active" || echo "MySQL: inactive"
systemctl is-active --quiet php-fpm && echo "PHP-FPM: active" || echo "PHP-FPM: inactive"

echo -e "\n=== 端口监听 ==="
ss -tulnp | egrep ':(80|443|3306|9000)' || echo "未检测到关键端口监听"

echo -e "\n=== Nginx 配置与错误 ==="
sudo nginx -t && echo "Nginx 配置 OK" || echo "Nginx 配置 ERROR"
tail -n20 /var/log/nginx/error.log | sed 's/^/Nginx: /'

echo -e "\n=== MySQL 状态与慢查询 ==="
mysqladmin --connect-timeout=5 -u root -p status 2>/dev/null && echo "MySQL ping OK" || echo "MySQL ping FAILED"
mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';" 2>/dev/null || echo "MySQL 查询失败"
[ -f /var/log/mysql/slow.log ] && echo "慢查询样例:" && tail -n20 /var/log/mysql/slow.log | sed 's/^/MySQL Slow: /' || echo "未找到慢查询日志"

echo -e "\n=== PHP-FPM 状态 ==="
sudo systemctl status php-fpm --no-pager | head -20
tail -n20 /var/log/php-fpm/error.log | sed 's/^/PHP-FPM: /'

echo -e "\n=== 系统资源 ==="
free -h | head -2
df -h | head -2
iostat -x 1 2 | tail -n +4 | head -10

将脚本加入 crontab(如每 5 分钟)并结合企业微信/钉钉 Webhook 或邮件网关实现自动告警,可显著提升故障发现速度。

0
看了该问题的人还看了