“ 知其然,知其所以然,测者,用也!”
(图文无关,哈哈)
最近干(加)活(班)的时候,测试集控发现在锁屏开启或音视频直播的时候,不好观察应用进程的资源占用,还有整个PC的CPU和内存等占用的情况(主要有时候PC凉了也不知道是不是因为资源占用过高导致),想起之前有同事通过grafana 搭建的监控,比较直观的看到设备的资源信息,所以请教了下老(顺)铁(爷),动手耍了一波,开源(不要钱)的东西,简直是伸手党的福音,分享下搭建的过程。
01
—
部署前的准备
俗话说(也不知道谁说的),工欲善其事必先利其器,先了解下其原理、搭建的时候需要做哪些准备、用到那些工具等等~
首先看下主角
一、Prometheus架构(其实我也一知半解,心急的小伙伴可以跳到第二步):
Prometheus Server: 用于收集和存储时间序列数据,属于核心部分,负责实现对监控数据的获取,存储以及查询。可通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。
Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给 Prometheus server。当 Prometheus server 来 pull 时,直接返回实时状态的 metrics。
Push Gateway: 主要用于短期的 jobs。
Exporters: 用于暴露已有的第三服务的metrics给Prometheus,Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。
Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对方的接受方式,发出报警。
二、参与的角色:
Prometheus (普罗米修斯,收集监控数据并存储到本地的时序数据库)
Exporter(数据采集(提供metrics信息),安装在被监控的机器)
Grafana(可视化工具,把Prometheus数据经过二次加工展示)
三、它们的三角关系:
Exporter提供metrics信息 → Prometheus加工(PromQL) → Grafana进行二次加工和展示(封装PromQL,以图表的形式展示)
四、支持的部署监控环境及下载:
Prometheus:
支持Linux、Mac、Windows系统
官网下载地址:https://prometheus.io/
这里提供下我用的:
Linux :
https://drive.cvte.com/p/DZrE7KwQrgcYuZQH
或命令下载:
wget https://github.com/prometheus/prometheus/releases/download/v2.19.1/prometheus-2.19.1.windows-amd64.tar.gz
Mac:目前没用到,所以没下手(主要是因为qiong,第三声)
Window:
https://drive.cvte.com/p/Dd1e_gkQrgcYtpQH
Exporter :
官网下载地址:https://prometheus.io/
这里提供下我用的:
Windows :
https://drive.cvte.com/p/DUv5V1YQrgcYvZQH
Linux :
https://drive.cvte.com/p/Df_S-yQQrgcYu5QH
命令下载:
wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
Grafana :
官网下载地址:
https://grafana.com/grafana/download
自行选对应系统下载即可。
02
—
开始搭建
一、Prometheus
1. 下载对应系统的Prometheus 并解压
2.修改配置文件 prometheus.yml ,按照对应格式添加不同的节点,并填写需要监控的设备IP,然后保存
Linux:
Windows:
3. 启动Prometheus 程序
Windows 双击prometheus.exe 即可打开。
Linux : 解压目录下 ./prometheus
4. 启动成功以后我们可以通过Prometheus内置了web界面访问http://ip:9090,出现以下界面即表示配置成功。
二、Exporter
1. 下载对应系统的Exporter 并解压
2. 配置需要的信息,如进程或系统CPU/内存等
3.启动Exporter
Window设备 :通过bat 封装命令+参数的方式启动
举个栗子,如需要采集希沃管家所有进程的信息:
run.bat 内容
Linux 启动
进入对应的解压目录,执行命令;
nohup ./node_exporter >> output.log 2>&1 &
ps -ef |grep node_exporter # 检查是否启动
4. 启动后,通过Prometheus内置了web界面访问,http://ip:端口(window端口为9182),出现以下界面即表示配置成功。
三、Grafana的安装与配置
1. 下载对应系统的Grafana并运行
PS:window 和 linux 相差不大,就不重复重复赘述,拿Linux举例好了(打字很麻烦~)
1、安装Zabbix及图形样式插件
grafana-cli plugins install 软件包
软件包:
alexanderzobnin-zabbix-app
grafana-clock-panel
grafana-piechart-panel
3、运行grafana
systemctl start grafana-server
systemctl enable grafana-server
2.登录配置对应数据库
在web端输入http://IP:3000/ 登录(默认端口为3000,如无法打开,需开放端口,参考文章:
Iptables/Firewalld:https://blog.csdn.net/zbljz98/article/details/80464761)
配置数据库
新建或导入面板
设置面板配置Variables参数
配置完后保存,回到面板主页,配置展示的图标和对应表达式(此部分不详细说,了解详情可参考文档:https://yunlzheng.gitbook.io/prometheus-book/part-ii-prometheus-jin-jie/grafana/templating
四、最后
至此已经全部搭建完毕,目前只是满足简单的应用,有时间和需要再深入了解,仅总结了简单的搭建步骤,供有需要的小伙伴参考。上述若存在理解错误或描述不对的地方,希望及时指出。