介绍
Prometheus是一个开源的系统监控和报警系统,监控功能很完善和全面,性能也足够支持上万台规模的集群。它是基于Go语言开发的一套开源的系统监控报警框架和时序列数据库(TSDB)。
容器监控的实现对比虚拟机或者物理机来说有比较大的区别,比如容器在k8s环境中可以任意横向扩容与缩容,那么就需要监控服务能够自动对新创建的容器进行监控,当容器删除后又能及时的从监控服务中删除,而传统的zabbix的监控方式需要在每一个容器中安装并启动zabbix agent,并且在容器自动发现注册及模板关联方面并没有比较好的实现方式。
搭建
搭建环境
首先搭建三台CentOS7.9虚拟机

虚拟机角色规划
|----------|----------------|-----------|-------------------|
| 主机名 | IP | 配置 | 角色 |
| hadoop64 | 192.168.193.64 | 2C+2G+20G | Prometheus server |
| hadoop65 | 192.168.193.65 | 1C+1G+20G | node-exporter |
| hadoop66 | 192.168.193.66 | 1C+1G+20G | node-exporter |
虚拟机配置端口映射
由于此处用的是虚拟机进行实验,可以配置虚拟机端口映射,方便在宿主机浏览器上进行效果
点击虚拟机左上角编辑 -虚拟网络编辑器

点击NAT模式 下的NAT设置

点击添加

如下图所示,添加两个端口映射3000 和9090


添加hosts
三台机器均编辑 /etc/hosts 文件,添加如下内容保存

修改host
三台机器均按照下图所示修改host名称



配置网络
三台机器都按照图下所示配置网络


各个主机之间可以ping通

yum源搭建
三台机器均搭建好yum源(此处使用阿里云yum源.repo文件)

关闭防火墙
为方便实验,三台机器均关闭防火墙

创建安装目录
三台机器均创建好**/opt/software** 和 /opt/module 目录

上传安装资源包
资源包下载地址:CentOS7.9安装prometheus资源包资源-CSDN下载
将图下4个文件都传到hadoop64主机 /opt/software 目录下
只需要将node_exporter-install.tar.gz 文件上传到 hadoop65 、hadoop66 主机 /opt/software 目录下

服务安装
安装prometheus
解压文件

然后进入 prometheus-install 文件夹内,直接执行 install.sh 脚本即可

安装完成

查看 prometheus-server 服务,已经启动

此时可以在宿主机 浏览器输入192.168.193.64:9090 可以进入到prometheus的网页

点击图下所示Targets

进入图下所示界面代表服务正常运行

安装node-exporter
三台主机均按照下方指示进行操作,进入 /opt/software/node_exporter-install

执行脚本 install.sh

查询到三台机器的 node-exporter 服务均在正常运行

配置监控
在 hadoop64 这台机器上 /opt/module/prometheus-2.37.9 目录下编辑 prometheus.yml文件

原有文件

修改为(注意:node-exporter主机的目标端口号是9100,不是9090)

重新加载配置文件
curl -X POST http://hadoop64:9090/-/reload

查看 192.168.193.64:9090可以看到被监控的主机情况

安装grafana
hadoop64 主机进入**/opt/software/grafana-install** 目录,执行 install.sh脚本

安装完成

启动服务
systemctl enable --now grafana-server.service

查看服务状态

访问grafana网页
浏览器输入 192.168.193.64:3000 用户名和密码都是admin

要求修改密码,可以选择skip跳过

配置grafana
按照路径点击

点击第一项Prometheus

按照图中所示编写,其他不用管

点击save & test后提示绿色即可

按照下图所示点击

导入模板,资源里面的 16098_rev5.json文件

按照下图所示点击Import

效果展示
最终呈现效果如下图所示

注:本文仅供学习使用,实际生产环境建议做好测试。