普罗米修斯监控的使用

it2025-08-03  10

文件名称版本号作者qq版本普罗米修斯监控的使用v1.0.3若布与宫合8416837go1.12.5.linux-amd64prometheus-2.22.0.linux-amd64node_exporter-1.0.1.linux-amd64google/cadvisor:latestgrafana-7.2.2-1.x86_64.rpm

文章目录

效果概论简介用途 安装需安装啥Win OS 安装待续Linux OS安装安装golangPrometheusDocker安装 - 待续 下文的cAdvisor使用Docker跑安装包安装下载安装 配置启动使用技术要点说明设置报警被监控的主机必须安装:exporter(有各种类型)下载安装运行,它是个进程 设置[报警规则](https://www.jianshu.com/p/1f05476ebcee) grafana Dashboard下载安装启停命令配置 主要是添加数据源 选择 prometheus允许嵌入 允许匿名访问(分享时)访问分享,嵌入到其它网页或UI里面导入监控模板下载节点监控模板监控效果: 对Docker容器进行监控前置条件安装cAdvisor - Docker界面 解决问题不采集数据没有数据

效果

安装完毕后,监控效果:

概论

简介

​Prometheus提供全类型的Exporter用于采集数据,支持数据库、硬件、MQ、其它存储系统、网络服务器等。更支持定制开发,可基于Prometheus提供的Client Library创建自己的Exporter程序。 主要工作原理:prometheus作为集中式的数据规整管理、聚合。cAdvisor、exporter作为数据采集,被prometheus轮询调用获取准实时数据,之后套上grafana界面壳。

用途

应用、数据库、硬件以及组件的监控。

安装

需安装啥

分为监管机与被监管机,当然监管机也可以是被监管机

prometheusexportercAdvisorgrafana备注监管机√√看情况√整合数据被监管机——√Docker√——采集数据

Win OS 安装待续

Linux OS安装

安装golang

# 下载之后,将go安装包放置好。执行解压命令。解压到/usr/local便于管理; sudo tar -C /usr/local/ -xvzf go1.12.5.linux-amd64.tar.gz # 常量 GO_HOME=/usr/local/go # 增加到path集合 PATH=$GO_HOME/bin: # 导出path(已有) export PATH # 注入 source /etc/profile # 检查 go version

Prometheus

Docker安装 - 待续 下文的cAdvisor使用Docker跑

Docker安装的原理其实和安装包安装是一样的,只不过它集成了依赖甚至OS,兼容性更强,另外,通过Docker安装prometheus、grafana后,便于通过Docker进行横向扩展、监控等,以便对全体把控。

安装包安装
下载

在国内镜像站下载 名称:prometheus-2.22.0.linux-amd64.tar.gz

安装
# 解压 sudo tar -xvzf prometheus-2.22.0.linux-amd64.tar.gz -C /usr/local/ # 软链接 ln -sv /usr/local/prometheus-2.22.0.linux-amd64/ /usr/local/Prometheus # 修改配置文件 配置被监控的名称和地址(tcp)根据提示,很容易看懂。 sudo vim /usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml # 备份原版配置文件 sudo cp /usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml /usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml._back-up_202010220946

配置
上文也简略提到了监控的配置文件,配置的种类很多,如监控linux server,抑或server上面的app,所使用的的监控包是不同的,这就是下文提到的exporter。比如,要监控服务器,就安装节点服务器exporter:node_exporter-1.0.1.linux-amd64.tar.gz。根据提示,修改这个配置文件的job项:sudo vim /usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml,填入ip、端口、job名称等。
启动
# 前台启动 cd /usr/local/prometheus-2.22.0.linux-amd64;./prometheus # 后台启动 【注意日志级别,否则日志增速很快】 nohup ./prometheus > 日志||/dev/null 2>&1 &

启动成功,下面一行日志是:caller=main.go:684 msg="Server is ready to receive web requests."

使用

浏览地址:http://192.168.4.65:9090/targets 如果配置不正确,则监控不到:

技术要点说明

在主机安装node_exporter程序,对外暴露用于获取当前监控样本数据的http地址, 称为target, prometheus轮询target获取监控数据。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。 Prometheus提供多种类型的Exporter用于采集不同服务的状态。支持数据库、硬件、消息中间件、存储系统、HTTP服务器等。也可以进行自定义开发,还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby。同时还有第三方实现的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust等。 与翻译机类似。

设置报警
被监控的主机必须安装:exporter(有各种类型)

要监控应用、数据库、硬件还是组件,就安装对应的exporter.

下载

点击下载exporter,认准硬件

安装
sudo tar xvzf node_exporter-1.0.1.linux-amd64.tar.gz -C /usr/local/
运行,它是个进程
# 启动 nohup /usr/local/node_exporter-1.0.1.linux-amd64/node_exporter > /dev/null 2>&1 & # 查看状态 netstat -tlnp|grep 9100
设置报警规则

见报警文档

grafana Dashboard

下载安装
# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm # latest wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.2.2-1.x86_64.rpm # sudo yum localinstall grafana-5.2.3-1.x86_64.rpm sudo yum -y localinstall grafana-7.2.2-1.x86_64.rpm # 上一步安装完毕后,根据grafana的日志提示命令:加入到系统服务 并启动 sudo /sbin/chkconfig --add grafana-server; # 启动 sudo service grafana-server start # 断电后也能自动启动 # 启停命令↓
启停命令
# 查看帮助可知 sudo service grafana-server start|stop|restart|force-reload|status 登录 初始:admin/admin 登录后,请你设置新pw
配置 主要是添加数据源 选择 prometheus

输入prometheus的数据源地址,其它配置暂时默认:

允许嵌入 允许匿名访问(分享时)
sudo vim /etc/grafana/grafana.ini(centos rpm式安装是到这个目录) # 允许iframe嵌入:allow_embedding=true # 免密:搜索[auth.anonymous] 改为:enabled = true

免密登录和修改背景

访问

仪表盘地址http://192.168.4.65:3000

分享,嵌入到其它网页或UI里面

分享的意思是将仪表盘的链接以iframe的形式嵌入web ui。 1)找到仪表盘的标题,单击,弹出管理窗口, 2) 3)嵌入到其它网站后的效果:

导入监控模板
下载节点监控模板

下载对应的json,在grafana仪表盘管理模块,import下载的json,根据提示选择prometheus和其它组件,效果就出来了。 浏览并下载模板

监控效果:
硬件 Docker:

对Docker容器进行监控

前置条件
安装cAdvisor - Docker
docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8090:8080 \ --detach=true \ --name=cadvisor \ -v "/etc/localtime:/etc/localtime" \ google/cadvisor:latest

注意,宿主机端口使用8090 默认网络,若加入指定网络(host):--net=host \

界面

启动后,cAdvisor也有个界面,但是我们主要使用prometheus的数据聚合和grafana的界面。 cAdvisor的地址和界面: http://ip:8090/containers/

待续。。。

解决问题

不采集数据

修正系统时间

没有数据

普罗米修斯日志报错::9090/metrics msg=“Error on ingesting samples that are too old or are too far into the future” num_dropped=608可能因为断电导致时间问题解决办法: 第一步,新建目录mkdir cd /usr/local/prometheus-2.22.0.linux-amd64;mkdir tsdb_data

第二步,启动,指定ts目录↓

# 创建一个新的 tsdb 数据目录 # 启动时指定 tsdb nohup /usr/local/prometheus-2.22.0.linux-amd64/prometheus \ --config.file="/usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml" \ --storage.tsdb.path="/usr/local/prometheus-2.22.0.linux-amd64/tsdb_data" \ --web.enable-lifecycle \ --web.enable-admin-api > /dev/null 2>&1 & 不带斜杠 换行 nohup /usr/local/prometheus-2.22.0.linux-amd64/prometheus --config.file=/usr/local/prometheus-2.22.0.linux-amd64/prometheus.yml --storage.tsdb.path=/usr/local/prometheus-2.22.0.linux-amd64/tsdb_data --web.enable-lifecycle --web.enable-admin-api > /dev/null 2>&1 &
最新回复(0)