Prometheus(go语言开发)是一套开源的监控&报警&时间序列数 据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动 了prometheus的发展。
官网地址:https://prometheus.io/docs/introduction/overview/
下面给出一张关于Prometheus 的原理架构图
图中主要组件及工作流程介绍:
系统监控对于任何一个庞大的应用来说都是必不可少的,设想类似淘宝这样的大型电商系统,支撑起正常高效运转的背后是众多的服务器组成的集群,设想如果在双11期间,某一台服务器发生了故障,没有及时的监控到故障,带来的损失将是不可估量的;
在《SRE: Google运维解密》一书中指出,监控系统需要能够有效的支持白盒监控和黑盒监控。通过白盒能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化。而黑盒监控,常见的如HTTP探针,TCP探针等,可以在系统或者服务在发生故障时能够快速通知相关的人员进行处理。通过建立完善的监控体系,从而达到以下目的:
下面来演示如何基于centos7快速搭建起Promethus的环境
1、环境准备
2、Node1上传prometheus-2.26.0 安装包
上传并解压prometheus 安装包
tar -zxvf prometheus....
mv prometheus-2.26.0.linux-amd64 prometheus2.26
3、启动prometheus服务
默认情况下,不需要做任何的配置和修改,直接使用下面的命令启动即可
./prometheus --config.file=prometheus.yml &
启动成功后,prometheus 默认暴露的服务访问端口为 9090 ,可以使用下面的命令检查prometheus服务状态 ,
ss -antlp | grep 9090
外部的web端可以访问prometheus 的界面,需要开启9090端口 ,然后浏览器直接访问:http://IP:9090/
默认情况不做任何的配置,Promethus会对本机进行监控,可以点击 上面的那个地址,将会跳转到下面的界面,这是一堆大家很难看懂的信息,其实这就是Promethus监控到的本机服务器相关参数信息,
比如可以拿到其中某个参数信息到主页面的搜索框进行查询,这也是Promethus经常操作的地方
上面的步骤中,我们在Node1机器上快速搭建起了Promethus的环境,设想需要监控另一台服务器Node2的状况,该怎么做呢?下面演示下这个配置步骤,这也是一个非常常用的场景
1、node2节点上传 node_exporter安装包
tar -zxvf node_exporter......
mv node_exporter-0.16.0.linux-amd64 node_exporter
2、启动node_exporter 服务
nohup ./node_exporter &
3、检查服务状态
node_exporter 默认暴露9100端口,可以通过下面命令查看
4、Promethus 所在的node1节点做如下配置
修改 prometheus.yml 配置文件,找到下面的配置所在的位置,然后在后面添加新的配置
- job_name: 'remote_node'
static_configs:
- targets: ['Node2的IP地址:9100']
Promethus 配置监控服务格式比较固定,基本上都类似,重新加一个job_name,然后配置相关的服务、端口等,后续会陆续做说明
配置完毕后,需要杀掉之前的进程,然后重新执行之前的启动命令
pkill prometheus
./prometheus --config.file=prometheus.yml &
然后,我们再次访问之前的界面,这时候可以发现下面多了一个监控的对象,那个job=remote_node的不正是上面在prometheus.yml里面新增的一个嘛
本篇演示了如何基于centos7环境 快速安装promethus(普罗米修斯)的监控环境,后续如果需要接入其他被监控的服务就可以在此基础上继续进行了,本篇到此结束,最后感谢观看!