10分钟快速使用Prometheus监控nginx

发布于:2024-05-11 ⋅ 阅读:(21) ⋅ 点赞:(0)

配置 Nginx 以输出监控数据

  1. 修改 Nginx 配置
    在 Nginx 配置文件 /etc/nginx/nginx.conf 中的 server 块添加如下配置:

    location /stub_status {
        stub_status on;
        access_log off;
        allow 0.0.0.0/0;
        deny all;
    }
    
  2. 重启 Nginx
    通过命令重启 Nginx 服务:

    systemctl restart nginx
    
  3. 检查 Nginx 服务状态
    查看 Nginx 服务的当前状态:

    systemctl status nginx
    

安装与配置 Nginx Prometheus Exporter

  1. 下载二进制文件
    使用 wget 命令下载 nginx-prometheus-exporter

    wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
    
  2. 创建目录并解压文件
    在指定位置创建目录并解压:

    mkdir -p /opt/prometheus/nginx_exporter
    tar xvf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz -C /opt/prometheus/nginx_exporter
    
  3. 检查解压内容
    确认文件已正确解压:

    ls -l /opt/prometheus/nginx_exporter
    
  4. 创建运行用户
    为运行服务创建专用用户:(如果有就不需要执行了)

    useradd -M -s /usr/sbin/nologin prometheus
    
  5. 更改文件权限
    将文件目录的所有权转给新用户:

    chown -R prometheus:prometheus /opt/prometheus
    
  6. 创建 systemd 服务文件
    编写并保存 systemd 服务配置:(注意替换IP和端口)

    [Unit]
    Description=nginx-prometheus-exporter
    After=network.target
    
    [Service]
    Type=simple
    User=prometheus
    Group=prometheus
    Restart=always
    ExecStart=/opt/prometheus/nginx_exporter/nginx-prometheus-exporter -nginx.scrape-uri=http://XXXXXX:port/stub_status
    
    [Install]
    WantedBy=multi-user.target
    
  7. 启动与设置服务
    启动并设置开机自启:

    systemctl daemon-reload
    systemctl start nginx_exporter.service
    systemctl enable nginx_exporter.service
    
  8. 检查服务状态
    验证服务是否正常运行:

    systemctl status nginx_exporter.service
    
  9. 查看服务日志
    如果遇到问题,可以通过日志调试:

    journalctl -u nginx_exporter.service -f
    

配置 Prometheus 监控

  1. 修改 Prometheus 配置文件
    编辑 Prometheus 的配置文件以添加监控任务:

    - job_name: 'nginx_exporter'      
      static_configs: 
      - targets: ['10.40.111.41:9113'] 
        labels:                        
          instance: 'Application Server -1 (10.40.111.41)'
    
  2. 配置警报规则
    在规则文件中添加 Nginx 监控警报:
    vim /opt/prometheus/rules/nginx.rules.yml

    - name: nginx
      rules:
      - alert: NginxDown
        expr: nginx_up == 0
        for: 30s
        labels:
          severity: critical
        annotations:
          summary: "nginx异常,实例:{{ $labels.instance }}"
          description: "{{ $labels.job }} nginx已关闭"
    
  3. 检查警报配置文件
    确认警报配置无误:

    /opt/prometheus/alertmanager/amtool check-config /opt/prometheus/alertmanager/alertmanager.yml
    
  4. 重新加载 Prometheus 配置
    通过 API 重新加载 Prometheus 配置:

    curl -X POST http://localhost:9090/-/reload
    

Grafana添加Nginx监控模板

										**这里使用Nginx的模板ID:11199**

网站公告

今日签到

点亮在社区的每一天
去签到