您的位置:

Prometheus监控Nginx

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 的各项指标信息,可以及时发现和解决问题,保障系统的稳定性和可靠性。