【监控】【Nginx】使用 Docker 部署 Prometheus + Grafana 监控 Nginx
在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Docker 部署 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲解每个环节,以确保你能够顺利完成整个过程。
准备工作
在开始之前,请确保你的系统上已安装 Docker 和 Docker Compose。这两个工具将帮助我们轻松创建和管理容器化的应用环境。
步骤 1:创建项目目录
首先,我们需要创建一个新的目录来存放所有配置文件。这有助于保持项目的结构清晰。
mkdir nginx-monitoring
cd nginx-monitoring
步骤 2:创建 Prometheus 配置文件
接下来,创建一个名为 prometheus.yml 的文件,这是 Prometheus 的配置文件,定义了监控的目标和抓取间隔。
global:scrape_interval: 15s # 设置全局抓取间隔为15秒scrape_configs:- job_name: 'nginx' # 监控任务的名称static_configs:- targets: ['nginx:80'] # 指定 Nginx 服务的名称和端口
解释
global:定义全局配置,如抓取间隔。scrape_configs:配置要监控的服务,这里我们将 Nginx 的指标作为目标。
步骤 3:创建 Docker Compose 文件
然后,创建一个 docker-compose.yml 文件,定义我们需要的服务,包括 Nginx、Prometheus 和 Grafana。
version: '3.7' # Docker Compose 文件版本services:nginx:image: nginx:latest # 使用最新的 Nginx 镜像ports:- "8080:80" # 将宿主机的8080端口映射到容器的80端口volumes:- ./nginx.conf:/etc/nginx/nginx.conf # 自定义 Nginx 配置文件prometheus:image: prom/prometheus # 使用 Prometheus 镜像ports:- "9090:9090" # 将宿主机的9090端口映射到容器的9090端口volumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml # 挂载 Prometheus 配置文件command:- '--config.file=/etc/prometheus/prometheus.yml' # 指定配置文件位置grafana:image: grafana/grafana # 使用 Grafana 镜像ports:- "3000:3000" # 将宿主机的3000端口映射到容器的3000端口
解释
services:定义我们要运行的服务。image:指定要使用的 Docker 镜像。ports:配置端口映射,使得我们可以从宿主机访问容器中的服务。volumes:挂载配置文件到容器,以便于管理。
步骤 4:创建 Nginx 配置文件
在项目目录中创建一个 nginx.conf 文件,以设置 Nginx 的指标导出。
worker_processes 1; # 设置工作进程数events { worker_connections 1024; # 最大连接数
}http {server {listen 80; # Nginx 监听80端口location / {root /usr/share/nginx/html; # 静态文件根目录index index.html index.htm; # 默认首页}location /metrics {stub_status on; # 启用 stub_status 模块以导出指标}}
}
解释
worker_processes和events:基本的 Nginx 配置。location /metrics:指定一个路径用于导出 Nginx 的指标。
步骤 5:启动 Docker 容器
在项目目录中运行以下命令以启动服务:
docker-compose up -d # 后台运行 Docker 容器
解释
-d选项使得容器在后台运行,便于继续在终端中执行其他命令。
步骤 6:访问 Grafana 和 Prometheus
服务启动后,我们可以访问 Grafana 和 Prometheus。
- Grafana:在浏览器中访问
http://localhost:3000。默认的用户名和密码都是admin/admin,首次登录时系统会提示你更改密码。 - Prometheus:在浏览器中访问
http://localhost:9090,可以查看抓取的指标。
步骤 7:配置 Grafana 数据源
- 登录到 Grafana。
- 点击左侧菜单中的“设置”图标,然后选择“数据源”。
- 点击“添加数据源”按钮,选择 Prometheus。
- 在 URL 字段中输入
http://prometheus:9090(这是 Docker 内部网络中使用的服务名称)。 - 点击“保存并测试”以确认连接成功。
解释
这一步骤确保 Grafana 可以正确连接到 Prometheus,获取监控数据。
步骤 8:创建仪表板
- 点击左侧菜单中的“仪表板”图标,然后选择“新建仪表板”。
- 点击“添加图表”,选择数据源为刚刚添加的 Prometheus。
- 在查询框中输入指标,例如
nginx_http_requests_total来查看总请求数。 - 自定义图表样式,保存仪表板。
解释
通过创建仪表板,你可以可视化 Nginx 的性能数据,帮助你更好地理解服务的运行状态。
结论
通过 Docker 部署 Prometheus 和 Grafana,你可以方便地监控 Nginx。这一解决方案不仅简单易用,还能根据需要灵活扩展。希望这篇博客对你有所帮助,助你成功构建一个强大的监控系统!
相关文章:
【监控】【Nginx】使用 Docker 部署 Prometheus + Grafana 监控 Nginx
在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Docker 部署 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲解每个环节,以确保你能够顺利完成整个过程。 准备工作 在开始之前,请确保你的…...
Vue3 + Vite Web项目 Electron 打包桌面应用程序
在根目录下创建 electron 文件夹 创建 electron/main.js 文件: // 导入模块 const { app, BrowserWindow ,Menu } require(electron) const path require(path)// 创建主窗口 const createWindow () > {const mainWindow new BrowserWindow({width: 1440…...
Linux:login shell和non-login shell以及其配置文件
相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 shell是Linux与外界交互的程序,登录shell有两种方式,login shell与non-login shell,它们的区别是读取的配置文件不同,本…...
面试速通宝典——1
1. 内存有哪几种类型? 内存分为五个区,堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量&#…...
用uniapp 及socket.io做一个简单聊天 升级 9
比这之前优化了以下功能 上线通知 群聊里适时显示在线人数 约请好友 通过好友通过socket 相应端自动变化 PC端可以拉取摄象头拍照 PC端可以录音发送 拉起摄象头发送录象 <template><view class""><scroll-view scroll-y"true" class&…...
【Unity Shader】Special Effects(九)Vortex 旋涡(UI)
源码:[点我获取源码] 索引 Vortex 旋涡思路分析旋涡中心旋涡旋转旋涡强度旋涡动画Vortex 旋涡 旋涡效果可以将一张图像以指定点作为旋涡中心,呈顺时针旋涡动画效果,使用动画播放器: 思路分析 首先,旋涡特效的核心也即是旋转(特别是uv坐标的旋转); 在此基础上,旋涡中…...
01_两数之和
一、题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…...
ChatGLM-6B-部署与使用
✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 什么是ChatGLM-6B 一、简介 ChatGLM-6B 是由清华大学知识工程实验室(KEG&…...
李宏毅结构化学习 03
文章目录 一、Sequence Labeling 问题概述二、Hidden Markov Model(HMM)三、Conditional Random Field(CRF)四、Structured Perceptron/SVM五、Towards Deep Learning 一、Sequence Labeling 问题概述 二、Hidden Markov Model(HMM) 上图 training data 中的黑色字为xÿ…...
java重点学习-总结
十五 总结 https://kdocs.cn/l/crbMWc8xEZda (总结全部的精华) 1.面试准备 企业筛选简历规则简历编写注意事项(亮点)项目怎么找,学习到什么程度面试过程(表达结构、什么样的心态去找工作) 2.redis 缓存相关(缓存击穿、穿透、雪崩、缓存过期淘…...
文件操作
文件的由来:在程序中,之前每一个程序都是需要运行然后输入数据,当程序结束时输入的数据也随之消散,为了下一次运行时不再输入数据就有文件的由来,使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据…...
docker存储
docker分层结构 如图所示,容器是由最上面可读可写的容器层,以及若干个只读镜像层组成,创建容器时,容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制: 1、容器中新生成的数据会直接存放在容器层…...
Ubuntu20.04.6 环境下docker设置proxy
问题背景: 在进行dokcer pull操作的时候,会失败且出现如下提示Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting h…...
如何给文件夹里面的文件批量添加前缀和编号(利用C#写的小工具)
运行结果 将上面的文件编号效果 下载过后启动这个程序即可(这个程序灵感来源是上次给美术资源分类和编号的时候给我干吐了,所以写了这个工具) 体验链接:laozhupeiqia/批处理 --- laozhupeiqia/批处理 (github.com) 如果对你有帮助…...
使用分布式调度框架时需要考虑的问题——详解
引言 随着企业系统的规模不断扩大,特别是在分布式计算和云计算环境下,如何协调多个节点或服务执行任务成为一个关键问题。分布式调度框架在这种背景下应运而生,它可以调度成千上万的任务,在多个节点上分配、执行和监控任务&#…...
C语言编译四大阶段
目录 一、引言 二、预处理阶段 三、编译阶段 四、汇编阶段 五、链接阶段 六、总结 本文将详细介绍C语言编译的四个阶段,包括预处理、编译、汇编和链接。通过学习这些阶段,读者可以更好地理解C语言程序的编译过程,提高编程效率。 一、引…...
C# 关于“您与该网站的连接不是私密连接...”的问题
目录 问题现象 范例运行环境 WebService 类 类介绍 增加参数 实现 小结 问题现象 最近在访问开发的微信支付功能时遇到了无法访问令牌的错误,这个错误是公司内部应用程序接口返回的访问错误。经过排查是访问 HTTPS 站点遇到的错误,提示证书风险…...
【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集
主要内容如下: 1、Visdrone2019数据集介绍 2、下载、制作YOLO格式训练集 3、模型训练及预测 4、Onnxruntime推理 运行环境:Python3.8(要求>3.8),torch1.12.0cu113(要求>1.8),…...
VUE项目在Linux子系统部署
1、导读 环境:Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 vue 背景:换系统需要重新安装,避免后期忘记,此处记录一下啊 事件:20240922 说明:使用node启动,非nginx&…...
开源 | 如何在产品上扩展大储存?合宙LuatOS外挂SPI Flash库轻松搞定
我们都知道芯片的储存都是寸土寸金的,当你的产品需要存储照片、音频、文档等资源的时候,有没有眉头一紧?内部不够只能外扩,但是外扩要编写各种驱动,还有Flash替换,这都要消耗头发啊! 但&#x…...
DevOps 实践与自动化运维:从手动到智能
DevOps 实践与自动化运维:从手动到智能 前言 作为一个在数据深渊里捞了十几年 Bug 的女码农,我深知 DevOps 在现代软件开发中的重要性。DevOps 不仅能缩短开发周期,提高软件质量,还能增强系统的可靠性和可维护性。今天,…...
如何用Hearthstone-Script解放炉石传说玩家双手?开源自动化工具全解析
如何用Hearthstone-Script解放炉石传说玩家双手?开源自动化工具全解析 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 你是否也曾为炉石传说…...
可重构(Reconfigurable)智能超表面天线设计——1【PIN管选型】
此系列为可重构智能超表面设计过程中的步骤及注意事项,是笔者在设计了一款可重构透射阵列天线之后总结得到的经验教训。希望可以帮到刚接触该领域的同学们。 1、PIN二级管通断原理(简要) 在超表面上加载PIN二极管,本质是通过调节…...
文档格式高效破解:NCMDump实现加密文件自由掌控全指南
文档格式高效破解:NCMDump实现加密文件自由掌控全指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字化办公时代,你是否曾因收到的加密文档无法跨平台打开而错失重要信息?是否经历过花费数…...
华大HC32F460串口DMA接收与超时中断的实战配置
1. 华大HC32F460串口DMA接收与超时中断的核心价值 在嵌入式开发中,串口通信是最基础也最常用的功能之一。传统串口接收方案通常有两种:一种是每个字节都触发中断,另一种是DMA接收配合定时器断帧。第一种方案会频繁打断主程序执行,…...
ZYNQ实战指南(二) FPGA IO口驱动HDMI显示技术解析
1. HDMI显示技术基础与ZYNQ方案优势 HDMI作为现代高清显示设备的通用接口,其核心功能是传输未经压缩的视频和音频数据。传统方案通常需要专用HDMI芯片完成信号转换,但我在多个项目中发现,利用ZYNQ芯片的PL(可编程逻辑)…...
BERT文本分割模型5分钟快速部署:零基础搭建智能分段工具
BERT文本分割模型5分钟快速部署:零基础搭建智能分段工具 1. 引言:告别文字“墙”,让长文本秒变清晰段落 你有没有过这样的经历?辛辛苦苦听完一场两小时的线上会议,语音转文字工具生成了一份上万字的逐字稿。你满怀期…...
2026.4.3要闻
百度首页 哈哈哈分享万岁 最大、首艘!中国“超级装备”密集上新 正观新闻 2026-04-03 07:52正观新闻官方账号 关注 近日,国内高端装备制造领域迎来密集突破,多款具有里程碑意义的新产品相继首发、试航或“上岸”。一系列“超级装备”的亮相,彰显了我国自主研发与制造…...
探索基于BKA - Transformer - LSTM的数据回归预测
基于BKA-Transformer-LSTM的数据回归预测 模型结合Transformer的全局注意力机制和LSTM的短期记忆及序列处理能力 首先,采用Transformer自注意力机制捕捉数据的全局依赖性,并输出一个经过全局上下文编码的表示;然后,采用2024年最新…...
