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

news2024/9/24 7:20:02

实战-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-storage

docker 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: linux
    static_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.coloradmin.cn/o/1364993.html

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

相关文章

【Flutter 开发实战】Dart 基础篇:从了解背景开始

想要学会用 Flutter 开发 App&#xff0c;就不可避免的要学习另一门很有意思的编程语言 —— Dart。很多小伙伴可能在学习 Flutter 之前可能都没听说过这门编程语言&#xff0c;我也是一样&#xff0c;还以为 Dart 是为了 Flutter 而诞生的&#xff1b;然而&#xff0c;当我们去…

网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea 【企业公司宣传网站(HTML静态网页项目实战)附源码】

网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea 【企业公司宣传网站&#xff08;HTML静态网页项目实战&#xff09;附源码】 https://www.bilibili.com/video/BV1Hp4y1o7RY/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

分布式系统架构设计之分布式消息队列基础知识

随着微服务、大数据和云计算的普及&#xff0c;分布式系统已经成为现代软件架构的核心。在分布式系统中&#xff0c;各个组件间的通信和数据交换尤其重要&#xff0c;而消息队列正是实现这一目标的关键技术之一。 在分布式架构设计过程中&#xff0c;架构师们需要对消息队列有…

爬虫瑞数4案例:网上房地产

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、瑞数简介 瑞数动态安全 Botgate&#xff08;机器人防火墙&#xff09;以“动态安全”技术为核心&#xff0c;通过动态封装…

深度解析基于模糊数学的C均值聚类算法

深度解析基于模糊数学的C均值聚类算法 模糊C均值聚类 (FCM)聚类步骤&#xff1a;FCM Python代码&#xff1a; 模糊C均值聚类 (FCM) 在数据挖掘和聚类分析领域&#xff0c;C均值聚类是一种广泛应用的方法。模糊C均值聚类&#xff08;FCM&#xff09;是C均值聚类的自然升级版。相…

创建Vue3项目

介绍 使用命令创建vue3项目 示例 第一步&#xff1a;执行创建项目命令 npm create vuelatest第二步&#xff1a;填写输入项 第三步&#xff1a;进入study-front-vue3文件夹 cd study-front-vue3第四步&#xff1a;执行npm命令安装依赖 npm install第五步&#xff1a;运行…

Vue中Vuex的环境搭建和原理分析及使用

Vuex的环境搭建 Vuex是Vue实现集中式数据管理的Vue的一个插件&#xff0c;集中式可以理解为一个老师给多个学生讲课。 Vue2.0版本的安装&#xff1a; npm i vuex3 使用Vuex需要在store中的index.js引入Vuex和main.js中引入store,目的是让vm和vc都能看到$store。实现多个组件…

2024--Django平台开发-Django知识点(三)

day03 django知识点 项目相关路由相关 urls.py视图相关 views.py模版相关 templates资源相关 static/media 1.项目相关 新项目 开发时&#xff0c;可能遇到使用其他的版本。虚拟环境 老项目 打开项目虚拟环境 1.1 关于新项目 1.系统解释器命令行【学习】 C:/python38- p…

大模型LLM训练的数据集

引言 2021年以来&#xff0c;大预言模型的开发和生产使用呈现出爆炸式增长。除了李开复、王慧文、王小川等“退休”再创业的互联网老兵&#xff0c;在阿里巴巴、腾讯、快手等互联网大厂的中高层也大胆辞职&#xff0c;加入这波创业浪潮。 通用大模型初创企业MiniMax完成了新一…

目标检测-One Stage-YOLOv4

文章目录 前言一、目标检测网络组成二、BoF&#xff08;Bag of Freebies&#xff09;1. 数据增强2.语义分布偏差问题3.损失函数IoUGIoUDIoUCIoU 三、BoS(Bag of Specials)增强感受野注意力机制特征融合激活函数后处理 四、YOLO v4的网络结构和创新点1.缓解过拟合&#xff08;Bo…

基础数据结构

1. 单链表 #include<iostream>using namespace std; const int N 1e5 10;int n; // 分别存储当前节点的值&#xff0c;当前节点下一个节点的值&#xff0c;头结点&#xff0c;id号 int value[N], nepoint[N], head, idx;void init(){head -1;idx 0;}// 1.H 将某个x插…

Docker学习与应用(三)-Docker镜像理解

1、Docker镜像讲解 1&#xff09;镜像是什么 镜像是一种轻量级、可执行的独立软件包&#xff0c;用来打包软件运行环境和基于运行环境开发的软件&#xff0c;他包含运行某个软件所需的所有内容&#xff0c;包括代码、运行时库、环境变量和配置文件。 所有的应用&#xff0c;…

在 PyCharm 中高效使用 GitHub Copilot

对于每一个developer来说&#xff0c;工具和插件对于提高开发效率至关重要。GitHub Copilot&#xff0c;作为一款先进的人工智能编程助手&#xff0c;能够在编写代码时提供实时建议和自动补全功能。结合 PyCharm 这一强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c…

web期末个人引导页透明版

效果图 代码 css代码 * {box-sizing: border-box; }body {color: #2b2c48;font-family: "Jost", sans-serif;background-image: url(../img/bg.jpg);background-repeat: no-repeat;background-size: cover;background-position: center;background-attachment: fix…

Windows系统任务栏应用图标显示成空白的解决方案

背景 任务栏应用图标为空白&#xff1a; 原因 Windows系统为了加快系统响应速度&#xff0c;在安装完应用第一次显示完应用图标后&#xff0c;会将应用的图标放入缓存中&#xff0c;以后每次显示应用直接在缓存中获取&#xff0c;如果缓存中的图标信息发生错误&#xff0c;…

OpenCV | 光流估计

光流估计 光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”&#xff0c;根据各个像素点的速度的速度矢量特征&#xff0c;可以对图像进行动态分析&#xff0c;例如目标跟踪 高度恒定&#xff1a;同一点随着时间的变化&#xff0c;其亮度不会发生改变。小运动&…

Maven之属性管理

1.属性管理 1.1 属性配置与使用 ①&#xff1a;定义属性 <!--定义自定义属性--> <properties><spring.version>5.2.10.RELEASE</spring.version> </properties>②&#xff1a;引用属性 <dependency><groupId>org.springframewor…

王力机器人安全门|用细节开拓高端精致家居生活

细微之处见风范,毫厘之优定乾坤。在追求高端品质的道路上,细节往往是最有力的诠释。如在入户门的选择方面,考虑到老人、孩子、宠物等每一位家庭成员不同需求的设计、科技运用才称得上是充满人性化、品质化的高端细节,幸福感直抵心灵。在该方面,王力机器人安全门做出了表率,每一…

快速实现产品智能:用 AI 武装你的 API | 开源日报 No.138

openchatai/OpenCopilot Stars: 3.8k License: MIT OpenCopilot 是一个允许你拥有自己产品的 AI 副驾驶员的项目。它集成了产品底层 API&#xff0c;并可以在需要时执行 API 调用。它使用 LLMs 来确定用户请求是否需要调用 API 端点&#xff0c;然后决定调用哪个端点并根据给定…

2024.1.3力扣每日一题——从链表中移除节点

2024.1.3 题目来源我的题解方法一 递归方法二 栈方法三 反转链表方法四 单调栈头插法 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2487 我的题解 方法一 递归 当前节点对其右侧节点是否删除无影响&#xff0c;因此可以对其右侧节点进行递归移除。 若当前节点为空&am…