当前位置: 首页 > news >正文

使用 docker 搭建 granfana+prometheus 监控平台监控测试服务器资源

互联网发展的今天,人们对互联网产品的用户体验要求也越来越高,企业为了能提供更优质的用户体验,就会绞尽脑汁想尽各种办法。而对于服务器的资源监控,搭建一个资源监控平台,就是一个很好的维护优质服务的保障平台。利用监控平台,监控服务器资源的使用情况,实时查看用户在使用企业产品服务时,基础支撑能力情况,发现监控异常,能够第一时间做出相应的调整决策,从而保障提供用户优质体验。

今天,就给大家讲解一种基于目前企业普遍使用的技术,快速搭建一个非常前沿、高大上的监控平台:docker + grafana + prometheus

 

docker

docker相信大家都已经在用了,因为现在大多企业中都在用。使用它来搭建环境,相比传统方式,速度要快非常非常多,同时,服务运行起来后,对资源的消耗也少很多,而且还能方便对各种服务进行定向扩容。而它的安装也非常的简单,准备一台linux机器,如centos7,只需要执行两个命令,就可以安装成功。

注意: 下面没有特别说明,默认linux机器防火墙是关闭的;linux机器与被测服务器网络是通的。

# centos7 安装docker 
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2#安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# 设置开机启动
systemctl enable docker

prometheus

Prometheus是一套开源的监控+预警+时间序列数据库的组合,现在越来越多的公司或组织开始采用Prometheus,现在常见的kubernetes容器管理系统,也会搭配Prometheus来进行监控。

Prometheus本身不具备收集监控数据功能,需要使用http接口来获取不同的export收集的数据,存储到时序数据库中。

使用docker方式安装Prometheus非常的简单

# 下载Prometheus镜像
docker pull prom/prometheus# 创建Prometheus容器
docker run -itd --name=docker_prometheus --restart=always -p 9090:9090 prom/prometheus

容器创建成功后,即可通过浏览器访问 http://prometheus机器ip:9090 查看

 

grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据库查询后可视化的展示,并及时通知。官方提供了非常多的可视化模板,根据不同的数据源,选择不同的插件或模板即可。

使用docker安装,也是非常非常简单

# 下载镜像
docker pull grafana/grafana# 创建容器
docker run -itd --name=grafana \--restart=always \-p 3000:3000 \-v $PWD/grafana-storage:/var/lib/grafana \grafana/grafana

容器创建成功后,即可通过浏览器访问 http://grafana机器ip:3000,默认账号密码都是:admin

 

node_export

node_export是Prometheus的一个export,主要是用来收集服务器硬件资源使用情况的。所以这个往往会部署再被监控的服务器上。即:grafana、Prometheus会独立部署在一台机器上,node_export则被部署在被监控的服务器上,收集被监控的服务器资源数据,给Prometheus,然后再通过grafana展示出来。

node_export部署在被监控的服务器上,可以根据服务器的实际情况,选择直接安装,还是用docker安装。

  • 服务器上直接安装node_export 首先,用浏览器访问:https://github.com/prometheus/node_exporter/releases 这里能获得node_export所有的发布版本,可以根据自己服务器的实际情况,选择要下载的包 下载包后,上传到被监控的服务器上,解压 进入解压文件夹,直接启动./node_exporter
  • 服务器上用docker安装node_export
# 下载镜像
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

node-exporter部署启动好了后,在服务器的防火墙上开放9100端口,则可以通过浏览器访问 http://服务器ip:9100/metrics 查看监控收集的数据。

 

配置Prometheus+node_exporter

prometheus本身没有数据收集功能,需要用node_exporter收集,他们俩之间如何连接在一起呢?这就要修改Prometheus的配置文件,这个文件在Prometheus容器的 /etc/prometheus/prometheus.yml

# 从Prometheus容器中拷贝配置文件到宿主机
docker cp docker_prometheus:/etc/prometheus/prometheus.yml $PWD

修改prometheus.yml文件

vim prometheus.ymlscrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['被监控的服务器ip:9100']labels:instance: localhost

注意 :yml文件的编辑,注意格式;想添加多个监控服务器时,可以在中括号中,用逗号分隔写多个

# 把修改后的Prometheus配置文件拷贝到容器中
docker cp $PWD/prometheus.yml docker_prometheus:/etc/prometheus/prometheus.yml

重启Prometheus容器

docker restart docker_prometheus

配置Grafana+Prometheus

现在,万事俱备,只欠东风了,只需要配置grafana+prometheus就能看到监控结果了。

用浏览器访问 http://grafana机器ip:3000 登录用户密码:admin

登录后,在首页,选择 "Add your first data source"

 

选择 Prometheus,填写相关信息

 

点击back按钮,回到首页

再点击 import

 

 

输入12884,点击 load

再页面底部,Prometheus数据库下拉框中,选择自己添加的数据源的名称,点击 import按钮,所有工作就都完成。

 

http://www.lryc.cn/news/138119.html

相关文章:

  • 一、MQ的基本概念
  • Android面试题:MVC、MVP、MVVM
  • vue js 回调函数 异步处理 为什么要 let that = this
  • 前端面试:【算法与数据结构】常见数据结构解析
  • RTSP/Onvif视频服务器EasyNVR安防视频云服务平台出现崩溃并重启的情况解决方案
  • 软考高级系统架构设计师系列论文九十四:论计算机网络的安全性设计
  • jenkins Linux如何修改jenkins 默认的工作空间workspace
  • Mysql报错 mysqladmin flush-hosts
  • javaee idea创建maven项目,使用el和jstl
  • 同一个服务器发布两个前端(网站)
  • 部署常用指南
  • 4.5 TCP优化
  • pdf太大怎么压缩大小?这样压缩文件很简单
  • 【IMX6ULL驱动开发学习】09.Linux之I2C框架简介和驱动程序模板
  • 【seaweedfs】3、f4: Facebook’s Warm BLOB Storage System 分布式对象存储的冷热数据
  • 基于亚马逊云科技服务,构建大语言模型问答知识库
  • SpingMVC拦截器-用户登录权限控制分析
  • MDTA模块(Restormer)
  • C++ 新特性 | C++ 11 | decltype 关键字
  • 2023国赛数学建模思路 - 案例:退火算法
  • ubuntu20.04 编译安装运行emqx
  • ARM linux ALSA 音频驱动开发方法
  • 设计模式二十三:模板方法模式(Template Method Pattern)
  • [Linux]进程状态
  • Python爬虫逆向实战案例(五)——YRX竞赛题第五题
  • js识别图片中的文字插件 tesseract.js
  • Linux设备驱动移植(设备数)
  • 【移动端开发】鸿蒙系统开发入门:代码示例与详解
  • Jenkins的流水线详解
  • DIFFEDIT-图像编辑论文解读