【监控】【Nginx】使用 Prometheus + Grafana 监控 Nginx

目录

  • 一、什么是 Prometheus 和 Grafana?
  • 二 、准备工作
  • 步骤 1:安装 Prometheus
    • 1. 下载并解压 Prometheus
    • 2. 编辑 Prometheus 配置(prometheus.yml)
    • 3. 启动 Prometheus
  • 步骤 2:安装 Grafana
    • 1. 安装 Grafana
    • 2. 启动 Grafana
    • 3. 访问 Grafana
  • 步骤 3:检查 Nginx 配置与资源瓶颈
    • 1. 检查配置
    • 2. 查看 CPU 和内存使用情况
    • 3. 调整 Nginx 配置
    • 4. 重启 Nginx
  • 步骤 4:在 Grafana 中配置数据源
    • 1. 添加数据源
    • 2. 创建仪表板
  • 结论

在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Prometheus 和 Grafana 监控 Nginx,并包含配置、运行和可视化的详细步骤。

一、什么是 Prometheus 和 Grafana?

  • Prometheus:一个开源的监控系统和时间序列数据库,具有强大的数据收集和查询能力。它通过 HTTP 爬虫从目标系统抓取指标数据。
  • Grafana:一个开源的分析和监控平台,支持多种数据源(包括 Prometheus),可以通过丰富的图表和仪表板展示数据。

二 、准备工作

确保已安装 Nginx,Prometheus 和 Grafana。下面的步骤将指导你完成配置和监控的全过程。

步骤 1:安装 Prometheus

首先,我们需要安装 Prometheus。

1. 下载并解压 Prometheus

在终端中执行以下命令:

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar -xvf prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64

2. 编辑 Prometheus 配置(prometheus.yml)

打开 prometheus.yml 文件,添加 Nginx 的监控配置:

scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['localhost:8080']  # 确保 Nginx 指标暴露在此端口

3. 启动 Prometheus

在 Prometheus 目录中,使用以下命令启动:

./prometheus --config.file=prometheus.yml

步骤 2:安装 Grafana

接下来,我们安装 Grafana 来可视化监控数据。

1. 安装 Grafana

使用以下命令安装 Grafana:

sudo apt-get install -y grafana

2. 启动 Grafana

启动 Grafana 服务:

sudo systemctl start grafana-server

3. 访问 Grafana

在浏览器中输入 http://localhost:3000,默认用户名和密码为 admin/admin。第一次登录后,系统会提示你更改密码。

步骤 3:检查 Nginx 配置与资源瓶颈

在开始监控之前,我们需要确保 Nginx 的配置正确,并查看系统的资源使用情况。

1. 检查配置

使用以下命令检查 Nginx 配置是否正确:

nginx -t

2. 查看 CPU 和内存使用情况

可以使用 top 命令来实时监控系统资源:

top

3. 调整 Nginx 配置

如果需要,可以在 nginx.conf 文件中调整以下配置,以优化性能:

worker_processes auto;  # 自动根据 CPU 核心数设置
worker_connections 1024; # 每个 worker 允许的最大连接数

4. 重启 Nginx

重启 Nginx 以应用配置更改:

sudo systemctl restart nginx

步骤 4:在 Grafana 中配置数据源

现在我们可以将 Prometheus 添加为数据源到 Grafana。

1. 添加数据源

  1. 登录到 Grafana。
  2. 点击左侧菜单中的“设置”图标,然后选择“数据源”。
  3. 点击“添加数据源”按钮。
  4. 选择 Prometheus。
  5. 在 URL 字段中输入 http://localhost:9090(默认情况下,Prometheus 运行在 9090 端口)。
  6. 点击“保存并测试”以确认连接成功。

2. 创建仪表板

  1. 点击左侧菜单中的“仪表板”图标,然后选择“新建仪表板”。
  2. 点击“添加图表”,然后选择“数据源”为刚刚添加的 Prometheus。
  3. 在查询框中输入指标,例如 nginx_http_requests_total 来查看总请求数。
  4. 自定义图表样式,保存仪表板。

结论

通过以上步骤,你可以成功地使用 Prometheus 和 Grafana 监控 Nginx。这种监控解决方案不仅可以帮助你及时发现性能瓶颈,还能为应用程序的可用性提供保障。随着需求的变化,可以进一步扩展监控范围,涵盖更多的指标和服务。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字病理图像处理:分割、合成与数据增强研究|顶刊精析·24-09-20

小罗碎碎念 今日精析:Medical Image Analysis 这篇文章介绍了一种结合了先进分割模型和生成对抗网络的病理切片图像分析流程,用于提高癌症诊断的准确性和效率。 作者角色姓名单位名称(中文)第一作者Muhammad Jehanzaib博阿齐奇大学…

【高效且应用广泛的排序 —— 快速排序算法】

高效且应用广泛的排序 —— 快速排序算法 快速排序是一种常用的排序算法,主要采用分治的思想。以下是对快速排序算法的详细介绍及代码示例: 快速排序的基本思路是,每次将一个位置上的数据归位,使得该数左边的所有数据都比该数小…

构建高效企业客户管理系统:SpringBoot应用

1 绪论 1.1研究背景 随着网络不断的普及发展,企业客户管理系统依靠网络技术的支持得到了快速的发展,首先要从员工的实际需求出发,通过了解员工的需求开发出具有针对性的首页、个人中心、员工管理、客户信息管理、行业类型管理、项目信息管理、…

自动化测试概念篇

目录 一、自动化 1.自动化概念 1.1 回归测试 2. 自动化分类 2.1 接口自动化 2.2 UI自动化 3. 自动化测试金字塔 二、web自动化测试 1. 驱动 1.1 安装驱动管理 1.2 selenium库 三、selenium 1. 一个简单的web自动化示例 2. selenium驱动浏览器的工作原理 一、自动化…

【Linux系统编程】第二十二弹---操作系统核心概念:进程创建与终止机制详解

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程创建 1.1、fork函数重识 1.2、fork函数返回值 1.3、写时拷贝 1.4、fork常规用法 1.5、fork调用失败的原因 2、进程…

图像压缩编码(4)--H.26x系列视频压缩编码_2

目录 H.261 视频编码标准 H.261的编码与解码 1) 帧内/帧间编码 2)运动补偿 3)量化 4)环路滤波器 5)缓存器 压缩数据的分层 数据复用结构 H.264的编码与解码 H.261 视频编码标准 实际应用时,要求有…

【C++】list详解及模拟实现

目录 1. list介绍 2. list使用 2.1 修改相关 2.2 遍历 2.3 构造 2.4 迭代器 2.5 容量相关 2.6 元素访问 2.7 操作相关 3. 模拟实现 3.1 节点类 3.1.1 初始结构 3.1.2 节点的构造函数 3.2 迭代器类 3.2.1 初始结构 3.2.2 迭代器 3.2.3 迭代器-- 3.2.4 解引…

基于VUE的医院抗生素使用审核流程信息化管理系统

开发背景 随着医疗行业的快速发展和信息技术的不断进步,医院内部管理系统的信息化建设变得尤为重要。抗生素作为治疗感染性疾病的重要药物,在临床使用过程中需要严格控制以避免滥用导致的耐药性问题。传统的抗生素使用审核流程往往依赖于人工审核&#x…

第十一章 从0-1搭建一个简单的JavaWeb系统(三)

目录 一、工程代码结构 二、代码实现 三、运行效果 四、未完待续 本章节的每一段代码,建议全部自己敲一遍,加深印象,切勿直接复制黏贴。 一、工程代码结构 本章节实现注销(退出)功能,以下图片中标红的…

苹果CMS插件:优化蜘蛛访问内容,提升百度收录率

确保蜘蛛抓取原始内容 专为苹果CMS设计的广告管理插件,能够智能识别搜索引擎蜘蛛与普通访客,确保蜘蛛访问时展示原始内容,从而提升被百度等搜索引擎收录的几率。 广告显示提升收益 对于普通访客,该插件则优先显示广告内容&#…

【网络】高级IO——select版本TCP服务器

目录 前言 一,select函数 1.1.参数一:nfds 1.2.参数二: readfds, writefds, exceptfds 1.2.1.fd_set类型和相关操作宏 1.2.2.readfds, writefds, exceptfds 1.2.3.怎么理解 readfds, writefds, exceptfds是输入输出型参数 1.3.参数三…

面试速通宝典——1

1. 内存有哪几种类型? ‌‌‌‌  内存分为五个区,堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量&#…

2024-1.2.12-Android-Studio配置

本地博客: https://k1t0111.github.io/ K1T0 最近在做一些app方向的移动技术开发学习,但是由于AS的配置问题,市面上找不到最新的2024版本的AS的相关配置。笔者也是踩了很多坑,因此想写一篇文章记录一下最新的AS 2024 1.2.12的对应java环境的一…

springboot框架VUE3学院网站系统开发mysql数据库设计java编程计算机网页源码maven项目

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

python 识别省市、区县并组建三级信息数据库

一、网址: 全国行政区划信息查询平台 二、分析并搭建框架 检查网页源码: 检查网页源码可以发现: 所有省级信息全部在javaScript下的json中,会在页面加载时加载json数据,填充到页面的option中。 1、第一步&#xff1a…

探秘 Web Bluetooth API:连接蓝牙设备的新利器

引言 随着物联网技术的快速发展,蓝牙设备在日常生活中扮演着越来越重要的角色。而在 Web 开发领域,Web Bluetooth API 的出现为我们提供了一种全新的方式来连接和控制蓝牙设备。本文将深入探讨 Web Bluetooth API 的使用方法和原理,帮助开发…

浅显易懂的Git教程

Git概述 SVN与Git的对比 SVN(Subversion) 类型:集中式版本控制系统 工作流程: 从中央服务器下载最新版本到本地。在本地进行开发。提交更改回中央服务器。 优点: 简单易用,适合小型团队。版本历史清…

vs2022快捷键异常不起作用解决办法

安装了新版本的vs2022,安装成功后,发现快捷键发生异常,之前常用的快捷键要么发生改变,要么无法使用,比如原来注释代码的快捷键是ctrlec,最新安装版本变成了ctrlkc,以前编译代码的快捷键是F6或者…

初始MYSQL数据库(6)—— 事务

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: MYSQL 目录 事务的概念 事务的ACID特性 使用事务 查看支持事务的存储引擎 事务的语法 保存点 自动/手动提交事务 事务的隔离性和…

Python模拟鼠标轨迹[Python]

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。 二.鼠标轨迹算法实…