文章目录
- 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