prometheus的使用
之前写《openGauss学习心得》时,已经安装prometheus,现在聊一下学习使用prometheus过程。
1.Prometheus要监控各节点,就必须要安装node_exporter。进入/soft目录,执行wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz 下载 软件到 /soft 目录下。进入目录cd /opt/modules/prometheus,在其目录下建立mkdir plugin,把软件解压到plugin目录下:tar -zxf /soft/node_exporter-1.0.1.linux-amd64.tar.gz -C ./plugin/ 进入目录cd plugin,解压的目录名称太长,需要修改名称:mv node_exporter-1.0.1.linux-amd64 node_exporter,还要把node_exporter目录分发到需要监控的节点: scp -r /opt/modules/prometheus/plugin/node_exporter kafka1.wuyi.com: /opt/modules/
2.分发完成后,各节点进入想对应的node_exporter目录,执行下面命令./node_exporter
但是现在prometheus还是不能监控各节点,需要修改prometheus.yml配置文件。如下:
global:
scrape_interval: 15s #将分片间隔设置为每15秒。默认值为每1分钟一次。
evaluation_interval: 15s #每15秒评估一次规则。默认值为每1分钟一次。分片超时设置为全局默认值(10秒)。
#加载规则一次,并根据全局“评估间隔”定期评估规则。
rule_files:
- "rules/*.yml"
scrape_configs:
#作业名称作为标签`job=<job_name>`添加到此配置中的任何时间序列。
- job_name: 'prometheus'
static_configs:
- targets: ['spark1.wuyi.com:9090']
- job_name: "node"
static_configs:
- targets: ["spark1.wuyi.com:9100"]
- targets: ["kafka1.wuyi.com:9100"]
修改后保存退出,执行./prometheus --web.enable-lifecycle --web.enable-admin-api &,特别注意:--web.enable-lifecycle 作用:后期修改参数文件时不需要重启服务,可以通过api重新读取参数文件。
3.使用浏览器打开spark1.wuyi.com:9090,执行count(node_cpu_seconds_total{mode="system"})by(instance)和node_cpu_seconds_total{mode='idle'}[5m:1m] 命令如图所示:
Prometheus自带web console,安装成功后访问http://spark1.wuyi.com:9090/graph 页面,使用PromQL查询,根据查询结果自动做数据可视,例如:查询各节点使用每5分钟内使用情况:(1-avg(irate(node_cpu_seconds_total{mode='idle'}[5m]))by(instance))*100获取查询结果自动做数据可视化,如图所示:
PromQL和SQL的对比,使用查询条件时,PromQL使用{}做条件查询的符号。对于分钟时间,PromQL使用[5m]表示5分钟内,平均每秒的数据。[5m:1m]表示5分钟内,平均每1分钟的数据。模糊查询时,PromQL为“2xx”,SQL为“%2%”。当查询当前所有数据时,mysql查询数据时需要将当前时间向前推一定间隔。但是PromQL会自动实现这个逻辑。通过对比,在使用查询方面,PromQL比SQL简单和丰富,而且还提高查询性能。
- 点赞
- 收藏
- 关注作者
评论(0)