Ubuntu Nginx如何监控系统状态
导读: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.log
,tail -f
命令可实时查看用户请求记录,命令为sudo tail -f /var/log/nginx/access.log
。
2. 端口与资源占用
- 检查Nginx监听端口:使用
netstat
(较老系统)或ss
(新系统)命令查看Nginx监听的TCP端口(默认80/443),命令为sudo netstat -tuln | grep nginx
或sudo ss -tuln | grep nginx
。 - 查看进程资源占用:
top
命令可实时显示Nginx进程的CPU、内存占用率(按“M”键按内存排序,“P”键按CPU排序);htop
是top
的增强版,提供更友好的界面,需先安装(sudo apt install htop
)。
二、Nginx自带模块监控(stub_status)
Nginx的ngx_http_stub_status_module
模块可提供基本的连接状态信息(如活跃连接数、请求数等),需手动启用:
- 配置模块:在Nginx配置文件(如
/etc/nginx/conf.d/default.conf
)的server
块中添加以下内容,限制仅本地访问(避免暴露敏感信息):location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }
- 重启Nginx:保存配置后,执行
sudo systemctl restart nginx
使配置生效。 - 查看状态信息:在浏览器访问
http://localhost/nginx_status
(或通过curl http://localhost/nginx_status
命令行查看),输出结果包含:Active connections
:当前活跃连接数(包括Reading
、Writing
、Waiting
三种状态);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
已启用)。
- 下载并运行:从Nginx Exporter GitHub Releases下载对应版本的二进制文件,解压后执行
- 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