首页主机资讯Nginx在Ubuntu上如何监控

Nginx在Ubuntu上如何监控

时间2025-10-23 21:42:04发布访客分类主机资讯浏览1348
导读:Nginx在Ubuntu上的监控方法 监控Nginx的运行状态需覆盖服务状态、性能指标、日志分析及可视化等方面,以下是具体方法: 1. 基础服务状态检查 查看Nginx服务运行状态:使用systemctl命令确认Nginx是否启动、是否有...

Nginx在Ubuntu上的监控方法

监控Nginx的运行状态需覆盖服务状态、性能指标、日志分析及可视化等方面,以下是具体方法:

1. 基础服务状态检查

  • 查看Nginx服务运行状态:使用systemctl命令确认Nginx是否启动、是否有错误日志。
    sudo systemctl status nginx
    
    输出会显示服务状态(active/running表示正常)、启动时间及最近活动日志。
  • 检查Nginx配置文件语法:避免因配置错误导致服务异常,使用以下命令验证:
    sudo nginx -t
    
    若配置正确,会提示“syntax is ok”和“test is successful”。
  • 查看Nginx进程:通过ps命令列出所有Nginx进程(主进程+子进程),确认进程是否存在:
    ps aux | grep nginx
    
    正常情况下应显示主进程(root用户)和多个子进程(www-data用户)。

2. 实时状态模块配置(stub_status)

Nginx内置ngx_http_stub_status_module模块,可提供活跃连接数、请求总数、连接状态等基础指标。

  • 启用模块:编辑Nginx配置文件(如/etc/nginx/conf.d/default.conf),添加以下内容:
    location /nginx_status {
        
        stub_status on;
        
        access_log off;
        
        allow 127.0.0.1;
            # 仅允许本地访问(生产环境建议限制IP)
        deny all;
    
    }
        
    
  • 重启Nginx:使配置生效:
    sudo systemctl restart nginx
    
  • 访问状态页面:在浏览器或终端输入http://服务器IP/nginx_status,会显示类似以下信息:
    Active connections: 3 
    server accepts handled requests
     1000 1000 2000 
    Reading: 0 Writing: 1 Waiting: 2
    
    其中:
    • Active connections:当前活跃连接数(包括Reading/Writing/Waiting);
    • accepts:自启动以来的总连接数;
    • handled:成功处理的连接数;
    • requests:总请求数;
    • Reading/Writing/Waiting:分别表示正在读取请求、写入响应、等待的连接数。

3. 系统自带工具监控资源使用

通过Ubuntu系统工具监控Nginx进程的CPU、内存、端口等资源占用情况:

  • top/htop:实时查看进程资源占用(top为命令行工具,htop需安装,界面更友好):
    top -n 1 | grep nginx  # 查看Nginx进程的CPU/内存占用
    sudo apt install htop &
        &
         htop -p $(cat /var/run/nginx.pid)  # 使用htop查看指定PID的Nginx进程
    
  • netstat/ss:查看Nginx监听的端口(如80、443)及连接状态:
    sudo netstat -tuln | grep nginx  # 传统工具
    sudo ss -tuln | grep nginx       # 更现代的工具(推荐)
    
  • free/vmstat:查看系统内存和虚拟内存使用情况:
    free -h  # 以人类可读格式显示内存使用(如GB/MB)
    vmstat 1 5  # 每1秒刷新一次,共5次,显示内存、CPU、IO等统计信息
    
  • df/du:查看磁盘空间使用情况(避免日志或网站文件占满磁盘):
    df -h  # 显示各分区使用情况
    du -sh /var/log/nginx/*  # 查看Nginx日志目录大小
    

4. 日志分析与可视化

  • 查看错误日志:Nginx错误日志默认路径为/var/log/nginx/error.log,使用tail命令实时查看最新错误:
    sudo tail -f /var/log/nginx/error.log
    
  • 查看访问日志:访问日志默认路径为/var/log/nginx/access.log,可分析访问趋势(如IP、请求路径、状态码):
    sudo tail -f /var/log/nginx/access.log
    
  • 实时日志分析工具(GoAccess):生成交互式HTML报告,支持实时监控访问趋势、请求来源、浏览器类型等。安装及使用:
    sudo apt install -y goaccess  # Ubuntu安装
    goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED  # 生成报告(需指定日志格式)
    
    打开浏览器访问http://服务器IP/report.html即可查看可视化报告。

5. 第三方监控工具(Prometheus+Grafana)

适用于企业级大规模监控,可实现性能指标收集、存储、可视化及告警

  • 安装Prometheus:用于收集Nginx及其他系统的指标数据:
    sudo apt update &
        &
         sudo apt install -y prometheus
    
    编辑配置文件/etc/prometheus/prometheus.yml,添加Nginx抓取任务:
    scrape_configs:
      - job_name: 'nginx'
        static_configs:
          - targets: ['localhost:9113']  # Nginx Exporter的监听端口
    
  • 安装Nginx Exporter:将Nginx的性能指标(如请求速率、响应时间、并发连接数)暴露给Prometheus:
    wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz
    tar xvf nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz
    cd nginx-prometheus-exporter_0.10.0_linux_amd64
    ./nginx-prometheus-exporter  # 默认监听9113端口
    
  • 安装Grafana:用于可视化Prometheus中的数据,安装后添加Prometheus为数据源(URL为http://localhost:9090),并导入Nginx仪表盘(如ID为6686的官方仪表盘),即可查看实时监控面板。

以上方法覆盖了Nginx监控的基础检查、实时状态、日志分析及高级可视化需求,可根据实际场景选择合适的方式组合使用。

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


若转载请注明出处: Nginx在Ubuntu上如何监控
本文地址: https://pptw.com/jishu/733863.html
Ubuntu中Nginx如何实现负载均衡 Debian Crontab如何实现定时备份数据库

游客 回复需填写必要信息