Nginx是一款高性能的Web服务器,被广泛应用于各类的网站和应用程序中。为了保证Nginx的正常工作,我们需要对其进行监控和管理。
本文将介绍如何通过Prometheus来监控Nginx的相关性能参数,让我们得以更好地了解Web服务的状态。
一. 配置Nginx
1. 启用stub_status模块
在Nginx配置文件中添加以下内容,它可以提供Nginx的状态信息。
location /stub_status {
stub_status;
access_log off;
}
注:这里我们定义了一个名为nginx_status的location,启用了stub_status模块。如果是生产环境,需要添加访问限制。
2. 加载Nginx配置。
使用nginx -s reload 可重新加载配置。
$ sudo nginx -t
$ sudo nginx -s reload
二. 安装Nginx Exporter
Nginx Exporter是一个用于采集Nginx指标的组件,它可以将Nginx的状态信息转换为Prometheus可读取的格式。
我们只需要将其安装好,并在启动时指定Nginx的接口地址即可。
1. 下载程序
并安装Nginx Exporter
$ wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
$ mkdir nginx-prometheus-exporter
$ tar -zxvf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz -C nginx-prometheus-exporter
$ cd nginx-prometheus-exporter
2. 启动程序
启动Nginx Exporter,并在启动命令中指定目标Nginx的stub_status路径,该地址用于输出Nginx的运行状态。
$ ./nginx-prometheus-exporter -nginx.scrape-uri=http://192.168.214.100:80/stub_status
三. 配置Prometheus
1. 添加配置
在Prometheus配置文件中添加nginx监控任务。
scrape_configs:
- job_name: 'nginx'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9113']
注:这里我们定义了一个名为nginx的job,采集间隔为10秒,目标地址为localhost:9113,也即是Nginx Exporter的地址端口。
2. 重启服务
$ prometheus --config.file /etc/prometheus/prometheus.yml &
稍等一会,便可在Prometheus的Web端看到该任务正常运行。
3. 查看监控数据
以下的开源版本Nginx相关的监控数据,包含活跃连接数、请求总数和状态指标。如果是付费的plus版本,则会提供非常完善的监控指标。
nginx_connections_active
nginx_http_requests_total
nginx_up
4. Grafana展示
将Prometheus接入到Grafana,并根据参数配置看板,用于展示监控的结果。
下图为部分展示效果:
原创文章,作者:howkunet,如若转载,请注明出处:https://www.intoep.com/system/63485.html