最近需要一套监控工具监控多个环境的健康状况,看中prometheus的主要原因的它的丰富的exporter和大量的metrics,而且也支持多种告警触发方式,例如邮件,丁丁,微信,WEBAPI,所以打算尝试一下。
如下是网络结构图
组件介绍
Prometheus Server: 主要是用来收集各个exporter 采集上来的数据,所以在部署的时候,最好存储得够。
Node exporter: prometheus 官网提供很多exporter 用来采集各种指标,例如process-exporter 是用来收集进程指标,jvm-exporter是用来收集 java进程 jvm指标,这里我们介绍node-exporter,它是用来收集主机指标。如下是官网的exporter list,你可以找到你需要的exporter
Exporters and integrations | Prometheus
安装
安装prometheus server
可以有两种方式安装prometheus server:用docker 或者 用prometheus server的安装包
因为环境限制,我们如下只介绍使用安装包的安装方式
1. docker 安装
####下载最新的prometheus server image
$ docker pull prom/prometheus:latest
####启动docker
$docker run -d -p 9090:9090 -v prom/prometheus
2. 安装prometheus server安装包
登录prometheus server 主机后
####解压安装包
$tar –zxvf prometheus-2.13.0-rc.0.linux-amd64.tar.gz
$cd prometheus-2.13.0-rc.0.linux-amd64/
$nohup ./prometheus --web.enable-lifecycle --storage.tsdb.path=/prometheus/data/ &
--web.enable-lifecycle 这个参数可以支持在线刷新配置文件,如果在生产环境不能宕机的情况下,还是很好用的。例如当你更改了prometheus.yml,可以调用如下链接就可以刷新配置
$curl -XPOST http://prometheus_server_ip:port/-/reload
--storage.tsdb.path 这个参数可以指定数据存储位置,我设计的时候特地为/prometheus/data/规划了500G 的盘,用来存放数据
启动后,http://prometheus_server_ip:9090/graph如下就是prometheus的页面
标签解释:
Alerts: 如果安装了alertmanager, 所有的告警将会在alerts 页面展示
Graph: 可以实时监控某个metric
Status: 监控 prometheus server 和 exporter的状态
安装node exporter
登录node exporter 主机后
$cd node_exporter-0.18.1.linux-amd64/
$./node_exporter &
这样启动后,默认监听端口是9100,如果想改用其他端口,可以使用参数
--web.listen-address="ip:port"
例如如果想启动3000端口,就可在node exporter server上执行
$./node_exporter --web.listen-address=":3000" &
打开node exporter 的url http://node_exporter_ip:9100/metrics 你就可以看到如下信息
node exporter metrics
配置server和exporter的链接
上面步骤我们已经启动了prometheus server 和node exporter,下面我们配置一下他们的链接
登录prometheus server
$cd prometheus-2.13.0-rc.0.linux-amd64/
$vim prometheus.yml
edit prometheus.yml
- job_name: 'node'
static_configs:
- targets:['*******:9100'] ####这里填写node exporter ip
labels:
env: testing ####这里你可以自定义一个labels,用于区分不同的node
调用如下的链接refresh一下prometheus server
$curl -XPOST http://prometheus_server_ip:port/-/reload
然后登录prometheus 页面选择status 下面的targets
从页面上就能看到,我们刚才配置的node已经加添加成功了。这样就可以查看每台主机的性能情况
后面再介绍granfana,alertmanager 和其他exporter如何使用。