prometheus入门
一、prometheus简介1.1 什么是prometheusprometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包 。从2012年开始,许多公司和组织开始使用Prometheus,该项目拥有非常活跃的开发人员和用户社区。目前它是一个独立的开源项目,并且不依赖与任何公司。为了强调这一点,并澄清项目的治理结构,Prometheus在2016年加入Cloud ...
一、prometheus简介
1.1 什么是prometheus
prometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包 。
从2012年开始,许多公司和组织开始使用Prometheus,该项目拥有非常活跃的开发人员和用户社区。
目前它是一个独立的开源项目,并且不依赖与任何公司。
为了强调这一点,并澄清项目的治理结构,Prometheus在2016年加入Cloud Native Computing Foundation,作为kubernetes之后的第二个托管项目。
1.2 主要特征
- 多维数据模型(时序列数据有metric和一组key/value组成)
- 在多维度上灵活的查询语言(PromQl)
- 不依赖分布式存储,单主节点工作.
- 可以通过pushgateway进行时序列数据推送(pushing)
- 可以通过服务发现或者静态配置去获取要采集的目标服务器
- 多种可视化图表及仪表盘支持
1.3 组件及架构
组件
prometheus生态系统由多个组件组成,其中许多组件是可选的。
- promethues server:主要获取和存储时间序列数据
- exporters:主要是作为agent收集数据发送到prometheus server,不同的数据收集由不同的exporters实现,如监控主机有node-exporters,mysql有MySQL server exporters。更多exporters
- pushgateway:允许短暂和批处理的jobs推送它们的数据到prometheus;由于这类工作的存在时间不够长,所以需要他们主动将数据推送到pushgateway,然后由pushgateway将数据发送的prometheus。
总结:类似于zabbix proxy - alertmanager:实现prometheus的告警功能。
架构
该图说明了Prometheus及其生态系统组件的一些架构
prometheus 直接或通过pushgateway抓取数据。将数据存储在本地,并对这些数据运行规则,以便从现有数据聚合和记录新时间序列,或者生成警报。grafana等可用于可视化数据。
二、安装server
2.1下载prometheus
下载最新版,然后解压它
# wget https://github.com/prometheus/prometheus/releases/download/v2.3.1/prometheus-2.3.1.linux-amd64.tar.gz
# tar xvfz prometheus-*.tar.gz
# cd prometheus-*
./prometheus --help
使用该命令查看帮助
2.2 配置prometheus
配置文件为prometheus.yml,删除注释后配置文件如下
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
该配置文件有三个模块:global、rule_files、scrape_configs
1. global:prometheus的全局配置,主要有两个属性
scrape_interval:控制多久一次收集目标数据
evaluation_interval:评估规则时间间隔
2. rule_files
指定加载规则的位置
3. scrape_configs
配置prometheus监视的数据。
默认的job prometheus监控着prometheus公开的数据,数据是通过url:http://localhost:9090/metrics 来抓取的。
返回的时间序列数据说明了prometheus server的状态信息。
2.3 运行prometheus
./prometheus --config.file=prometheus.yml
通过 http://ip:9090访问,现在页面上可以看到prometheus server的数据
可以通过http://ip:9090/metrics验证prometheus server是否提供自身数据
三、安装exporters
node exporter与prometheus server安装在同一台主机上
3.1 下载exporter
以node exporter为例,下载最新的node exporter
# wgethttps://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz
# tar xvfz node_exporter-*.tar.gz
# cd node_exporter-*
node exporter用户收集各种基于主机的度量。默认情况下,收集CPU、内存、磁盘等
3.2 启动 exporter
./node_exporter
Node Exporter的metrics使用主机的9100端口和/metrics路径。在本实例中的路径为:http://localhost:9100/metrics
3.3 配置监控
配置prometheus以监控主机
在prometheus server的配置文件prometheus.yml中增加如下job代码
- job_name: node
static_configs:
- targets: ['localhost:9100'] # 替换为监控主机的ip地址或域名
重启prometheus server
使用浏览器访问http://ip:9090,在界面的execute旁边的下拉列表中,可以看到node_开头的度量指标,这些就是node_exporter收集的数据。
一个有用的指标是up
指标。该up
度量标准可用于跟踪目标的状态。如果该度量标准具有值,1
则目标的scrape成功,如果0
失败。这可以帮助您指示目标的状态。
更多推荐
所有评论(0)