学习资料
Prometheus(普罗米修斯)?
Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。(关于更多资料访问下面的文档)
学习目的
学这个的目的很纯粹就是想实现Locust/jmeter性能测试监控服务器指标用的。
安装(下面采用的二进制方式安装,docker还没学...)
-
https://prometheus.io/download/;Centos下载:prometheus-2.21.0-rc.0.linux-amd64.tar.gz
-
然后上传到:centos7服务器上
-
执行命令
tar -zxf prometheus-2.21.0-rc.0.linux-amd64.tar.gz
;cd 到prometheus-2.21.0-rc.0.linux-amd64.tar.gz 目录如下(data 目录是新建的) -
然后执行开放端口9090的命令
firewall-cmd --zone=public --add-port=9090/tcp --permanent
-
重启防火墙:
firewall-cmd --reload
-
执行
./prometheus
得到如下 -
访问:ip:9090端口,得到如下页面
Node Exporter采集数据
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
-
安装
curl -OL https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz tar -xzf node_exporter-0.15.2.linux-amd64.tar.gz
-
运行
cd node_exporter-0.15.2.linux-amd64/
./node_exporter
访问ip:9100
如下(如无法访问,请检查下是否开放该端口)
访问ip:9100/metrics
会初始化监控数据
-
关于监控指标
node_boot_time:系统启动时间
node_cpu:系统CPU使用量
node*disk**:磁盘IO
node*filesystem**:文件系统用量
node_load1:系统负载
node*memeory**:内存使用量
node*network**:网络带宽
node_time:当前系统时间
go_*:node exporter中go相关指标
process_*:node exporter自身进程相关运行指标
从Noe Expoter收集监控数据
让Prometheus Server能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。
-
prometheus.yml
并在scrape_configs
节点下添加以下内容- job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # 采集node exporter监控数据 - job_name: 'node' static_configs: - targets: ['localhost:9100']
-
后台运行Noe Expoter
# nohup后台运行该应用 nohup ./../node_exporter-0.15.2.linux-amd64/node_exporter
然后关闭这个连接linux窗口或者再打开一个新的
-
重启 Prometheus Server
./prometheus
使用PromQL查询监控数据
这里进行了忽略,有需要的朋友可以去学习资料进行学习
监控数据可视化 Grafana(这是个重点)
Prometheus UI提供了快速验证PromQL以及临时可视化支持的能力,而在大多数场景下引入监控系统通常还需要构建可以长期使用的监控数据可视化面板(Dashboard)。这时用户可以考虑使用第三方的可视化工具如Grafana,Grafana是一个开源的可视化平台,并且提供了对Prometheus的完整支持。
-
下载(采用清华大学镜像源下载,具体配置请留意下面url地址)
-
启动Grafana
systemctl start grafana-server
访问ip:3000
得到如下界面(默认用户名、密码都是admin)
首次使用admin、admin登录会让你设置密码,可以skip跳过
-
配置数据源,点击主页的
DATA SOURCES
-
选择
Prometheus
(点一哈就可以了) -
设置如下
-
新建dashboard(简单理解就是建一个监控图表任务)
-
任务设置如下
-
点击Save之后,查看具体
Dashboards
-
效果
-
-
使用开源的Dashboard
Grafana社区鼓励用户分享Dashboard通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard:
-
以https://grafana.com/grafana/dashboards/9276为例
-
下载json文件
-
导入json文件
-
最后的效果
-
-
我的疑问
这里导入json文件后,分组名称选node他就有数据出来,虽然也有部分没有,但是如果我分组选prometheus
就会出现一个数据都没有的情况,
这点我现在没弄明白,也是才开始接触这个尼,希望如果有人知道,指出来。
其他
后面在慢慢学习吧