Prometheus普罗米修斯监控的使用_v1.0.5

文件名称版本号作者qq版本
Prometheus普罗米修斯监控的使用v1.0.5若布与宫合8416837go1.12.5.linux-amd64
prometheus-2.22.0.linux-amd64
node_exporter-1.0.1.linux-amd64
google/cadvisor:latest
grafana-7.2.2-1.x86_64.rpm

效果

安装完毕后,监控效果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

概论

简介

​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
# vim /etc/profile 增加下述内容
# 定义环境变量常量
GO_HOME=/usr/local/go
# 增加到path集合,加上$PATH
PATH=$GO_HOME/bin:$PATH
# 导出path(已有)
export PATH
# 注入
source /etc/profile
# 检查
go version

在这里插入图片描述

Prometheus
Docker安装Prometheus待续,另下文的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/
# 备份原版配置文件
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
# 软链接
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

在这里插入图片描述

配置
  • 上文也简略提到了监控的配置文件,配置的种类很多,如监控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 application【轮询】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
下载安装

安装日志👇,有不少依赖要装
在这里插入图片描述

CENT OS
# 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
# 检测是否启动
netstat -tlnp|grep 3000
  • 登录 初始a/p:admin/admin
    在这里插入图片描述
    登录后,请你设置新pw
配置 主要是添加数据源 选择 prometheus

先找到齿轮icon
在这里插入图片描述

在这里插入图片描述
输入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)注意修改url参数👇在这里插入图片描述
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 \

  • 检测是否启动成功:netstat -tlnp|grep 8090
界面
  • 启动后,cAdvisor也有个界面,但是我们主要使用prometheus的数据聚合和grafana的界面。
    cAdvisor的地址和界面:
    http://ip:8090/containers/
    在这里插入图片描述

  • 将jobName、ip、port配置到Prometheus任务,下载Docker监控模板查看监控效果👇

解决问题

不采集数据

修正系统时间

没有数据
  • 普罗米修斯日志报错::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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值