Prometheus 和 Grafana 通过nginx-exporter监控nginx

news2024/9/29 1:16:44

在生产环境下,您已经部署了 Prometheus 和 Grafana,并希望通过它们来监控另一台 Ubuntu 20.04 上的 Nginx 服务。以下是配置步骤:

1. 安装和配置 nginx-exporter (Nginx 的 Prometheus 导出器)

nginx-exporter 是 Prometheus 用来从 Nginx 收集指标的组件。

安装步骤:
  1. 在目标 Ubuntu 20.04 服务器上安装 nginx-exporter

    • 您可以使用官方的 Go 程序编译,或者直接下载预编译的二进制文件:
      wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.10.0/nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz
      tar -xzvf nginx-prometheus-exporter_0.10.0_linux_amd64.tar.gz
      sudo mv nginx-prometheus-exporter /usr/local/bin/
      
  2. 配置 nginx-exporter

    • 假设您的 Nginx 的状态页在 http://localhost:8080/status(这个 URL 需要在 Nginx 配置中开启并允许 Prometheus 访问),启动 nginx-exporter
      nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
      
  3. 配置为服务(可选):

    • 为了保证 nginx-exporter 能在系统重启后自动启动,您可以将其配置为系统服务:
      sudo tee /etc/systemd/system/nginx-prometheus-exporter.service > /dev/null <<EOL
      [Unit]
      Description=Nginx Prometheus Exporter
      After=network.target
      
      [Service]
      User=nobody
      ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      EOL
      
      sudo systemctl daemon-reload
      sudo systemctl start nginx-prometheus-exporter
      sudo systemctl enable nginx-prometheus-exporter
      

2. 配置 Prometheus 来抓取 Nginx 的指标

在 Prometheus 的配置文件中(通常为 prometheus.yml),添加 Nginx 的目标:

scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['<Nginx_Server_IP>:9113']
  • 这里 <Nginx_Server_IP> 是您 Ubuntu 服务器的 IP 地址。
  • 9113nginx-exporter 默认暴露的端口。

3. 在 Grafana 中创建 Nginx 的仪表盘

  1. 进入 Grafana,添加 Prometheus 数据源。
  2. 导入 Nginx 的现有仪表盘模板或创建自定义仪表盘:
    • 您可以在 Grafana 官方模板库中找到 Nginx 的仪表盘模板(例如,Dashboard ID:11199 )。
  3. 设置数据源为您在 Prometheus 中配置的 Nginx 监控源,保存并应用。

4. 验证配置

  • 确保在 Grafana 中能看到 Nginx 的相关监控数据。如果没有数据,检查以下内容:
    • Nginx 状态页是否可以被 nginx-exporter 访问。
    • Prometheus 是否可以正确抓取 nginx-exporter 的数据。
    • Grafana 中的数据源配置是否正确。

5. 其他优化和安全设置

  • 您可以在生产环境中考虑使用认证或限制 IP 来保护 Nginx 状态页。
  • 优化 Prometheus 抓取间隔,避免对服务器造成过大压力。

通过以上步骤,您应该能够成功在生产环境下使用 Prometheus 和 Grafana 监控 Nginx。

好的,下面我会具体举例说明如何配置 Nginx 的状态页并允许 Prometheus 访问,以便启动 nginx-exporter

1. 配置 Nginx 的状态页

首先,您需要在 Nginx 中启用状态页。可以通过在 Nginx 配置文件中添加 stub_status 模块来实现。

例子:配置 Nginx 的状态页
  1. 打开 Nginx 的主配置文件,通常位于 /etc/nginx/nginx.conf 或者 /etc/nginx/sites-available/default

  2. 在配置文件中添加一个新的 location 块,用于暴露 Nginx 的状态信息。假设您要在 localhost:8080/status 暴露状态页,配置如下:

    server {
        listen 8080;
    
        location /status {
            stub_status;
            allow 127.0.0.1;      # 仅允许本地访问
            deny all;              # 拒绝其他所有访问
        }
    }
    
    • stub_status 指令启用 Nginx 的基本状态信息。
    • allow 127.0.0.1; deny all; 配置限制只有本地可以访问状态页,您可以根据需要修改允许访问的 IP。
  3. 保存配置文件后,重新加载 Nginx 服务以应用配置:

    sudo systemctl reload nginx
    
  4. 测试配置是否生效,访问 http://localhost:8080/status

    curl http://localhost:8080/status
    

    预期输出应类似于:

    Active connections: 1 
    server accepts handled requests
     10 10 10 
    Reading: 0 Writing: 1 Waiting: 0 
    

2. 启动 nginx-exporter

配置好 Nginx 的状态页后,接下来就是启动 nginx-exporter

例子:启动 nginx-exporter

假设您的 nginx-exporter 已经安装在 /usr/local/bin/ 路径下,可以通过以下命令启动:

nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status

这个命令告诉 nginx-exporterhttp://localhost:8080/status 获取 Nginx 的状态信息并转换为 Prometheus 可识别的格式。

配置 nginx-exporter 为系统服务(可选)

为了确保 nginx-exporter 在系统重启后自动运行,可以将其配置为系统服务:

  1. 创建一个新的 systemd 服务文件:

    sudo nano /etc/systemd/system/nginx-prometheus-exporter.service
    
  2. 将以下内容复制到服务文件中:

    [Unit]
    Description=Nginx Prometheus Exporter
    After=network.target
    
    [Service]
    User=nobody
    ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost:8080/status
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 保存并退出编辑器。

  4. 重新加载 systemd 并启动 nginx-exporter 服务:

    sudo systemctl daemon-reload
    sudo systemctl start nginx-prometheus-exporter
    sudo systemctl enable nginx-prometheus-exporter
    

3. 验证 nginx-exporter 工作情况

您可以通过访问 http://<Nginx_Server_IP>:9113/metrics 来检查 nginx-exporter 是否正常工作。访问时应看到 Prometheus 格式的指标数据。

通过以上步骤,您的 nginx-exporter 应该已经正确配置并在工作了,Prometheus 也可以开始抓取 Nginx 的监控数据了。
图标id:111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Godot《躲避小兵》实战之创建敌人

是时候创建一些玩家必须躲避的敌人了。它的行为很简单&#xff1a;怪物将随机生成在屏幕的边缘&#xff0c;沿着随机的方向直线移动。 我们将创建一个 Mob 的怪物场景&#xff0c;以便在游戏中独立实例化出任意数量的怪物。 节点设置 点击顶部菜单的“场景 -> 新建场景”…

C++初学(14)

14.1、while循环 和for循环相比&#xff0c;while循环没有初始化和更新部分&#xff0c;它只有测试条件和循环体。 while(text-condition)body首先程序计算圆括号内的测试条件&#xff08;text-condition&#xff09;表达式。如果该表达式为ture&#xff0c;则执行循环体中的…

短剧系统搭建:从零搭建高效创意内容平台教程,源码分享+正版片源授权指南

目录 一、短剧系统是什么&#xff1f; 二、短剧系统怎么搭建 技术选型 安全与性能优化 测试与部署 运营与维护 三、部分代码展示 一、短剧系统是什么&#xff1f; 短剧是一种采用单集时长15—30分钟的系列剧、集数在6集内的系列单元剧、20集内的连续剧、周播剧等多种形态…

Slowman - hackmyvm

简介 靶机名称&#xff1a;Slowman 难度&#xff1a;简单 靶场地址&#xff1a;https://hackmyvm.eu/machines/machine.php?vmSlowman 本地环境 虚拟机&#xff1a;vitual box 靶场IP&#xff08;Slowman&#xff09;&#xff1a;192.168.130.57 windows_IP&#xff1a…

用ClouDNS注册免费永久域名

ClouDNS 免费域名创建教程 ClouDNS 是一家全球知名的托管 DNS 服务供应商&#xff0c;它提供的服务包括 GeoDNS、Anycast DNS 以及带有 DDoS 防护的 DNS 等。ClouDNS 提供了免费的 DNS 托管服务&#xff0c;其中包括单播 DNS 服务器、DNS 区域、DNS 记录、邮件转发等功能&…

matlab峰值检测

峰值检测的意义 在信号处理中&#xff0c;我们常常需要寻找信号的峰值&#xff0c;对于全局最大值&#xff0c;寻找起来比较容易&#xff0c;而对于局部峰值的寻找就需要考虑更多的条件&#xff0c;例如峰值的绝对幅度以及相邻峰值之间之间的间距&#xff1b;&#xff0c;我如…

笔记小结:《利用python进行数据分析》之matplotlib入门

matplotlib入门&#xff0c;这一篇就够了&#xff01; matplotlib API入门 matplotlib的通常引入约定是&#xff1a; In [11]: import matplotlib.pyplot as plt 在Jupyter中运行%matplotlib notebook&#xff08;或在IPython中运行%matplotlib&#xff09;&#xff0c;就可…

代码随想录算法训练营第二十二天| 回溯算法理论基础 77. 组合 216.组合总和III 17.电话号码的字母组合

目录 一、回溯算法理论基础二、LeetCode 77. 组合思路C代码 二、LeetCode 216.组合总和III思路C代码 二、LeetCode 17.电话号码的字母组合思路C代码 总结 一、回溯算法理论基础 回溯法&#xff1a;回溯法是一种将问题遍历的结构抽象为树形结构&#xff0c;在解空间树种采取深度…

vxe-selectvxe-date-picker下拉框被遮问题

解决之法&#xff1a; html: // vxe-select组件 &#xff0c;要加transfer <vxe-select:placeholder"$t(button.selects)"v-model"item.ruleParamId":options"item.options?.map(val > ({label: val.paramName, value: val.id}))"chang…

【操作系统 / 系统编程】2025 秋招超详细复习指南 - 基于 Linux 环境的全面复习 - 持续更新(目前1.7w字)

操作系统 / 系统编程复习目录 一、进程概念1. 冯诺依曼1.1 外设1.2 IO1.3 数据流1.4 存储分级 && IO效率 2. OS2.1 作用&#xff1a;管理2.2 管理&#xff1a;先描述&#xff0c;再组织2.3 内存管理、进程管理、文件系统、驱动管理 3. 进程3.1 什么是进程3.2 为什么要有…

数学建模2024国赛时间及事项安排

2024年的全国大学生数学建模竞赛即将拉开帷幕。考虑到许多同学可能是首次参与此类赛事&#xff0c;尚不清楚如何进行有效的时间安排&#xff0c;博主在此整理了以往参赛的经验和时间管理策略&#xff0c;希望能为大家提供一些有益的参考&#xff0c;更从容地应对国赛。 本届全国…

定制开发AI智能名片商城小程序:重塑品牌曝光的创新推手

摘要&#xff1a;随着移动互联网技术的飞速发展&#xff0c;小程序作为一种轻量级应用形态&#xff0c;正逐步成为企业品牌传播与商业变现的重要渠道。本文将探讨在品牌定位中&#xff0c;如何将“定制开发AI智能名片商城小程序”作为品牌曝光的核心推手&#xff0c;通过强化品…

pikachu-Cross-Site Scripting通过攻略

反射型xss(get) 第一步&#xff1a;进入先将maxlength中的20修改大一些&#xff0c;以便我们可以输入更多的字符 第二步&#xff1a;输入<script>alert(1)</script>成功爆破 反射型xss(post) 第一步&#xff1a;点击提示得到用户名和密码登录 第二步&#xff1…

轻松备份和共享照片的Circled.me

什么是 Circled.me &#xff1f; Circled.me 旨在帮助人们在自己的服务器上轻松备份和共享照片、视频、相册。注重性能、低占用空间以及易于实施和使用。支持托管社区所需的一切&#xff0c;能够进行交流和交换照片、想法等&#xff0c;实现通过群聊等方式与您的圈子分享。 软件…

电脑资料被删除怎么办?这些方法帮你轻松找回!

在日常工作和生活中&#xff0c;电脑资料的安全存储至关重要。然而&#xff0c;有时我们可能会因为误操作或其他原因不小心删除了重要资料。这时&#xff0c;我们该如何应对呢&#xff1f;本文将为你提供几种有效的恢复方法&#xff0c;帮你轻松找回被删除的电脑资料。 一、撤…

MySQL如何判断一个字段里面是否包含汉字

SQL查询中&#xff0c;length() 和 char_length() 都是用来获取字符串长度的函数 在单字节字符集下&#xff08;如ASCII&#xff09;&#xff1a;每个字符通常占用1个字节&#xff0c;因此length()和char_length()在这类字符集中给出的结果是一样 在多字节字符集下&#xff0…

湖北省各市各地两化融合贯标、3A级认定申报奖补补助、申报条件材料、流程指南

盘点湖北省各市各地两化融合贯标、3A级认定申报奖补补助、申报条件材料、流程等内容&#xff0c;武汉市、黄石市、十堰市、宜昌市、襄阳市、鄂州市、荆门市、孝感市、荆州市、黄冈市、咸宁市、随州市,恩施土家族苗族自治州、仙桃市、潜江市、天门市、神农架林区有需要具体了解的…

OPPO手机短信删除了怎么恢复?三大解决办法助你找回

在快节奏的生活中&#xff0c;手机短信作为我们日常沟通的重要工具之一&#xff0c;往往承载着许多重要的信息&#xff0c;如验证码、银行通知、会议安排等。然而&#xff0c;不小心误删短信的情况时有发生&#xff0c;特别是对于OPPO手机用户而言&#xff0c;短信一旦删除&…

谷粒商城实战笔记-240~243-商城业务-购物车-页面环境搭建

文章目录 一&#xff0c;页面调整1&#xff0c;详情页增加“加入购物车”按钮 二&#xff0c;添加购物车后台实现详细步骤异步处理的优点 三&#xff0c;解决加购重复提交问题 这部分的主要内容&#xff1a; 从product模块的详情页点击加入购物车&#xff0c;发送请求到cart购物…

Kubernetes服务发布基础

一、Service 1.service基本介绍 service为一组提供服务的pod提供抽象的稳定的网络访问地址&#xff0c;主要用于网络服务&#xff0c;通过service定义&#xff0c;为客户端提供访问地址和负载均衡&#xff0c;屏蔽endport的变化。 在 kubernetes 中,pod 的IP 地址是动态变…