Grafana-reporter定时报表
未使用: 因为有的dashboard是中文的,所以这个对中文不支持,有解决办法的可以给我留言
场景:
前端组想要看这个dashboard每周发送给他邮箱
这是一个常见的需求,但是目前Grafana没有直接支持,所以我就查了一下,有一个grafana-reporter可以实现这个需求,因为参考的文档比较杂,所以我就在这里简单的记录一下
方案:Grafana-reporter
首先有一个开源工具叫Grafana reporter。他的做法是另起一个服务,然后利用Grafana的一个功能:Links.
在Grafana的Dashboard界面,点击设置按钮可以看到左边的标签中有一个“Links”,该功能可以给当前面板上加一些按钮,来调用某些链接(Link)。所以这个工具的做法是另外运行一个HTTP服务,然后在Grafana的面板中添加这个链接,点击后可以生成当前面板的PDF文件,当然也可以下载该PDF文件。
那么利用这个工具,你就可以自行访问该链接,拼装Dashboard的uid进去,得到该面板的PDF文件,通过脚本下载下来后再发邮件就行了。
这个方法的麻烦之处在于需要另外跑一个服务来提供PDF生成能力,而且PDF也不太好直接放在邮件正文里展现,更适合作为附件存在。
1.安装Grafana-reporter
github地址:https://github.com/IzakMarais/reporter
1.1 docker安装
需注意时区问题,默认生成的报表为UTC时区,推荐使用修改时区后镜像或挂载时区文件
docker run --name grafana-reporter --rm -v /etc/localtime:/etc/localtime -p 8686:8686 --net="host" izakmarais/grafana-reporter
2.匿名模式
2.1 Grafana开启匿名模式
vim /etc/grafana/grafana.ini
[auth.anonymous]
# enable anonymous access
enabled = true # specify organization name that should be used for unauthenticated users
;org_name = Main Org.# specify role for unauthenticated users
org_role = Viewer
2.2 检查匿名登陆
Signout
输入grafana地址
2.3 配置dashboard links
url: http://10.90.227.77:8686/api/v5/report/$uid
面板uid就是grafana进入到该dashboard页面时,网址中的值如图
d/$uid
举例:我的网址是:http://10.90.227.77:3000/d/ZNfv6Z6Gk/test?fullscreen&panelId=2
那我的url就是:http://10.90.227.77:8686/api/v5/report/ZNfv6Z6Gk
2.4 点击生成pdf
2.5 不支持中文
如果这个dashboard的名字是中文的就会出现如下报错
3.API token模式
有的公司不支持匿名访问;所以通过 api进行访问:
参考这个:https://blog.csdn.net/weixin_42963678/article/details/114131640
关闭匿名登陆后点击后 有报错
3.1 配置API KEY
弹出来的key,拷贝到其他地方保存,因为关闭之后就没有这个了
eyJrIjoibFdvb3R3ZDBhNzlYVG44Nkg0U05wQUpKUE91VFJvOWYiLCJuIjoidGVzdCIsImlkIjoxfQ==
3.2 配置url
得到了key之后,返回编辑link的url
将 http://10.90.227.77:8686/api/v5/report/ZNfv6Z6Gk
改成http://10.90.227.77:8686/api/v5/report/ZNfv6Z6Gk?apitoken=eyJrIjoibFdvb3R3ZDBhNzlYVG44Nkg0U05wQUpKUE91VFJvOWYiLCJuIjoidGVzdCIsImlkIjoxfQ==
3.3 注意版本
这里遇到个问题,因为不同版本的关系,有些版本使用 ?apitoken== ,但是我用的Grafana v7.4.3 (010f20c1c8),应该使用 ?apitoken= ,就是一个=的差别,写错了会报无效key,Got Status 401 Unauthorized, message: {“message”:“invalid API key”} ,这种情况检查一下自己复制key有没有复制对,中英文符号有没有误
还有一个问题,我尝试多次新增key,有些key的值末尾是有 == ,有些key的值是没有 == 的,所以只要复制完全,不需要额外给没有 == 的key添加 ==
4.发送邮件
参考:https://blog.csdn.net/why_still_confused/article/details/89075244
4.1 配置邮箱
以163邮箱为例
cat >>/etc/mail.rc<<"EOF"
set from=yxxx@163.com
set smtp=smtp.163.com:25
set smtp-auth-user=yxxx@163.com
set smtp-auth-password="ZLNLFBNUOJYLCVHM" #客户端授权码
set ssl-verify=ignore #不使用ssl
set nss-config-dir=/etc/pki/nssdb
EOF
4.2 下载pdf
wget -O test.pdf http://10.90.227.77:8686/api/v5/report/ZNfv6Z6Gk?apitoken=eyJrIjoibFdvb3R3ZDBhNzlYVG44Nkg0U05wQUpKUE91VFJvOWYiLCJuIjoidGVzdCIsImlkIjoxfQ==&from=now-5m&to=now
4.3 发送邮件
echo "a" | mail -s "Grafana监控日报"-`date +%Y-%m-%d` -a test.pdf ylmcr7@163.com
4.4 定时任务脚本
增加对应的dashboard报告可依照格式添加,并在mail
命令中使用-a
参数添加附件
cat >reporter.sh<<"EOF"
#/bin/bash
#auuthor:ricardo
#shell for creating grafana dashboard report
filepath=/media/raid10/grafana/report/
date=$(date +%Y-%m-%d)# dashboard report name
filename_es_general=Elasticsearch-Nginx-generalapi.linghit.com-${date}.pdf
filename_spring=SpringBoot-Statistics-${date}.pdf
filename_es_api=Elasticsearch-Nginx-api.linghit.com-${date}.pdf# download grafana dashboard report
wget -O ${filepath}${filename_es_general} http://172.16.7.5:8686/api/v5/report/8oPnVDCmz?from=now-24h&to=now&var-host=test.qq.com
wget -O ${filepath}${filename_spring} http://172.16.7.5:8686/api/v5/report/wAu8Swerd?from=now-24h&to=now
wget -O ${filepath}${filename_es_api} http://172.16.7.5:8686/api/v5/report/8oPnVDCmz?from=now-24h&to=now&var-host=test.qq.comsleep 30s# send email
mail -v \
-a ${filepath}${filename_es_general} -a ${filepath}${filename_spring} -a ${filepath}${filename_es_api} \
-s "Grafana监控日报"-`date +%Y-%m-%d` \
-c "test@qq.com" test@qq.com < /media/raid10/grafana/content.txt
EOF
Grafana-reporter定时报表相关推荐
- 基于Grafana+SimpleJson的灵活报表解决方案
在时序分析及监控展现领域,Grafana无疑是开源解决方案中的翘楚,其灵活的插件机制,支持各种漂亮的面板.丰富的数据源以及强大的应用.典型的面板有Graph.Text.Singlestat.PieCh ...
- 报表选型除了看开发难易,还要看运维省不省心
俗话说,报表运维是个坑,有时候被客户坑,有时候被同事坑,有时候被自己坑,坑来坑去还得自己填坑. 比如说,企业大了,业务种类就多了,这时候就不能依靠手工统计报表,企业就会采购或者开发报表系统,然而在选型 ...
- JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)
文章目录 1. 前言 1.1 InfluxDB 和 Grafana是什么? 1.2 JMeter的历代支持变迁 1.3 这篇文章讲了什么? 2. 下载与安装 2.1 InfluxDB 安装 2.2 G ...
- 帆软日期格式转换_Web报表工具FineReport定时器使用说明
本书介绍了报表工具FineReportV6.5定时器功能的相关参数及配置说明,本书最后详细列举了几个使用定时器功能的模板制作示例. 6.5定时器配置简要说明------------------2 6. ...
- 报表系统应该如何设计?--开源软件诞生15
报表系统的设计与探讨--第15篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/re ...
- TiDB 在特来电的实践
背景介绍 特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设.运营及互联网的增值服务.特来电颠覆了传统充电桩的模式,世界首创了电动汽车群智能充电系统, ...
- TiDB在特来电的探索
TiDB在特来电的探索 一. 为什么研究TiDB 特来电大数据平台通过开源与自研相结合的方式,目前已经上线多套集群满足不同的业务需求.目前在大数据存储和计算方面主要使用了Hbase.Elastics ...
- TiDB 在特来电的实践 1
背景介绍 特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设.运营及互联网的增值服务.特来电颠覆了传统充电桩的模式,世界首创了电动汽车群智能充电系统, ...
- Java8 Stream性能如何及评测工具推荐
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作为技术人员,学习新知识是基本功课.有些知识是不得不学,有些知识是学了之后如虎添翼,Java ...
- 诗歌rails之 定时任务 rufus-scheduler
相关文章: 关于ROR的定时任务 如何在Rails中实现邮件定时发送? crontab调用rake 不能成功,手动执行rake没问题 推荐圈子: TODOtree-ruby 更多相关推荐 在平时的开发 ...
最新文章
- NLTK包和语料库的准备
- Python Module — SQLAlchemy ORM
- 独家 | 一文读懂Apache Kudu
- Python中的测试工具
- 【实战】tensorflow 花卉识别
- 小大整数对象池及intern机制
- pytorch数据预处理
- 互联网人理想假期VS现实假期
- 某Q娱乐网emlog程序整站源码
- android 布局图片缩放,Android中进行图片缩放显示
- 三年级下册我想发明的机器人_我想发明的机器人作文300字
- 教你查看传说中的WPS2005彩蛋
- 诗与远方:无题(九十四)
- 常用的OpenCV函数速查
- 【计算机二级Python】Python全部内置函数解析与使用
- Python 实现视频裁剪(附代码) | Python工具
- 修改远程桌面3389端口批处理
- 如何压缩数据与图像?
- 2020-1-17数字逻辑于数字系统课程实验一(门电路逻辑功能及测试)
- 打怪升级之FIFO读完了再读会坏掉嘛?