Prometheus基础知识及部署!

Posted handsomeboy-东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus基础知识及部署!相关的知识,希望对你有一定的参考价值。

Prometheus

Prometheus基础知识

  • prometheus采集的主要是时间序列数据,采集随着时间变化而变化的数据进行分析,这也叫指标数据
  • 指标数据采集后是一个个的点状数据,连在一起成折线图,也是样本数据,然后对样本数据进行趋势分析,将这些收集和分析的数据存储于数据库(TSDB时间序列数据库)中
  • 分析的结果进行图示化展示,为了prometheus自身的展示页面比较简洁,为了数据分析更好的展示,我们可以使用控制台grafana(图示化处理)
  • 同时我们需要一个守护进程,实时监测指标时间序列是否异常状态,其判断通常使用布尔值表达式作为依据,满足布尔表达式的视为异常状态,触发告警机制把异常信息发送给管理用户

prometheus监控目标

  • 系统层:CPU、Load、Menory、swap、disk、i/o、process等
  • 网络监控:网络设备、工作负载、网络延迟、丢包率等
  • 中间件和服务器容器:kafka、RocketMQ等消息队列,tomcat等服务
  • 数据库:mysql、redis、MogoDB、es等

Prometheus特性

  • 多维的数据模型(基于时间序列的Key、value键值对)
  • 灵活的查询和聚合语言PromQL
  • 提供本地存储和分布式存储
  • 通过基于HTTP和HTTPS的pull模型采集时间序列数据(时间点的数据值指标,持续性产生,形成折线图)
  • 可利用Pushgateway实现pushmos
  • 可通过动态服务或者静态配置发现目标及其
  • 支持多种图表(grafana)

Prometheus监控体系

1、系统层监控:CPU、Load、Memory、swap、disk、i/o、process等

2、网络监控:网络设备、工资负载、网络延迟、丢包率等

3、服务:中间件消息队列,web服务器tomcat

4、数据库:MySQL、redis、MogoDB、es等

5、应用层:监控应用一些状态和性能,又分为白盒监控,黑盒监控

白盒监控::自省指标,自治功能,支持三种途径从被监控目标抓取数据

  • exporter :指标暴露器,当服务不支持Prometheus格式,借助exporter来响应给Prometheus
  • instumentation:监控系统,指的是应用曾向内置本身兼容Prometheus采集格式的指标暴露器
  • pushgateway:短期、批量处理任务,同时难于使用exporter来获取指标数据的任务

黑盒监控:基于探针的监控方式,不会主动干预、影响数据

Prometheus监控四大指标

  • 延迟:服务请求时长,区分失败与成功的请求
  • 流量:应用服务容量需求,如每秒处理HTTP请求或数据库系统的事务数量
  • 错误:请求失败的速率,衡量错误发送的情况
  • 饱和度:资源使用情况、负载情况

Prometheus部署

设备准备:

主机名地址安装包
Prometheus192.168.118.44Prometheus ,grafana
server1192.168.118.22node_exporter
server2192.168.118.33node_exporter

基本环境准备

  • 设置时间同步
ntpdate ntp1.aliyun.com			##三台节点同时部署

安装Prometheus

[root@prometheus opt]# tar xzf prometheus-2.27.1.linux-amd64.tar.gz 	#安装包解压
[root@prometheus opt]# mv prometheus-2.27.1.linux-amd64 /usr/local/prometheus	
[root@prometheus opt]# cd /usr/local/prometheus/
[root@prometheus prometheus]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool
[root@prometheus prometheus]# ./prometheus
…………………………
level=info ts=2021-09-17T15:21:39.723Z caller=main.go:775 msg="Server is ready to receive web requests."
[root@prometheus prometheus]# netstat -antp | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      76979/./prometheus  
tcp6       0      0 ::1:38574               ::1:9090                ESTABLISHED 76979/./prometheus  
tcp6       0      0 ::1:9090                ::1:38574               ESTABLISHED 76979/./prometheus  
  • 访问表达式浏览器192.168.118.44:9090
  • 查看指标数据

两server节点安装node_exporter

Prometheus的各种exporter安装包地址https://prometheus.io/download/

server1和server2配置相同

[root@server1 opt]# tar xzf node_exporter-1.1.2.linux-amd64.tar.gz 
[root@server1 opt]# cd node_exporter-1.1.2.linux-amd64/
[root@server1 node_exporter-1.1.2.linux-amd64]# ls
LICENSE  node_exporter  NOTICE
[root@server1 node_exporter-1.1.2.linux-amd64]# cp node_exporter /usr/local/bin
[root@server1 node_exporter-1.1.2.linux-amd64]# ./node_exporter 	##加载node_exporter
##node_exporter默认端口9100
[root@server2 node_exporter-1.1.2.linux-amd64]# netstat -antp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      77461/./node_export 
  • 在Prometheus节点修改配置文件,添加target对应端点
[root@prometheus prometheus]# vim prometheus.yml 

  • 重启Prometheus
[root@prometheus prometheus]# pkill prometheus
[root@prometheus prometheus]# ./prometheus 


安装grafana

为了方便,这里直接再Prometheus节点安装

[root@prometheus opt]# rpm -ivh grafana-7.3.6-1.x86_64.rpm 
[root@prometheus opt]# systemctl start grafana-server.service 	#开启grafana
[root@prometheus opt]# netstat -antp | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      81286/grafana-serve 

网页访问grafana,第一次的用户名和密码都是admin,然后需要修改密码

  • 添加Prometheus服务监控




以上是关于Prometheus基础知识及部署!的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus基础知识及部署!

Prometheus部署及服务发现

Prometheus部署及服务发现

Prometheus部署及服务发现

Kubernetes基础自学系列 | 部署prometheus

Prometheus介绍及二进制部署