Prometheus 是一个开源的监控系统,Nginx 是一款开源的高性能 Web 服务器。此篇文章将详细介绍如何使用 Prometheus 监控 Nginx 的运行状态,主要包括以下几个方面。
一、安装 Prometheus
首先需要安装并启动 Prometheus,可参考以下代码:
cd /opt/
wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.22.0.linux-amd64.tar.gz
cd prometheus-2.22.0.linux-amd64/
./prometheus --config.file=prometheus.yml
其中 prometheus.yml 文件是配置文件,用来定义哪些服务和指标需要被监控。这里只需要关注 Nginx,因此只需要在 prometheus.yml 中添加以下内容:
- job_name: 'nginx'
scrape_interval: 5s
metrics_path: /nginx_status
static_configs:
- targets: ['localhost:80']
上述代码定义了监控 Nginx,其中 job_name 是一个自定义的名称,scrape_interval 是采集数据的时间间隔,metrics_path 是 Nginx 的状态数据地址,static_configs 是 Nginx 的 IP 和端口。
二、配置 Nginx
为了能够监控 Nginx,需要在 Nginx 的配置文件中增加以下代码:
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
这段代码主要是定义了状态数据的接口地址为 /nginx_status,每次访问该地址都会返回一份包含当前状态信息的文本内容。
三、安装 Nginx Exporter
Nginx Exporter 是一个 Prometheus 的扩展,用于采集 Nginx 的基本指标信息。可以通过以下命令进行安装:
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.8.0/nginx-prometheus-exporter-0.8.0-linux-amd64.tar.gz
tar -zxvf nginx-prometheus-exporter-0.8.0-linux-amd64.tar.gz
cd nginx-prometheus-exporter-0.8.0-linux-amd64/
./nginx-prometheus-exporter
启动 Nginx Exporter 后,可以通过 http://localhost:9113/metrics 访问其提供的监控信息。
四、配置 Prometheus
为了将 Nginx Exporter 的监控信息集成到 Prometheus 中,需要在 prometheus.yml 中添加以下内容:
- job_name: nginx-exporter
scrape_interval: 5s
static_configs:
- targets: ['localhost:9113']
上述代码定义了一个名为 nginx-exporter 的 job,每 5 秒钟采集一次 Nginx Exporter 的数据。
五、查询指标
通过 Prometheus 提供的 Web 界面,可以轻松地查询 Nginx 的各项指标信息。例如,可以查询 Nginx 的请求数、响应时间等信息,以便及时发现和解决问题。
查询 Nginx 的请求数,可以使用以下 PromQL 表达式:
nginx_http_requests_total
查询 Nginx 的响应时间,可以使用以下 PromQL 表达式:
nginx_http_request_duration_seconds
六、总结
通过上述步骤,我们已经学习了如何使用 Prometheus 监控 Nginx 的运行状态。通过监控 Nginx 的各项指标信息,可以及时发现和解决问题,保障系统的稳定性和可靠性。