未使用: 因为有的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定时报表相关推荐

  1. 基于Grafana+SimpleJson的灵活报表解决方案

    在时序分析及监控展现领域,Grafana无疑是开源解决方案中的翘楚,其灵活的插件机制,支持各种漂亮的面板.丰富的数据源以及强大的应用.典型的面板有Graph.Text.Singlestat.PieCh ...

  2. 报表选型除了看开发难易,还要看运维省不省心

    俗话说,报表运维是个坑,有时候被客户坑,有时候被同事坑,有时候被自己坑,坑来坑去还得自己填坑. 比如说,企业大了,业务种类就多了,这时候就不能依靠手工统计报表,企业就会采购或者开发报表系统,然而在选型 ...

  3. JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)

    文章目录 1. 前言 1.1 InfluxDB 和 Grafana是什么? 1.2 JMeter的历代支持变迁 1.3 这篇文章讲了什么? 2. 下载与安装 2.1 InfluxDB 安装 2.2 G ...

  4. 帆软日期格式转换_Web报表工具FineReport定时器使用说明

    本书介绍了报表工具FineReportV6.5定时器功能的相关参数及配置说明,本书最后详细列举了几个使用定时器功能的模板制作示例. 6.5定时器配置简要说明------------------2 6. ...

  5. 报表系统应该如何设计?--开源软件诞生15

    报表系统的设计与探讨--第15篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/re ...

  6. TiDB 在特来电的实践

    背景介绍 特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设.运营及互联网的增值服务.特来电颠覆了传统充电桩的模式,世界首创了电动汽车群智能充电系统, ...

  7. TiDB在特来电的探索

    TiDB在特来电的探索 一.  为什么研究TiDB 特来电大数据平台通过开源与自研相结合的方式,目前已经上线多套集群满足不同的业务需求.目前在大数据存储和计算方面主要使用了Hbase.Elastics ...

  8. TiDB 在特来电的实践 1

    背景介绍 特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设.运营及互联网的增值服务.特来电颠覆了传统充电桩的模式,世界首创了电动汽车群智能充电系统, ...

  9. Java8 Stream性能如何及评测工具推荐

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作为技术人员,学习新知识是基本功课.有些知识是不得不学,有些知识是学了之后如虎添翼,Java ...

  10. 诗歌rails之 定时任务 rufus-scheduler

    相关文章: 关于ROR的定时任务 如何在Rails中实现邮件定时发送? crontab调用rake 不能成功,手动执行rake没问题 推荐圈子: TODOtree-ruby 更多相关推荐 在平时的开发 ...

最新文章

  1. NLTK包和语料库的准备
  2. Python Module — SQLAlchemy ORM
  3. 独家 | 一文读懂Apache Kudu
  4. Python中的测试工具
  5. 【实战】tensorflow 花卉识别
  6. 小大整数对象池及intern机制
  7. pytorch数据预处理
  8. 互联网人理想假期VS现实假期
  9. 某Q娱乐网emlog程序整站源码
  10. android 布局图片缩放,Android中进行图片缩放显示
  11. 三年级下册我想发明的机器人_我想发明的机器人作文300字
  12. 教你查看传说中的WPS2005彩蛋
  13. 诗与远方:无题(九十四)
  14. 常用的OpenCV函数速查
  15. 【计算机二级Python】Python全部内置函数解析与使用
  16. Python 实现视频裁剪(附代码) | Python工具
  17. 修改远程桌面3389端口批处理
  18. 如何压缩数据与图像?
  19. 2020-1-17数字逻辑于数字系统课程实验一(门电路逻辑功能及测试)
  20. 打怪升级之FIFO读完了再读会坏掉嘛?

热门文章

  1. 安装小企鹅游戏(企5)
  2. 如何用公式编辑器打半中括号?
  3. ClickHouse字段分组取TOP N
  4. SharePoint - 如何查询SharePoint ID?
  5. WebSocket网页聊天室
  6. 7月11号,大连小雨
  7. mininet-wifi安装openflow13
  8. 前端大作业之淘宝页面设计
  9. 快递分拣程序 python_顺丰快递分拣程序
  10. IP0_Verilog实现基于双线性插值算法的图像放大IP设计