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部署
设备准备:
主机名 | 地址 | 安装包 |
---|---|---|
Prometheus | 192.168.118.44 | Prometheus ,grafana |
server1 | 192.168.118.22 | node_exporter |
server2 | 192.168.118.33 | node_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基础知识及部署!的主要内容,如果未能解决你的问题,请参考以下文章