2024.1.7-实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功)
实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功)

目录

最终效果


原文链接
https://onedayxyy.cn/docs/prometheus-grafana-ecs

参考模板
https://i4t.com/
https://grafana.frps.cn


- 🔰 额,注意哦:
他这个是通过frp来访问的哦!
哦,应该不是,估计是一个域名;
方案选型
方案1:prometheus和grafana都用docker部署在ecs
将grafana的访问链接放到网站的一个超链接 网站监控上。
次2个问题已闭环。
问题1:rometheus和grafana容器部署在ecs里,资源应该够吧?–应该够的。–经测试,可以的。
问题2:grafana可以支持用户公开访问不?–应该可以支持的,我看别人有用过的。–经测试,可以的。
方案2:将prometheus和grafana部署在本地,再通过frp方式来监控ecs
如果要使用本地服务器来提高prometheus+grafna服务,那么自己就需要学习下frp技术了。
本次方案
prometheus和grafana都用docker部署在ecs。
为什么选择docker部署呢,因为docker部署是在是太爽了。
测试环境
| 事项 | ||
|---|---|---|
| ecs ip(公网ip) | 47.100.215.163 | |
| ecs配置 | 2c CPU,2g内存,40G硬盘 | |
| 系统 | centos7.9 | |
| docker | Version: 19.03.9 | |
| 个容器镜像都是最新的(2024年1月7日测试) | prom/prometheus:latest grafana/grafana:latest prom/node-exporter:latest | |
| 自己网站 | 把公开链接集成到自己网站上 |
1、部署prometheus
docker pull prom/prometheus
docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus
查看:
[root@docusaurus-wiki ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4fcf1c8687df prom/prometheus "/bin/prometheus --c…" 5 seconds ago Up 3 seconds 0.0.0.0:9090->9090/tcp prometheus
容器创建成功后,即可通过http://47.100.215.163:9090来访问prometheus了:

2、部署grafna
#创建grafana数据目录
mkdir -p /opt/grafana-storage
chmod 777 -R /opt/grafana-storagedocker pull grafana/grafana
docker run -itd --name=grafana \
--restart=always \
-p 3000:3000 \
-v /opt/grafana-storage:/var/lib/grafana \
grafana/grafana
查看:
[root@docusaurus-wiki ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
70f677303f8b grafana/grafana "/run.sh" 8 seconds ago Up 5 seconds 0.0.0.0:3000->3000/tcp grafana
容器创建成功后,即可通过http://47.100.215.163:3000来访问prometheus了:
默认用户名和面都是admin,这里第一次登录需要强制修改默认密码,我们这里修改下初始密码


3、安装node_exporter
因为 Prometheus 本身不具备监控功能,所以想要通过 Prometheus 收集数据的话,需要安装对应的 exporter。
docker pull prom/node-exporter
docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
prom/node-exporter
查看:
[root@docusaurus-wiki ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbdf420ec57e prom/node-exporter "/bin/node_exporter" 3 seconds ago Up 2 seconds 0.0.0.0:9100->9100/tcp node-exporter
70f677303f8b grafana/grafana "/run.sh" 6 minutes ago Up 6 minutes 0.0.0.0:3000->3000/tcp grafana
4fcf1c8687df prom/prometheus "/bin/prometheus --c…" 12 minutes ago Up 12 minutes 0.0.0.0:9090->9090/tcp prometheus
[root@docusaurus-wiki ~]#
容器创建成功后,即可通过http://47.100.215.163:9100/metrics来查看监控收集的数据:


4.配置 Prometheus 监控 Node 节点
(1)修改Prometheus主配置文件
[root@docusaurus-wiki ~]# mkdir prometheus-grafana
[root@docusaurus-wiki ~]# cd prometheus-grafana/#在Prometheus配置文件按以下内容修改:
[root@docusaurus-wiki ~]# vim prometheus.yml
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['47.100.215.163:9100'] #被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)labels:instance: localhost
[root@docusaurus-wiki prometheus-grafana]# docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml
(2)重启prometheus容器
[root@docusaurus-wiki prometheus-grafana]# docker restart prometheus
5、grafna里配置prometheus源并导入模板
登录grafana界面:
http://47.100.215.163:3000/
按如下方式添加prometheus为grafana数据源:


这里填写prometheus访问地址:
http://47.100.215.163:9090

点击保存&test:

可以看到能正常连接到prometheus数据源:

- 接下来,我们导入grafna监控模板
Grafana 官方提供模板地址:https://grafana.com/grafana/dashboards/
本次使用12884这个模板:

点击+号-import:

输入12884,再点击右边的load:

选择perometheus为其数据源,在点击Import即可:

观察:

完美。
6、设置grafna为匿名登录
背景
经常会有这样一种场景,在办公室或是监控中心能够有一块屏幕来监控和展示一些软件、硬件的详细信息,比如运维比较关心的CPU/内存/硬盘的指标或者系统软件的运行信息等。当我们用grafana来展示时,发现每次都需要手动登录并切换到标签页,才能看到详细信息,而我们希望系统操作系统只要一开机后就能自动切换到我们的屏幕上,方便实现自动化。
当然,我是想给自己ecs配置这个prometheus监控功能,装b哈哈。
实现原理
创建一个免密登录用户,使用大屏归属于此用户上,使用grafana的免密登录加大屏的链接分享实现。即直接访问一个固定链接(无论是否登录)都能够看到此页面。

实现过程
1.创建免密用户
首先使用 admin 管理员账户登录 grafana,找到 orgs 用户组管理。

添加一个用户组 home(根据实际情况修改,我这里以家庭演示为例):

创建完会新增一个 home 用户组:

在 user 下边创建一个 home 用户:
(home密码先随便设置一个,后续会设置home组下的用户免密登录的)


创建完如下图所示:

这里要特别注意下:
我们来配置以下权限问题:
将组织切换到Main Org.下:


来到home用户下:

将home用户添加到home组织下:


将home用户从Main Org.组织下移除掉:


按上述同样方式,打算把admin用户从home组织里移除出去:(这个移除会报错哦)🤣(那就不移除了呗)


最终如下:



2. 授权免密登录
- 打开 grafana 的配置文件,在修改前备份:
[root@docusaurus-wiki prometheus-grafana]# docker cp grafana:/etc/grafana/grafana.ini grafana.ini
[root@docusaurus-wiki prometheus-grafana]# cp grafana.ini{,.bak}
[root@docusaurus-wiki prometheus-grafana]# ll
总用量 92
-rw-r--r-- 1 root root 43461 12月 11 2021 grafana.ini
-rw-r--r-- 1 root root 43461 1月 7 10:16 grafana.ini.bak
-rw-r--r-- 1 root root 550 1月 7 09:36 prometheus.yml
[root@docusaurus-wiki prometheus-grafana]#
- 打开配置文件:
vim grafana.ini
找到如图所示的配置:

将注释取消:
#表示开启匿名登录 enabled = true#修改为之前建立的 home 组织 org_name = home#角色为观看者 org_role = Viewer#隐藏版本 hide_version = true
[auth.anonymous]
# enable anonymous access
enabled = true# specify organization name that should be used for unauthenticated users
org_name = home# specify role for unauthenticated users
org_role = Viewer# mask the Grafana version number for unauthenticated users
hide_version = true

修改完后保存配置后重启:
[root@docusaurus-wiki prometheus-grafana]# docker cp grafana.ini grafana:/etc/grafana/grafana.ini
[root@docusaurus-wiki prometheus-grafana]# docker restart grafana
grafana
3.配置大屏
- 切换到 home 组织下:

- 在组织下根据自己的情况再建立一个数据源和和大屏:(和上述方式一样)


导入模板12884:


- 对大屏配置 “仅浏览权限”,点击右上角的齿轮:

确保 Viewer 权限为 view,然后保存。

- 回到大屏,点击分享图标:

将 shorten URL 打勾,最后拷贝生成的链接即可。
http://47.100.215.163/:3000/goto/BzsWB-KSz?orgId=2

4.测试
完美,符合预期:😘
http://47.100.215.163:3000/d/9CWBz0bik/ecsfu-wu-qi-jian-kong?orgId=2&from=1704551535181&to=1704594735181

另外,也能看到,次只有只读权限哦,nice。
7、给自己网站整上监控功能
nice😘


参考
https://blog.csdn.net/weixin_46902396/article/details/115294424 使用 Docker 部署 Prometheus + Grafana 监控平台
https://zhuanlan.zhihu.com/p/669096500 Grafana搭建免密登录大屏教程
https://help.aliyun.com/zh/arms/observable-visualization-grafana-edition/generate-links-to-share-grafana-dashboards 为Grafana大盘生成免登录查看的共享链接
感谢大佬们的文章哦。
待优化
问题:能不能用nginx来代理grafana登录链接呢
问题来了:
能不能用nginx来代理grafana登录链接呢,该如何处理?(后续再说把)
像如下大佬设置:
https://i4t.com/
https://grafana.frps.cn


奇怪,这个简短方式不支持,是哪里要配置解析吗?
http://47.100.215.163:3000/goto/rSAtf-KIk?orgId=2


FAQ
其它方案:ecs提供的周报
这个还可以哦。
性能数据:CPU平均使用率、最大使用率内存平均使用率、最大使用率公网带宽平均使用带宽、最大使用带宽云盘数据:磁盘读 IOPS平均磁盘读 IOPS最大磁盘写 IOPS平均磁盘写 IOPS最大

关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。

🍀 微信公众号
《云原生架构师实战》

🍀 个人博客站点
https://onedayxyy.cn/


🍀 语雀
https://www.yuque.com/xyy-onlyone

🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

🍀 知乎
https://www.zhihu.com/people/foryouone

最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!
🍀 个人博客站点
https://onedayxyy.cn/
[外链图片转存中…(img-agKrdppv-1704606055669)]
[外链图片转存中…(img-3QSBnnNc-1704606055669)]
🍀 语雀
https://www.yuque.com/xyy-onlyone
[外链图片转存中…(img-KekjcBQ2-1704606055670)]
🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421
[外链图片转存中…(img-lm1bAsP1-1704606055670)]
🍀 知乎
https://www.zhihu.com/people/foryouone
[外链图片转存中…(img-thrCWt7o-1704606055671)]
最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

相关文章:
2024.1.7-实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功)
实战-docker方式给自己网站部署prometheus监控ecs资源使用情况-2024.1.7(测试成功) 目录 最终效果 原文链接 https://onedayxyy.cn/docs/prometheus-grafana-ecs 参考模板 https://i4t.com/ https://grafana.frps.cn 🔰 额,注意哦: 他这个是通过frp来…...
20240107 SQL基础50题打卡
20240107 SQL基础50题打卡 1978. 上级经理已离职的公司员工 表: Employees ----------------------- | Column Name | Type | ----------------------- | employee_id | int | | name | varchar | | manager_id | int | | salary | int | -…...
阿里云公网带宽出网和入网是什么?上行和下行是什么?
什么是阿里云服务器ECS的入网带宽和出网带宽?以云服务器为中心,流入云服务器占用的带宽是入网带宽,流量从云服务器流出的带宽是出网带宽。阿里云服务器网aliyunfuwuqi.com分享入网带宽和出网带宽说明表: 带宽类别说明入网带宽&am…...
eureka工作原理是什么
EUREKA 是一个基于 RESTful 风格的服务发现系统,它主要用于帮助实现在微服务架构中的服务自动发现与注册。其工作原理主要包括以下几个步骤: 注册中心:EUREKA 中有一个集中的注册中心,所有的服务都将在此注册和发现。注册中心可以…...
Vue中的事件委托(事件代理)使用方法介绍
事件委托(事件代理) 将原本需要绑定在子元素上的事件监听器委托在父元素上,让父元素充当事件监听的职务。 事件委托是一种利用事件冒泡的特性,在父节点上响应事件,而不是在子节点上响应事件的技术。它能够改善性能&a…...
「HDLBits题解」Wire decl
本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接:Wire decl - HDLBits default_nettype none module top_module(input a,input b,input c,input d,output out,output out_n ); w…...
[MAUI]在.NET MAUI中调用拨号界面
在.NET MAUI中调用拨号界面 前置要求: Visual Studio 2022 安装包“.NET Multi-platform App UI 开发” 参考文档: 电话拨号程序 新建一个MAUI项目 在解决方案资源管理器窗口中找到Platforms/Android/AndroidManifest.xml在AndroidManifest.xml中添加下文中…块如下:<?xml…...
Kali/Debian Linux 安装Docker Engine
0x01 卸载旧版本 在安装Docker Engine之前,需要卸载已经安装的可能有冲突的软件包。一些维护者在他们的仓库提供的Docker包可能是非Docker官方发行版,须先卸载这些软件包,然后才能安装Docker官方正式发行的Docker Engine版本。 要卸载的软件…...
Spring 应用合并之路(二):峰回路转,柳暗花明 | 京东云技术团队
书接上文,前面在 [Spring 应用合并之路(一):摸石头过河]介绍了几种不成功的经验,下面继续折腾… 四、仓库合并,独立容器 在经历了上面的尝试,在同事为啥不搞两个独立的容器提醒下,…...
SQL Error 1366, SQLState HY000
SQL错误 1366 和 SQLState HY000 通常指的是 MySQL 与字符编码或数据截断有关的问题。当尝试将数据插入具有与正在插入的数据不兼容的字符集或排序规则的列时,或者正在插入的数据对于列来说过长时,就会出现此错误。 解决方式: 检查列长度&am…...
Codeforces Round 893 (Div. 2)(VP-7,寒假加训)
VP时间 A. 关键在于按c的按钮 c&1 Alice可以多按一次c按钮 也就是a多一个(a) 之后比较a,b大小即可 !(c&1) Alice Bob操作c按钮次数一样 1.ac B.贪心 一开始会吃饼干 如果有卖饼的就吃 如果隔离一段时间到d没吃就吃(当时…...
MySQL第四战:视图以及常见面试题(上)
目录 目录: 一.视图 1.介绍什么是视图 2.视图的语法 语法讲解 实例操作 二.MySQL面试题 1.SQL脚本 2.面试题实战 三.思维导图 目录: 随着数字化时代的飞速发展,数据库技术,特别是MySQL,已经成为IT领域中不可…...
C语言程序设计——程序流程控制方法(一)
C语言关系运算符 ---等于ab!不等于a!b<、>小于和大于a>b 、a<b<、>小于等于、大于等于a>b 、a<b!非!(0)、!(NULL) 在C99之后,C语言开始支持布尔类型,头文件是stdbool.h。在文中我所演示的所有代码均是C99版。 在C语言上上述关…...
torch.backends.cudnn.benchmark
torch.backends.cudnn.benchmark 的设置对于使用 PyTorch 进行深度学习训练的性能优化至关重要。具体而言,它与 NVIDIA 的 CuDNN(CUDA Deep Neural Network library)库有关,该库是在 GPU 上加速深度神经网络计算的核心组件。 启用…...
SQL Server从0到1——写shell
xp_cmdshell 查看能否使用xpcmd_shell; select count(*) from master.dbo.sysobjects where xtype x and name xp_cmdshell 直接使用xpcmd_shell执行命令: EXEC master.dbo.xp_cmdshell whoami 发现居然无法使用 查看是否存在xp_cmdshell: EXEC…...
计算圆弧的起始角度、终止角度和矩形信息并使用drawArc绘制圆弧
Qt中常用绘制圆弧的库函数: //函数原型 void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)Qt规定1约占16个像素,比如一个完整的圆等于360度,对应的像素角度就是 5760度(16 * 360)…...
C++ Trie树模版 及模版题 || Trie字符串统计
Trie树:用来高效的存储和查找字符串集合的数据结构。 维护一个字符串集合,支持两种操作: I x 向集合中插入一个字符串 x ; Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作,所有输入的字符串总长度不超过 1…...
Linux基础命令@echo、tail、重定向符
目录 echo概念语法作用演示一演示二 反引号作用 tail概念语法作用不带选项,演示一带选项 -num,演示二带选项 -f , 持续跟踪 重定向符概念作用覆盖重定向,>演示一演示二 追加重定向,>>演示一演示二 总结 echo …...
uniapp:签字版、绘画板 插件l-signature
官方网站:LimeUi - 多端uniapp组件库 使用步骤: 1、首先从插件市场将代码下载到项目 海报画板 - DCloud 插件市场 2、下载后,在项目中的uni_modules目录(uni_modules优点:不需要import引入,还可以快捷更新…...
Python Pillow(PIL)库的用法介绍
Python的Pillow库(PIL)是一个强大的图像处理库,可以用来进行图像的读取、编辑、处理和保存等操作。下面是一些Pillow库的基本用法介绍: 安装Pillow库: 在命令行中输入以下命令即可安装Pillow库: 复制代码 p…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
