野仙生活网

野仙生活网

Prometheus_原理架构-安装部署

民生 0

文章目录

  • 1、prometheus简介
    • 常见监控软件
    • 优势
  • 2、组成图讲解
  • 3、安装和配置
    • 3.1 容器安装
    • 3.2 二进制安装
    • 3.3 配置热加载

1、prometheus简介

是一个监控软件–》监控容器非常好,也可以监控其他的非容器的机器的业务,例如:MySQL,nginx,redis,系统等。
目前属于CNCF(云原生基金会)的一个项目。

常见监控软件

1、cacti 仙人掌:出图比较好
2、nagios 监控脚本特别多
3、zabbix 集合cacti + nagios 的优点,企业里面用的很多
4、openfalcon 小米公司开源的监控软件
5、prometheus:开源的监控软件

优势

zabbix可以监控的prometheus都可以监控。
zabbix监控的服务器多了会跟不上的,但是prometheus是可以的。
prometheus的时序数据库是非常快的,支持很大的并发,监控更多的节点。

2、组成图讲解

在这里插入图片描述

promQL 是prometheus 里的SQL语句–》可以实现增删改查等操作 ;
jobs --》作业,任务–》一个运行的程序对应进程 --》长作业:长时间的工作
short-lived jobs 短作业:短时间的工作 --》进程
长作业:长时间的工作
prometheus targets 被监控的目标–》被监控的服务器
exporter : 是prometheus的agent(代理),负责收集工作的指标(数据)给prometheus server
exporter 是一个一直在被监控主机里运行的一个进程(jobs)

prometheus是一个监控软件,可以监控容器。也可以监控其他的服务器。它由prometheus server、exporter 、Pushgateway、Altermanager、prometheus web UI等五大块组成。

  • prometheus server(存储数据)
    核心组件。里面有一个时序数据库(TSDB)、web服务(HTTP server,提供接口方便外面的人拿数据展示)
    时序数据库(time series database: 按照事情发生的时间记录数据的数据库 )
  • exporter(采集数据模块)
    装在被监控的服务器上面。主要是长作业的任务需要用到exporter。
  • Pushgateway(中间件)
    短作业的任务借助中间件Pushgateway收集存储起来。server去Pushgateway里面拉取数据,推到Altermanager上
  • Altermanager (告警模块)
    实现告警
    -prometheus web UI (展示模块)
    客户端获取数据用到的是promQL,通过访问接口获取数据。

3、安装和配置

3.1 容器安装

# 使用容器安装prometheus
docker run  -d -p 9090:9090 --name sc-prometheus-1    prom/prometheus
# 此时监控的是本机 
http://192.168.2.150:9090/graph  --》访问图形界面的API接口
http://192.168.2.150:9090/metrics  -->prometheus提供的数据的API

grafana 就是访问prometheus的http://192.168.2.150:9090/metrics 接口获取数据,然后出图展示;
grafana 就是出图工具,数据显示的工具;
grafana比prometheus自带的web界面出图工具要漂亮

3.2 二进制安装

[root@lb1 prom]# mkdir /prom  专门新建一个目录存放
[root@lb1 prom]# cd /prom
[root@lb1 prom]# wget https://github.com/prometheus/prometheus/releases/download/v2.29.1/prometheus-2.29.1.linux-amd64.tar.gz[root@lb1 prom]# tar xf prometheus-2.29.1.linux-amd64.tar.gz 
[root@lb1 prom]# cd prometheus-2.29.1.linux-amd64
[root@lb1 prometheus-2.29.1.linux-amd64]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool[root@lb1 prom]# mv prometheus-2.29.1.linux-amd64/* .
[root@lb1 prom]# PATH=/prom:$PATH  修改环境变量
[root@lb1 prom]# which prometheus
/prom/prometheus
 #在后台启动prometheus
[root@lb1 prom]# nohup prometheus --config.file=/prom/prometheus.yml  &
[1] 23051
[root@lb1 prom]# nohup: 忽略输入并把输出追加到"nohup.out"[root@lb1 prom]# netstat -anputl|grep prom
tcp6       0      0 :::9090                 :::*                    LISTEN      23051/prometheus    
tcp6       0      0 ::1:9090                ::1:55398               ESTABLISHED 23051/prometheus    
tcp6       0      0 ::1:55398               ::1:9090                ESTABLISHED 23051/prometheus 
[root@lb1 prom]# vim prometheus.yml  # 是prometheus的配置文件scrape_configs:- job_name: "prometheus"  #监控的一个任务static_configs:- targets: ["localhost:9090"]  #具体被监控的服务器的访问接口

安装好了后,打开浏览器去访问
http://192.168.2.130:9090
在这里插入图片描述

3.3 配置热加载

Promtheus的时序 数据库 在存储了大量的数据后,每次重启Prometheus进程的时间会越来越慢。 而在日常运维工作中会经常调整Prometheus的配置信息,实际上Prometheus提供了在运行时热加载配置信息的功能。

  • 热加载方式
    发送一个POST请求到/-/reload,需要在启动prometheus时加上 --web.enable-lifecycle 选项
  • 热加载命令
    curl -XPOST http://localhost:9090/-/reload