文件名称版本号作者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
sudo tar -C /usr/local/ -xvzf go1.12.5.linux-amd64.tar.gz
GO_HOME
=/usr/local/go
PATH
=$GO_HOME/bin:
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
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://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.2.2-1.x86_64.rpm
sudo yum -y localinstall grafana-7.2.2-1.x86_64.rpm
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式安装是到这个目录)
免密登录和修改背景
访问
仪表盘地址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目录↓
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
&