Prometheus
都是基于客户端角度
拉就是server 定期从客户端拉取数据---------响应不及时
推就是 客户端主动推送数据给server—响应及时,但是很多推送导致server压力大
server收集数据,存储和查询,发送警报
pushgateway:server 无法直接监控的 应用程序 或者无法安装客户端。 可以发送给pushgateway, pushgateway将结果发送给server
job exporter 就相当于zabbix 代理一样,监控哪个主机,就在哪个主机上安装node exporter。将数据导出到server。
该server上就有对应主机的度量值了。
监控不同的场景需要不同的导出器,监控mysq的就是mysql exporter
发现目标就是 比如k8s 可以通过k8s的api动态的监控k8s的信息,k8s很多都是基于动态化的。因此需要自动发现自动监控实现。 当然还有文件自动发现。dns自动发现。
prometheus数据模型
内存的数据刷到预定日志中,预定日志一定时间后刷到磁盘中
根据度量名称可以看出需要度量什么内容 metric_name
两个下划线是普罗米修斯内部使用的度量的 尽量不要使用。
指标
累计增加。
适合有增有减的情况 比如cpu使用率
指标
比如mysql的group by
二进制方式搭建
很多公司使用prometheus就是为了监控k8s资源的
查看系统版本
查看内核版本
查看k8s版本
内核需要升级到4.0.0以上 不然会有小bug
下面是我的实验环境
prometheus | 192.168.56.104 node4 |
---|---|
k8s master | 192.168.56.101 node1 |
k8s node | 192.168.56.102 node2 |
k8s node | 192.168.56.103 node3 |
搭建k8s集群
k8s内核
官网的download可以下载对应的最新的版本 prometheus,alertmanager,node_exporter,
此处是服务的方式启动prometheus
提前下载好软件
prometheus server上操作:
开始部署
创建一个用户–启动prometheus server
系统用户 不能登陆
控制台目录
install命令:把文件拷贝后设置并属性
- D 目录下所有文件
-t 目标位置
意思就是吧prometheus…/* 目录下的文件全部拷贝到/usr/…/consoles这个目录下,并设置权限为0644
其实就是吧对应的文件都放在对应的目录下
控制台和控制台库目录。prometools检查工具,prometheus启动的命令行放到/usr/bin下
内容稍后解释 配置文件
服务文件
容器的方式安装prometheus
首先安装docker。使用阿里云景象仓库安装docker
112主机使用容器方式安装
可以默认使用docker景象直接对应到9090端口运行,但是实际需要数据卷挂载防止数据丢失。
下面的方式是直接将文件添加到镜像中,直接启动镜像即可。
比较麻烦的是如果需要更改配置文件还需要重新打新的docker镜像包
开始运行
注意 要提前在/tmp/下创建这个yml文件,不然报错
拷贝刚才111主机的那个文件过来
启动后开一个新的窗口查看是否开启
所以可以创建的时候-d在后台运行
网页也可以访问。