ubuntu

如何监控Ubuntu LNMP的运行状态

小樊
42
2025-10-03 13:37:23
栏目: 智能运维

一、系统自带工具监控

1. 服务状态检查

使用systemctl(Ubuntu 16.04及以上版本)或service(旧版本)命令查看LNMP各组件的运行状态:

2. 进程资源占用监控

3. 端口监听检查

使用netstat(传统工具)或ss(更现代的工具)检查服务是否监听预期端口:

4. 日志分析

查看各组件的错误日志定位问题:

二、第三方监控工具

1. Zabbix

企业级开源监控解决方案,支持监控服务器性能、网络状况、LNMP服务状态,可实现报警(邮件、短信)和可视化 dashboard。

2. Prometheus + Grafana

开源监控组合,Prometheus负责收集时间序列数据(如CPU、内存、服务状态),Grafana负责数据可视化(如 dashboard 展示)。

3. Netdata

实时系统监控工具,自动检测系统资源(CPU、内存、磁盘、网络)和服务状态,提供直观的 web 图表,无需复杂配置。

4. Nagios

老牌开源监控系统,支持监控服务器、网络设备、应用程序,可通过插件扩展功能(如检查Nginx响应时间、MySQL查询性能)。

三、LNMP组件专用监控

1. Nginx状态监控

启用Nginx的stub_status模块查看基本状态(如活跃连接数、请求数):

2. MySQL状态监控

使用mysqladmin命令查看MySQL服务器状态:

3. PHP-FPM状态监控

通过php-fpmstatus页面查看进程池状态:

四、自动化监控与报警 编写Shell脚本定期检查LNMP服务状态,若异常则重启服务并发送报警(如邮件、钉钉消息):

#!/bin/bash
# 获取当前时间
timestamp=$(date +'%Y-%m-%d %H:%M:%S')

# 检查并重启php-fpm
if ! systemctl is-active --quiet php7.x-fpm; then
    systemctl restart php7.x-fpm
    echo "$timestamp php-fpm服务异常,已重启" >> /var/log/lnmp_monitor.log
    # 发送报警(示例:邮件)
    echo "php-fpm服务异常,已重启" | mail -s "LNMP监控报警" your_email@example.com
fi

# 检查并重启mysql
if ! systemctl is-active --quiet mysql; then
    systemctl restart mysql
    echo "$timestamp mysql服务异常,已重启" >> /var/log/lnmp_monitor.log
    echo "mysql服务异常,已重启" | mail -s "LNMP监控报警" your_email@example.com
fi

# 检查并重启nginx
if ! systemctl is-active --quiet nginx; then
    systemctl restart nginx
    echo "$timestamp nginx服务异常,已重启" >> /var/log/lnmp_monitor.log
    echo "nginx服务异常,已重启" | mail -s "LNMP监控报警" your_email@example.com
fi

0
看了该问题的人还看了