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
dockerVersion: 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这个模板:

image-20240107094810601

点击+号-import

输入12884,再点击右边的load

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

观察:

完美。

6、设置grafna为匿名登录

背景

经常会有这样一种场景,在办公室或是监控中心能够有一块屏幕来监控和展示一些软件、硬件的详细信息,比如运维比较关心的CPU/内存/硬盘的指标或者系统软件的运行信息等。当我们用grafana来展示时,发现每次都需要手动登录并切换到标签页,才能看到详细信息,而我们希望系统操作系统只要一开机后就能自动切换到我们的屏幕上,方便实现自动化。

当然,我是想给自己ecs配置这个prometheus监控功能,装b哈哈。

实现原理

创建一个免密登录用户,使用大屏归属于此用户上,使用grafana的免密登录加大屏的链接分享实现。即直接访问一个固定链接(无论是否登录)都能够看到此页面。

image-20240107095635622

实现过程

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 1211 2021 grafana.ini
-rw-r--r-- 1 root root 43461 17 10:16 grafana.ini.bak
-rw-r--r-- 1 root root   550 17 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。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

https://onedayxyy.cn/

🍀 语雀

https://www.yuque.com/xyy-onlyone

🍀 csdn

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

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

🍀 个人博客站点

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)]

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

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

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

相关文章

FastDFS安装与测试

目录 目标 版本 环境 官方文档 相关概念 安装FastDFS 启动FastDFS 关闭FastDFS 重启FastDFS 用命令测试上传文件 用命令测试下载文件 用命令测试删除文件 用HTTP的方式访问FastDFS中的文件 用HTTP的方式访问FastDFS中的文件整体流程 目标 在Linux服务器上搭建单…

Visual Studio C#创建windows服务程序

选择一个windows服务程序创建 命名一个项目名称双击Service1.cs文件&#xff0c;然后鼠标右键添加安装程序接下来&#xff0c;我们对服务做一些简单的配置&#xff0c;配置Account为LocalSystem&#xff0c;否则启动服务时需要输入账户和密码设置启动服务名称我们可以在OnSt…

机器视觉技能培养:桥接学院与工业界的鸿沟

在当前的教育体系中&#xff0c;大学生往往缺乏直接参与机器视觉工作的机会。本文将探讨机器视觉学习的重要性&#xff0c;分析技术指导和实践项目的必要性。并提出一个全面的机器视觉学习路线图。 机器视觉及其在现代工业中的应用 机器视觉是指利用计算机视觉技术对图像进行自…

MySql常用函数之 convert()、str_to_date()、date_format()、to_base64()、from_base64()等使用介绍

一、convert() 1、将日期字符串转换为 date 类型 select convert(2024-01-06, date) from dual; 输出&#xff1a; 2024-01-06 2、将日期字符串转换为 datetime 类型 select convert(2024-01-06, datetime) from dual; 输出&#xff1a; 2024-01-06 00:00:00 3、将日期转换…

解决Docker报错问题:Docker Desktop – Unexpected WSL error

最近因为准备在NAS上通过Docker容器方式安装MYSQL&#xff0c;发现https://hub.docker.com网站被墙了&#xff0c;无法自动安装&#xff0c;同时又找不到靠谱的离线镜像&#xff0c;所以准备在Window上安装Docker&#xff0c;通过电脑的网络代理制作离线镜像再上传到NAS上。 在…

【温故而知新】JavaScript数据结构详解

一、概念 JavaScript是一种弱类型的编程语言&#xff0c;它提供了一些内置的数据结构来存储和组织数据。 在计算机科学中&#xff0c;数据结构是一种特定的方式来组织和存储数据&#xff0c;以便于有效地访问和修改数据。在JavaScript中&#xff0c;数据结构是指相互之间存在…

PTA——分支结构练习02 用if-else语句判断上课周和放假

本题需要用if-else语句判断上课周和放假&#xff1a;输入1-12范围的数字表示月份&#xff08;month&#xff09;&#xff0c;若输入的月份是9-12和1时&#xff0c;输出“本学年上学期”&#xff1b;若输入的月份为2时&#xff0c;则输出“寒假&#xff01;”&#xff1b;若输入…

【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器

目录 一. 贡献概述 二. 方法详解 a) 训练阶段 b) 推理生成阶段&#xff1a; 三. 综合结果 四. 注意力可视化 五. 选择性主题驱动图像生成 六. 人体图像生成 七. 可推广到视频生成模型 八. 论文 九. 个人思考 稳定扩散&#xff08;Stable Diffusion&#xff09;模型可…

python豆瓣实例,抓取多页数据-应用到知识点:随时数,xpath,间隔请求sleep

源代码: <!DOCTYPE html> <html lang="zh-CN" class="ua-windows ua-webkit"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="renderer" content=&q…

Calibre PEX Hspice Netlist提取步骤(数模芯片提取spice netlist流程)

在数模混合芯片中&#xff0c;通常模拟需要数字模块通过calibre工具来提取Hspice netlist用于功耗仿真。注意这里的spice netlist和做Calibre的spice netlist是不太一样的。 另外在做calibre pex时需要确保当前的design LVS已经pass。否则功耗仿真可能会不准。 Calibre LVS常…

八. 实战:CUDA-BEVFusion部署分析-spconv原理

目录 前言0. 简述1. 举例分析spconv的计算流程2. 导出带有spconv网络的onnx需要考虑的事情总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第八章——实战&a…

【数据库原理】(13)视图的使用

文章目录 一.定义和删除视图1.建立视图2.删除视图 二.查询视图视图查询的基本操作视图查询的内部机制查询转换的注意事项视图查询的限制 三.更新视图1.插入视图数据2.删除视图数据3.修改视图数据可更新性的限制 视图&#xff08;View&#xff09; 是一种虚拟的表&#xff0c;它…

Next.js 第一次接触

因为需要整个漂亮的在线文档&#xff0c;所以接触了next.js&#xff0c;因为对前端js本身不够熟悉&#xff0c;别说对react.js 又不会&#xff0c;时间又不允许深入研究&#xff0c;所以&#xff0c;为了加一个导航菜单&#xff0c;极其痛苦。 有点小bug&#xff0c;不过不影响…

学习笔记:C++之 switch语句

Switch语句 作用&#xff1a;执行多条件分支语句 语法&#xff1a; switch&#xff08;表达式&#xff09;{ case 结果1&#xff1a;执行语句&#xff1b;break&#xff1b; case 结果2&#xff1a;执行语句&#xff1b;break&#xff1b; ... default&#xff1a;执行语句&a…

Golang leetcode142 环形链表 暴力map 快慢指针法

文章目录 环形链表 leetcode142暴力遍历 map哈希记录快慢指针法 环形链表 leetcode142 该题目要求找到入环的第一个节点 我们可以通过map进行记录&#xff0c;没到新的节点查询是否经过原有节点 入环节点&#xff0c;上两个节点的next相同 若有入环节点&#xff0c;则一定能检…

如何用python实现一个简单的单向链表?

实现一个简单的单向链表涉及两个基本的构建块&#xff1a;节点&#xff08;Node&#xff09;和链表&#xff08;LinkedList&#xff09;。下面是详细步骤和解释&#xff1a; 1. 实现节点&#xff08;Node&#xff09; 链表中的每个节点通常包含两部分&#xff1a;存储的数据&…

Flutter 图片和资源的高效使用指南

文章目录 指定资源什么是 [pubspec.yaml](https://dart.cn/tools/pub/pubspec) 文件 图片图片常用的配置属性加载本地图片通过 pubspec.yml 文件进行配置图片目录使用 Image.asset 小部件加载本地图片 加载网络图片通过 Image.network小部件加载网络图片&#xff1a;使用Image.…

LeCode:(606. 根据二叉树创建字符串)

题目链接 本体的难点&#xff1a; 什么时候去打印左右括号&#xff1f;什么时候省略&#xff1f; 解题过程&#xff1a;通过观察看到&#xff0c;每次遍历结点之前&#xff0c;打印了一个左括号&#xff1b;遍历到叶子&#xff0c;叶子的左右也要打印出括号来&#xff08;先…

linux虚拟机环境快速搭建redis5.x版本的主从集群总结

原创/朱季谦 我在阿里云服务器上曾参与过公司redis集群的搭建&#xff0c;但时间久了&#xff0c;都快忘记当时的搭建过程了&#xff0c;故而决定在虚拟机centOS 7的环境&#xff0c;自行搭建一套redis5.x版本的集群&#xff0c;该版本集群的搭建比较方便&#xff0c;不用再像…

实现电子邮件自动化的实用技巧与指南

如何实现电子邮件自动化&#xff1f;一般可以通过规则和过滤器、自动回复、定时发送、快捷键和模板、团队邮箱等方法来实现。 一、什么是电子邮件自动化 电子邮件自动化是一种根据特定条件在适当时机发送正确信息的过程。这些条件可以是时间表、触发器或在您的电子邮件自动化工…