首页 > 系统相关 >云原生之运维监控实践-使用Prometheus与Grafana实现对Nginx和Nacos服务的监测

云原生之运维监控实践-使用Prometheus与Grafana实现对Nginx和Nacos服务的监测

时间:2024-11-16 14:14:56浏览次数:3  
标签:exporter 之运维 Prometheus Nacos nginx prometheus 监控 Grafana 仪表板

背景

如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》

去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当时使用的是 docker-compose 在单台机器上部署若依微服务 ruoyi-cloud 项目;在这个基础上,作为演示项目,我们计划实现对所有基础组件和微服务的监控。之前记录了搭建 PrometheusGrafana 监控系统的过程。今天这篇文章主要是记录下对 NginxNacos 服务的监测,用到的 exporter 是: nginx-prometheus-exporterNacos 自带了一个用于监控的内置端点。

虚机资源

共用到了2台虚机,1台作为应用服务节点,1台运维监控节点。

主机名IP说明
svc192.168.44.168服务节点
ops192.168.44.169监控节点

基本选用当前最新版本,即将安装的 PrometheusGrafana 及组件版本信息如下:

  • Prometheus版本:v2.54.1
  • Grafana版本:11.2.0
  • nginx-prometheus-exporter版本:v1.3.0

系统环境

[root@ops ~]# uname -a
Linux ops 5.10.0-182.0.0.95.oe2203sp3.x86_64 #1 SMP Sat Dec 30 13:10:36 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@ops ~]# cat /proc/version
Linux version 5.10.0-182.0.0.95.oe2203sp3.x86_64 ([email protected]) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Sat Dec 30 13:10:36 CST 2023

ops节点:docker-compose安装Prometheus与Grafana

参考云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测

svc节点:docker-compose安装nginx-prometheus-exporter

有了 PrometheusGrafana 的基础环境,我们来实现对 Nginx 状态的监控:通过 nginx-prometheus-exporter 快速采集 Nginx 运行数据(如请求数、连接数、响应时间等)并以 Prometheus 格式提供,供 Prometheus 进行采集和分析。

2024-11-16-1-NginxExporterVersion.jpg

验证Nginx的指标端点

命令行输入:

nginx -V 2>&1 | grep -o with-http_stub_status_module
  • 如果在终端中输出with-http_stub_status_module,则说明Nginx已启用stub_status模块。
  • 如果未输出任何结果,则可以使用–with-http_stub_status_module参数从源码重新配置编译Nginx。

在安装 nginx-prometheus-exporter 之前,需要先在 Nginx 的配置文件中开放 stub_status 端点。

    location = /stub_status { # 具体路径可根据业务情况进行调整
            stub_status;
    }

浏览器访问验证端点:http://192.168.44.168/stub_status

Active connections: 60 
server accepts handled requests
 86247 86247 113387 
Reading: 0 Writing: 5 Waiting: 55 

安装nginx-prometheus-exporter

在需要监测的主机上,编辑 docker-compose.yml 文件,增加安装 nginx-prometheus-exporter 配置。

  • [root@svc monitoring]# vi docker-compose.yml
version: '3'
services:
  ops-nginx-exporter:
    container_name: ops-nginx-exporter
    image: nginx/nginx-prometheus-exporter:1.3.0
    networks:
      - custom_network
    environment:
      SCRAPE_URI: http://192.168.44.168/stub_status
    ports:
      - "9113:9113"
    restart: unless-stopped

通过命令: docker-compose up -d 完成镜像拉取、并启动 ops-nginx-exporter 服务。

修改Prometheus配置

Prometheus 配置中增加对svc主机上 Nginx 运行状态的抓取配置。

  • [root@ops monitoring]# vi ./prometheus/conf/prometheus.yml
scrape_configs:
  - job_name: 'ops-nginx'
    scrape_interval: 15s
    static_configs:
      - targets:
        - 192.168.44.168:9113   

重启 Prometheus 容器。

[root@ops monitoring]# docker restart ops-prometheus

验证nginx-prometheus-exporter安装结果

  • 浏览器验证metrics端点

浏览器访问http://192.168.44.168:9113/metrics

  • Prometheus控制台验证nginx相关的指标

2024-11-16-2-NginxIndex.jpg

配置Grafana对主机状态的可视化

浏览器访问http://192.168.44.169:3000。

  • 配置数据源
  1. 点击左侧菜单中的"Add new connection"。
  2. 选择或搜索"Data Sources"。
  3. 点击"Add data source"并选择"Prometheus"。
  4. 在"HTTP"部分输入Prometheus地址,eg:http://192.168.44.169:9090
  5. 点击"Save & Test"确认连接成功。
  • 查看现成的仪表板

https://grafana.com/grafana/dashboards/这个页面是 Grafana 的官方仪表板目录,用户可以在这里找到和共享各种现成的 Grafana 仪表板。这些仪表板覆盖了多种监控需求,包括系统性能、应用监控、网络流量等。用户可以根据自己的需求搜索和导入适合的仪表板,提高监控效率和可视化效果。这里我们搜索 Nginx ,结果中有个 NGINX by nginxinc ,点击进去可以查看详细的UI效果,复制仪表板的id,此处是11199。

  • 导入现成的仪表板
  1. 在右侧菜单中点击"New"按钮,然后选择"Import"。
  2. 在输入框中,可以直接输入现成仪表板的ID,或者上传JSON文件。常用的主机监控仪表板ID是11199(NGINX by nginxinc)。
  3. 点击"Load",随后选择已配置好的数据源。
  4. 点击"Import"完成导入。

2024-11-16-3-NginxImport.jpg

Nginx监控效果

2024-11-16-4-NginxDashboard.jpg

svc节点:Nacos服务

无需 exporterNacos 提供了一个用于监控的内置端点,可以通过该端点获取 Nacos 的各种监控指标,并将其暴露给 Prometheus 进行采集和存储。 Nacos 本身是一个 SpringBoot 应用,通过内置的监控端点 /actuator/prometheus 可以获取 Nacos 的各种监控指标,包括服务注册与发现的状态、配置管理的信息、健康检查的结果等。

修改Prometheus配置

Prometheus 配置中增加对svc主机上 Nacos 运行状态的抓取配置。

  • [root@ops monitoring]# vi ./prometheus/conf/prometheus.yml
scrape_configs:
  - job_name: 'ops-nacos'
    metrics_path: '/nacos/actuator/prometheus'
    scrape_interval: 15s
    static_configs:
      - targets:
        - 192.168.44.168:8848

重启 Prometheus 容器。

[root@ops monitoring]# docker restart ops-prometheus

验证nacos指标端点

  • 浏览器验证metrics端点

浏览器访问http://192.168.44.168:8848/nacos/actuator/prometheus

  • Prometheus控制台验证nacos相关的指标

2024-11-16-5-NacosIndex.jpg

配置Grafana对主机状态的可视化

浏览器访问http://192.168.44.169:3000。

  • 配置数据源
  1. 点击左侧菜单中的"Add new connection"。
  2. 选择或搜索"Data Sources"。
  3. 点击"Add data source"并选择"Prometheus"。
  4. 在"HTTP"部分输入Prometheus地址,eg:http://192.168.44.169:9090
  5. 点击"Save & Test"确认连接成功。
  • 查看现成的仪表板

https://grafana.com/grafana/dashboards/这个页面是 Grafana 的官方仪表板目录,用户可以在这里找到和共享各种现成的 Grafana 仪表板。这些仪表板覆盖了多种监控需求,包括系统性能、应用监控、网络流量等。用户可以根据自己的需求搜索和导入适合的仪表板,提高监控效率和可视化效果。这里我们搜索 Nacos ,结果中有个 Nacos ,点击进去可以查看详细的UI效果,复制仪表板的id,此处是13221。

  • 导入现成的仪表板
  1. 在右侧菜单中点击"New"按钮,然后选择"Import"。
  2. 在输入框中,可以直接输入现成仪表板的ID,或者上传JSON文件。常用的主机监控仪表板ID是13221(Nacos)。
  3. 点击"Load",随后选择已配置好的数据源。
  4. 点击"Import"完成导入。

2024-11-16-6-NacosImport.jpg

Nacos监控效果

2024-11-16-7-NacosDashboard.jpg

小总结

If you can’t measure it, you can’t improve it!

没有度量就没有改进,实际上,监控系统有以下两个客户:技术,业务。上述内容即是对技术组件的监控,方便技术方面的改进与优化。
本文记录了在 Docker 环境下通过 PrometheusGrafana 实现对 NginxNacos 服务的监控。具体步骤包括在服务节点上使用 docker-compose 安装 nginx-prometheus-exporter ,配置 Prometheus 抓取 NginxNacos 的监控数据,并在 Grafana 中配置数据源和导入现成的监控仪表板,以实现对反向代理服务和注册中心服务的性能监控和可视化。

Reference


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

标签:exporter,之运维,Prometheus,Nacos,nginx,prometheus,监控,Grafana,仪表板
From: https://blog.csdn.net/u013810234/article/details/143811911

相关文章

  • Linux系统-redis集群、nacos、nginx、keepalived、mysql开机自启
    一、Redis集群开机自启:如三主三从交叉式redis集群,有两个方法,自行选择。方法一:第一步:分别在各节点添加以下redis.service文件命令:vim/lib/systemd/system/redis_6379.service添加:[Unit]Description=Redispersistentkey-valuedatabaseAfter=network.targetAfter=......
  • windows 设置nacos开机自启 并后台运行
    windows安装目录D:\nacos路径根据实际情况调整下面脚本路径在当前目录下创建nacos.bat@echooffechoStartingNacosat%DATE%%TIME%>>D:\nacos\nacos_startup.logD:CDD:\nacos\binstart""/bcmd/c"startup.cmd>D:\nacos\nacos_output.log2>&......
  • Grafana:监控PostgreSQL数据运维新利器
    在数据驱动的业务环境中,数据库的性能监控是确保数据流畅和系统稳定的关键。PostgreSQL,作为强大的开源关系型数据库,其性能监控尤为重要。Grafana,一个开源的数据可视化和监控平台,提供了一个直观的界面来监控和分析数据。本文将带您了解如何利用Grafana来监控PostgreSQL,让您的数据库......
  • 占用资源极低!这款轻量级 Nacos 性能炸裂!
    大家好,我是Java陈序员。在开发中,Nacos作为一款非常流行的微服务配置中心、注册中心,在构建微服务项目时往往会使用到它。但是对于个人开发者而言,云服务器资源有限,往往无法撑起Nacos服务的高内存使用!今天,给大家介绍一款轻量级的Nacos服务,功能平替,占用资源极低!关注微信公......
  • SpringBoot 整合 Nacos
    在项目开发过程中,我们经常使用Nacos 作为配置中心和注册中心。本文章我们就从代码层面研究下SpringBoot是如何整合Nacos使用的。Nacos安装启动一键傻瓜试安装即可,官网 写的很清楚这里不在赘述。这里以Window环境安装为例。下载下来,启动 Nacos 将模式改为单机模式。......
  • Prometheus + Grafana 监控平台搭建
    1、下载 prometheus和node_exporter:https://prometheus.io/download/  下载完后上传到服务器解压tar-zxvfprometheus-3.0.0-rc.1.linux-amd64.tar.gztar-zxvfnode_exporter-1.8.2.linux-amd64.tar.gz2、启动node_exporternohup./node_exporter--web.listen-......
  • Linux之运维命令
    查看日志1、系统今日小于warning级别的日志manjournalctl|grep-C2"debug"|journalctl-xenall--sincetoday-pwarning[-ojson|-ojson-pretty]2、系统启动日志、内核日志#启动journalctl-b[-0]#内核journalctl-k3、指定服务或进程最新日志#......
  • Docker使用docker-compose一键部署nacos、Mysql、redis
    下面是一个简单的例子,展示如何通过DockerCompose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和DockerCompose。1,准备好mysql、redis、nacos镜像sudodockerpullmysql:8&&sudodockerpullredis:7.2&&sudodockerpullnacos/nacos-server:v2.4.......
  • Grafana快速入门指南下篇
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.tables(表格)展示数据1.环境准备2.配置Query(查询)3.配置Transform(转换)4.添加Overrides(覆盖)属性5.配置多指......
  • Grafana如何利用Karpenter消除50%的云资源浪费?|落地案例
    原文链接:https://grafana.com/blog/2023/11/09/how-grafana-labs-switched-to-karpenter-to-reduce-costs-and-complexities-in-amazon-eks/编译:cloudpilot.aiGrafana团队在他们的官方博客中介绍了他们从采用ClusterAutoscaler转向Karpenter的历程,本文将介绍他们如何进......