您当前的位置:首页 > 电脑百科 > 网络技术 > 网络软件

监控实战Prometheus+Grafana

时间:2019-09-26 11:37:34  来源:  作者:

这期的分享是监控实战,其实不想写这篇的,因为网上相关的文章也挺多的,但是出于光说不练都是假把式,而且我也想告诉你:当帅气的普罗米修斯(Prometheus)遇到高颜值的格拉法纳(Grafana)究竟会擦出什么样的火花?所以忍不住还是想分享啊。

监控实战Prometheus+Grafana

 

为了实战,我们再次请出架构图,请注意图中红色圈 1 的部分,主要分两条线去实战。

第一条战线:Prometheus 如何监控机器?

采用标准的PGOne技术组件Prometheus Server + Grafana + node_exporter完成对机器的性能监控。

第二条战线:Prometheus 如何监控 flink?

采用技术组件client lib(flink-metrics-prometheus_x.jar) + PushGateway + Prometheus Server + Grafana完成对 flink 的监控。

1. Prometheus 如何监控机器?

工欲善其事必先利其器,先下载相关组件包。prometheus 提供了两种下载方式,第一种是二进制压缩包的方式,第二种是 Docker 镜像的方式。

#方式1:二进制压缩包下载链接
https://prometheus.io/download/
#方式2:docker镜像链接
https://hub.docker.com/u/prom

本次实战均采用 docker 镜像下载。

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

下载完成成, 输入命令 docker images 列出本地主机上的镜像(由于pushgateway镜像之前在本机已经下载过,你如果第一次跟着做,应该看不到这个,后面操作会进行下载)。

监控实战Prometheus+Grafana

 

做好准备工作。

#创建 grafana 数据存储目录
mkdir /opt/grafana-storage
#因为 grafana 会在这个目录写入文件,赋权限。
chmod 777 -R /opt/grafana-storage
#创建 prometheus 配置文件存放目录
mkdir /opt/prometheus/
#在 prometheus 配置文件目录下,创建prometheus.yml文件
vi /opt/prometheus/prometheus.yml
# prometheus.yml中配置静态监控对象 targets,输入如下配置内容(请注意修改 IP 为你的真实 IP):
global:
 scrape_interval: 60s
 evaluation_interval: 60s
scrape_configs:
 - job_name: prometheus
 static_configs:
 - targets: ['localhost:9090']
 labels:
 instance: 'prometheus'
 - job_name: linux
 static_configs:
 - targets: ['IP:9100']
 labels:
 instance: 'linux'

准备就绪,逐个启动组件。

# 启动 node-exporter
docker run -d -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --net="host" prom/node-exporter
# 启动 prometheus
docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
# 启动 grafana
docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

确认一下是否都启动了,输入 docker ps -a 一探究竟。

监控实战Prometheus+Grafana

 

再次确认一下服务是否都 OK 了, 逐个访问一下。

  • node_exporter 访问输入 http://YOUR_CONF_IP:9100/metrics,效果如下
监控实战Prometheus+Grafana

 

  • Prometheus 访问输入 http://YOUR_CONF_IP:9090/targets,效果如下
监控实战Prometheus+Grafana

 

  • Grafana 访问输入 http://YOUR_CONF_IP:3000,效果如下
监控实战Prometheus+Grafana

 

  • 默认用户名密码 : amin/admin
监控实战Prometheus+Grafana

 

  • 点击 Add data source,选择 Prometheus。
监控实战Prometheus+Grafana

 

  • 配置url 输入Prometheus的 ip + 端口,然后点击 Save&Test 按钮,会提示Data source is working。
监控实战Prometheus+Grafana

 

  • 回到首页,点击 New dashboard --> Add Query。
监控实战Prometheus+Grafana

 


监控实战Prometheus+Grafana

 

  • Panel Title 下拉菜单选择 edit,输入指标会自动提示呦。
监控实战Prometheus+Grafana

 

  • 效果所见即所得。
监控实战Prometheus+Grafana

 

到这儿,采用 Prometheus Server + Grafana + node_exporter 对机器性能指标监控的实战,就算演示操作完毕,点到为止,接下来看看 flink 监控如何集成。

 

2. Prometheus 如何监控 flink?

第一步:下载 pushgateway 镜像,并完成启动。

# 下载 pushgateway 镜像
docker pull prom/pushgateway
# 启动 pushgateway
docker run -d -p 9091:9091 prom/pushgateway

第二步:在 prometheus.yml 中添加 pushgateway 的配置,用于告诉 Prometheus 监控 pushgateway,并重新启动 prometheus。

global:
 scrape_interval: 60s
 evaluation_interval: 60s
scrape_configs:
 - job_name: prometheus
 static_configs:
 - targets: ['localhost:9090']
 labels:
 instance: 'prometheus'
 - job_name: linux
 static_configs:
 - targets: ['IP:9100']
 labels:
 instance: 'linux'
 - job_name: 'pushgateway'
 static_configs:
 - targets: ['IP:9091']
 labels:
 instance: 'pushgateway'

第三步:针对 flink 添加监控集成包,直接把 flink-1.8.1/opt 目录下的 flink-metrics-prometheus-1.8.1.jar 包复制一份到 flink-1.8.1/lib 目录下即可。

第四步:然后在 flink 配置文件 flink-conf.yml 中添加如下内容(注意修改IP),启动 flink 即可。

##metrics
metrics.reporter.promgateway.class: org.Apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: YOUR_CONF_IP
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: myJob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false

第五步:回到 Grafana 首页,点击 New dashboard,创建一个新的 dashboard,选择 flink(注意如果没有出现 flink,那说明 flink 没有启动)。

监控实战Prometheus+Grafana

 

  • 选择并添加相关指标看一看。
监控实战Prometheus+Grafana

 

好了,到这 Prometheus 监控 flink 也就完毕了,后续就是监控指标如何展示的更好的问题,不再赘述。

 

3. 有钟意的 dashboard,Grafana 如何让她变成自己的?

网站 https://grafana.com/grafana/dashboards 提供了一系列的模板,可供使用,那该如何导入到自己的 Grafana 下呢?

第一步:选择钟意的 dashboard,获取对应的 dashboard 编号。

监控实战Prometheus+Grafana

 

第二步:回到自己的 Grafana 首页,选择"+" --> Import

监控实战Prometheus+Grafana

 

然后输入 Copy 的 dashboard 编号,点击 load。

监控实战Prometheus+Grafana

 

效果所见即所得,高端大气上档次。

监控实战Prometheus+Grafana

 

好了,帅气的 Prometheus 与高颜值的 Grafana 擦出的烟火就放到这儿吧。不过在结束之前,还是归拢一下本次演示遇到的问题吧,以供你参考。

 

4. 问题集锦

问题一:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

linux解决方案
 systemctl daemon-reload
 systemctl restart docker.service
 
mac下直接启动 docker 服务就行了。

问题二:Get http://localhost:9100/metrics: dial tcp [::1]:9100: connect: connection refused

解决方案:修改 prometheus.yml 文件中 targets: ['localhost:PORT'] 中的 localhost:PORT 修改为真实 IP:PORT 就行了。

问题三:启动 grafana 时始终失败。

mkdir: cannot create directory '/var/lib/grafana/plugins': Permission denied
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later

解决方案:chmod 777 /opt/grafana-storage

问题四:Prometheus 监控 flink 时,始终找不到 PrometheusPushGatewayReporter。

JAVA.lang.ClassNotFoundException: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter

解决方案:直接把 flink-1.8.1/opt 目录下的 flink-metrics-prometheus-1.8.1.jar 包复制一份到 flink-1.8.1/lib 目录下即可。

 

5. 命令集锦

docker pull prom/node-exporter //拉取镜像
docker images //查看本机所有镜像
docker run ... //创建一个新的容器
docker stop $(docker ps -a -q) //停止所有容器
docker rm $(docker ps -a -q) //删除所有容器
docker logs -f --tail=10 CONTAINER_ID //查看容器的最后10行的日志

 

好了,每天进步一点点, 一年后你的进步将远远超乎你的想象。如果感觉文章有点意思,请多多分享转发吧。
 

本文转载自微信公众号「一猿小讲」





Tags:监控 Prometheu   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
这期的分享是监控实战,其实不想写这篇的,因为网上相关的文章也挺多的,但是出于光说不练都是假把式,而且我也想告诉你:当帅气的普罗米修斯(Prometheus)遇到高颜值的格拉法纳(Grafana)...【详细内容】
2019-09-26  Tags: 监控 Prometheu  点击:(347)  评论:(0)  加入收藏
▌简易百科推荐
说到远程控制,首先你会想到的是什么?是TeamViewer 还是向日葵?抑或是QQ远程还是anydesk?对,就在不久前,我们熟知的都是以上的产品,但是只2020年开始,一款新的远控产品ToDesk进入到我...【详细内容】
2021-12-27  网管世界    Tags:ToDesk   点击:(4)  评论:(0)  加入收藏
# 1. nps-npc1.1 简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh...【详细内容】
2021-12-22  大数据推荐杂谈    Tags:内网穿透   点击:(8)  评论:(0)  加入收藏
“磨刀不误砍柴工”。 优秀的工具有助于提高工作效率,安全工程师也需要优秀的安全软件来提高工作效率。 在具体的工作场景中,有很多种选择,这里有10种开源的免费安全工具,不仅可...【详细内容】
2021-11-23  山东云管家官方    Tags:安全工具   点击:(33)  评论:(0)  加入收藏
火绒安全软件是一款小巧精悍、独立纯粹的国产安全软件.有很多网友都下载安装了火绒安全软件使用.那么火绒安全软件怎么样呢,火绒安全软件好用吗?下面小编就给大家分析下详解...【详细内容】
2021-11-03  装机吧    Tags:火绒   点击:(34)  评论:(0)  加入收藏
背景上次给大家介绍了实现基础的运维系统功能—webssh,今日书接上回,继续给大家介绍一个web远程ssh终端录像回放功能。 一、思路网上查了一下资料,搜索了一下关于实现webs...【详细内容】
2021-10-13  小堂运维笔记    Tags:ssh终端   点击:(40)  评论:(0)  加入收藏
QuickPing快速Ping扫描器QuickPing,哪些地址已经使用,哪些可用,图形界面非常直观,而且可以导出列表,该软件体积很小,可以快速的知道网段内哪些主机已经开启,ping成功的即显示出不同...【详细内容】
2021-10-11  海南弱电李工    Tags:网管   点击:(66)  评论:(0)  加入收藏
1、每个项目根据现场的网络环境不同,需要定义不同的IP地址,通过此工具可以快速配置。而且有助于做项目实施资料。2、以前连接过的wifi密码自带记忆功能,通过检索对应的WiFi名字...【详细内容】
2021-10-08  IT游侠    Tags:局域网管理   点击:(49)  评论:(0)  加入收藏
01概述无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章主要介绍如何在各个平台下,高效的抓包。目前的抓包软件总体可以分为两类: 一种是设置代理抓取http包,比...【详细内容】
2021-09-28  小码哥聊软件测试    Tags:网络抓包   点击:(103)  评论:(0)  加入收藏
Fiddler 简介Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大,是 Web 调试的利器关注+转发+私信【软件测试】领取Fiddler安装包和...【详细内容】
2021-09-28  土豆聊软件测试    Tags:抓包工具   点击:(63)  评论:(0)  加入收藏
前言上次有写过一篇《20张图深度详解MAC地址表、ARP表、路由表》的文章,里面有提到了MAC地址表。那么什么是MAC地址表?MAC地址表有什么作用?MAC地址表里面包含了哪些要素?今天...【详细内容】
2021-09-09  网络工程师笔记    Tags:MAC地址表   点击:(76)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条