首页主机资讯Ubuntu Nginx如何监控系统状态

Ubuntu Nginx如何监控系统状态

时间2025-10-21 21:06:04发布访客分类主机资讯浏览435
导读:Ubuntu系统下监控Nginx状态的方法可分为基础命令、Nginx自带模块、第三方工具及日志分析四大类,以下是具体实现方式: 一、基础命令监控 1. 服务状态与服务日志 查看Nginx服务运行状态:使用systemctl命令可快速获取N...

Ubuntu系统下监控Nginx状态的方法可分为基础命令、Nginx自带模块、第三方工具及日志分析四大类,以下是具体实现方式:

一、基础命令监控

1. 服务状态与服务日志

  • 查看Nginx服务运行状态:使用systemctl命令可快速获取Nginx服务的启动状态、运行时间、最近活动等信息,命令为sudo systemctl status nginx(若显示“active (running)”则表示服务正常)。
  • 查看Nginx进程详情:通过ps命令过滤出Nginx相关进程,包括主进程(master process)和工作进程(worker process),命令为ps aux | grep nginx
  • 实时查看错误日志:Nginx的错误日志默认存储在/var/log/nginx/error.log,使用tail -f命令可实时跟踪日志输出,帮助快速定位配置错误、权限问题等,命令为sudo tail -f /var/log/nginx/error.log
  • 实时查看访问日志:访问日志默认存储在/var/log/nginx/access.logtail -f命令可实时查看用户请求记录,命令为sudo tail -f /var/log/nginx/access.log

2. 端口与资源占用

  • 检查Nginx监听端口:使用netstat(较老系统)或ss(新系统)命令查看Nginx监听的TCP端口(默认80/443),命令为sudo netstat -tuln | grep nginxsudo ss -tuln | grep nginx
  • 查看进程资源占用top命令可实时显示Nginx进程的CPU、内存占用率(按“M”键按内存排序,“P”键按CPU排序);htoptop的增强版,提供更友好的界面,需先安装(sudo apt install htop)。

二、Nginx自带模块监控(stub_status)

Nginx的ngx_http_stub_status_module模块可提供基本的连接状态信息(如活跃连接数、请求数等),需手动启用:

  1. 配置模块:在Nginx配置文件(如/etc/nginx/conf.d/default.conf)的server块中添加以下内容,限制仅本地访问(避免暴露敏感信息):
    location /nginx_status {
        
        stub_status on;
        
        access_log off;
        
        allow 127.0.0.1;
        
        deny all;
    
    }
        
    
  2. 重启Nginx:保存配置后,执行sudo systemctl restart nginx使配置生效。
  3. 查看状态信息:在浏览器访问http://localhost/nginx_status(或通过curl http://localhost/nginx_status命令行查看),输出结果包含:
    • Active connections:当前活跃连接数(包括ReadingWritingWaiting三种状态);
    • server accepts handled requests:总接受请求数、总处理请求数、总完成请求数;
    • Reading/Writing/Waiting:当前正在读取请求头、写入响应、等待的连接数。

三、第三方监控工具

1. Prometheus + Grafana(指标收集与可视化)

  • Prometheus:开源时间序列数据库,用于收集Nginx的性能指标(如请求速率、响应时间、错误率)。
    • 安装:sudo apt update & & sudo apt install prometheus
    • 配置:编辑/etc/prometheus/prometheus.yml,添加Nginx抓取任务(需Nginx Exporter暴露指标):
      scrape_configs:
        - job_name: 'nginx'
          static_configs:
            - targets: ['localhost:9113']
      
    • 启动:sudo systemctl start prometheus
  • Nginx Exporter:将Nginx的stub_status指标转换为Prometheus可识别的格式。
    • 下载并运行:从Nginx Exporter GitHub Releases下载对应版本的二进制文件,解压后执行./nginx-prometheus-exporter -nginx.scrape-uri http://localhost/nginx_status(需确保stub_status已启用)。
  • Grafana:开源可视化工具,用于展示Prometheus中的Nginx指标。
    • 安装:sudo apt install grafana,启动后访问http://localhost:3000(默认账号admin/admin)。
    • 配置:添加Prometheus为数据源,导入Nginx监控仪表盘(如ID为6686的官方仪表盘),即可查看请求量、响应时间、错误率等可视化图表。

2. Netdata(实时系统监控)

Netdata是一款轻量级实时监控工具,内置Nginx监控模块,无需额外配置:

  • 安装:sudo apt install netdata
  • 访问:在浏览器输入服务器IP地址(如http://localhost:19999),进入“Nginx”模块即可查看实时请求速率、连接数、响应时间等指标。

四、日志分析工具

Nginx的访问日志(access.log)和错误日志(error.log)是监控系统状态的重要数据源,可通过以下工具进行分析:

1. GoAccess(实时可视化分析)

GoAccess是一款基于终端的实时日志分析工具,支持生成HTML报告:

  • 安装:sudo apt install goaccess
  • 生成报告:执行goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED--log-format需与Nginx配置中的log_format一致),生成的report.html可在浏览器中打开,查看请求分布、状态码、响应时间等。
  • 实时更新:添加--real-time-html参数可实现报告实时刷新(需配合-o输出到Web目录)。

2. ELK Stack(大规模日志管理)

ELK(Elasticsearch + Logstash + Kibana)适用于处理海量日志,实现集中化存储、搜索和可视化:

  • 安装:通过Docker部署Elasticsearch(存储日志)、Logstash(收集/过滤日志)、Kibana(可视化)。
  • 配置:编写Logstash的logstash.conf文件,定义输入(Nginx日志文件)、过滤(解析日志格式)、输出(Elasticsearch)规则;Kibana中创建索引模式(如nginx-access-*),即可通过Dashboard展示日志分析结果(如状态码分布、访问趋势)。

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


若转载请注明出处: Ubuntu Nginx如何监控系统状态
本文地址: https://pptw.com/jishu/731555.html
Laravel项目如何在Debian部署 Ubuntu Nginx反向代理怎么用

游客 回复需填写必要信息