prometheus笔记

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介:

1.为什么要监控

维护业务可持续运行
能够实时的查看系统的运行状况

2.prometheus是什么

Prometheus受启发于Google的Brogmon监控系统
普罗米修斯是一个最初在SoundCloud上构建的监控系统;自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区;
为强调开源及独立维护,prometheus于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

官方网站:
https://prometheus.io/

prometheus server: 收集指标和存储时间序列数据,并提供查询接口;
clientLibrary: 客户端库
push gateway: 短期存储指标数据,主要用于临时性的任务
exporters: 采集已有的第三方服务监控指标并暴露metrics
alertmanager: 告警
web ui: 简单的web控制台

白盒监控:通过白盒能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化;
黑盒监控:常见的如HTTP探针、TCP探针等,可以在系统或者服务发生故障时能够快速通知相关的人员进行处理;

kubernetes容器探针:
1.TCP探针:对指定端口上的容器的IP地址进行TCP监控,如果端口打开,则诊断认为是成功的;
2.http探针:对指定的端口和路径上的容器ip地址执行http get请求,根据返回的状态码进行诊断;

prometheus:
示例:可以抓取的目标称为实例(instances)
作业:具有相同目标的实例集合称为作业(job)

3.基本部署

由于prometheus是由go语言开发的,所以安装之前需要安装go环境
下载地址
https://studygolang.com/dl/golang/go1.15.3.linux-amd64.tar.gz

上传到服务器上,解压并配置环境变量

[root@proxy1 ~]# tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local/
# vim /etc/profile
# 在最后添加
export PATH=$PATH:/usr/local/go/bin

# source
source /etc/profile

二进制包安装prometheus

https://github.com/prometheus/prometheus/releases/download/v2.13.0/prometheus-2.13.0.darwin-amd64.tar.gz

解压到/usr/local目录下
[root@proxy1 ~]# tar -zxvf prometheus-2.13.0.darwin-amd64.tar.gz -C /usr/local/

4.配置

prometheus作为一个时间序列数据库,其采集的数据会以文件的形式存储在本地,默认的存储路径为安装目录: data/,因此我们需要先手动创建该目录

[root@proxy1 ~]# mkdir /usr/local/prometheus-2.13.0.darwin-amd64/data

也可以通过参数--storage.tsdb.path="data/" 修改本地数据存储的路径

启动prometheus服务器,默认会加载安装目录下的prometheus.yaml文件

./prometheus

可以使用浏览器访问9090端口

Node Exporter
在prometheus的架构中,prometheus server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持;因此,为了能够监控到某些东西,如主机的CPU使用率,我们需要使用到exporter;
prometheus周期性的从exportser暴露的http服务地址(通常是/metrics)拉取监控样本数据;

exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以为,也可以是直接内置在监控目标中;只要能够向prometheus提供标准格式的监控样本数据即可;

使用node exporter采集linux主机的数据,如CPU、内存、磁盘等

步骤:

# 直接下载二进制包解压即可
[root@proxy1 ~]# tar -zxvf node_exporter-1.0.1.linux-amd64.tar.gz -C /usr/local/
[root@proxy1 ~]# cd /usr/local/node_exporter-1.0.1.linux-amd64/
[root@proxy1 node_exporter-1.0.1.linux-amd64]# mv node_exporter /usr/local/bin/

# 启动
[root@proxy1 ~]# /usr/local/bin/node_exporter &

[root@proxy1 ~]# chmod +x /etc/init.d/node_exporter 
[root@proxy1 ~]# service node_exporter start        

# 访问9100端口验证

修改prometheus配置文件
使其能够从当前node exporter获取到监控数据

#编辑prometheus.yml文件,在scrape_configs节点下添加:
  # 采集node exporter监控数据
  - job_name: 'linux'
    static_configs:
    - targets: ['localhost:9100']

重新启动prometheus,浏览器访问输入 up 验证

如果prometheus能够正常从node exporter获取数据,则会看到:

up{instance="localhost:9090",job="prometheus"} 1
up{instance="localhost:9100",job="linux"} 1

1表示正常

使用PromQL查询监控数据

Prometheus UI是prometheus内置的一个可视化管理界面,通过prometheus UI用户能够轻松的了解prometheus当前的配置,监控任务运行状态等;通过graph面板,可以直接使用promql实时查询监控数据;

通过promql我们可以非常方便的对数据进行查询、过滤以及聚合、计算等操作,通过对这些丰富的表达式语句,监控指标不再是一个单独存在的个体,而是一个个能够表达出正式业务含义的语言;

使用Grafana创建可视化Dsahboard

prometheus UI提供了快速验证PromQL以及临时可视化支持的能力,而在大多数场景下引入监控系统通常还需要构建长期使用的监控数据可视化面板(Dsahboard);
可以考虑使用第三方的可视化工具如Grafana;
1.Grafana是什么?
Grafana是一个开源的可视化平台,并且提供了对prometheus的完整支持;
2.基本按照部署
官方下载地址:https://grafana.com/grafana/download
centos安装步骤:
wget https://dl.grafana.com/oss/release/grafana-7.3.1-1.x86_64.rpm
sudo yum install grafana-7.3.1-1.x86_64.rpm
启动服务:

[root@proxy1 ~]# systemctl start grafana-server

默认端口为3000
默认用户名密码都为admin

相关文章
|
4月前
|
消息中间件 Prometheus 监控
Prometheus实战篇:什么是Exporter
所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如图下所示, Prometheus通过轮询的方式定期从这些target中获取样本数据
|
6月前
|
Prometheus Kubernetes 监控
k8s中部署Grafana-prometheus系列文章第二篇
k8s中部署Grafana-prometheus系列文章第二篇
|
6月前
|
存储 Prometheus 监控
【Prometheus】什么是prometheus?prometheus简介
【Prometheus】什么是prometheus?prometheus简介
57 0
|
4月前
|
存储 Prometheus 监控
Prometheus实战篇:Prometheus简介
Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。
|
5月前
|
Prometheus Cloud Native 数据可视化
Prometheus + Grafana + AlertManger 相关整理
Prometheus + Grafana + AlertManger 相关整理
32 0
|
6月前
|
Prometheus 监控 Kubernetes
k8s中部署prometheus监控告警系统-prometheus系列文章第一篇
k8s中部署prometheus监控告警系统-prometheus系列文章第一篇
|
8月前
|
Prometheus 监控 Cloud Native
【Prometheus简介】
【Prometheus简介】
87 0
|
8月前
|
存储 Prometheus 监控
Prometheus入门
Prometheus入门
145 1
|
9月前
|
存储 Prometheus 监控
深入浅出 Prometheus
深入浅出 Prometheus
106 0
|
4天前
|
存储 JSON Cloud Native
Grafana Loki初体验
Loki介绍Loki是Grafana Labs在2018年开始研发的一款日志系统,使用的开源协议是AGPLv3,Github Star数目前是15.8k。 过去几年Star的趋势增长稳定。 属于日志存储领域的一颗新星。Grana Loki的应用架构采集侧使用 PromtailLoki核心程序(单一二...
Grafana Loki初体验