Nginx在Ubuntu上如何监控
导读:Nginx在Ubuntu上的监控方法 监控Nginx的运行状态需覆盖服务状态、性能指标、日志分析及可视化等方面,以下是具体方法: 1. 基础服务状态检查 查看Nginx服务运行状态:使用systemctl命令确认Nginx是否启动、是否有...
Nginx在Ubuntu上的监控方法
监控Nginx的运行状态需覆盖服务状态、性能指标、日志分析及可视化等方面,以下是具体方法:
1. 基础服务状态检查
- 查看Nginx服务运行状态:使用
systemctl
命令确认Nginx是否启动、是否有错误日志。
输出会显示服务状态(active/running表示正常)、启动时间及最近活动日志。sudo systemctl status nginx
- 检查Nginx配置文件语法:避免因配置错误导致服务异常,使用以下命令验证:
若配置正确,会提示“syntax is ok”和“test is successful”。sudo nginx -t
- 查看Nginx进程:通过
ps
命令列出所有Nginx进程(主进程+子进程),确认进程是否存在:
正常情况下应显示主进程(root用户)和多个子进程(www-data用户)。ps aux | grep nginx
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