简言

如果领导想要看面板图的日报邮件怎么办呢?

这是一个常见的需求,但是目前Grafana并没有直接支持。所以需要一些特别的方法。这里我们记录一下!

方案:Grafana-reporter

首先有一个开源工具叫Grafana reporter。他的做法是另起一个服务,然后利用Grafana的一个功能:Links.

在Grafana的Dashboard界面,点击设置按钮可以看到左边的标签中有一个“Links”,该功能可以给当前面板上加一些按钮,来调用某些链接(Link)。所以这个工具的做法是另外运行一个HTTP服务,然后在Grafana的面板中添加这个链接,点击后可以生成当前面板的PDF文件,当然也可以下载该PDF文件。

那么利用这个工具,你就可以自行访问该链接,拼装Dashboard的uid进去,得到该面板的PDF文件,通过脚本下载下来后再发邮件就行了。

这个方法的麻烦之处在于需要另外跑一个服务来提供PDF生成能力,而且PDF也不太好直接放在邮件正文里展现,更适合作为附件存在。

1
2
3
4
5
6
yum install go
yum install git
yum install texlive-latex
go get github.com/IzakMarais/reporter/...
go install -v github.com/IzakMarais/reporter/cmd/grafana-reporter
go/bin/grafana-reporter -ip ip:8686 (会开启8686端口)

注意: 需设置grafana允许匿名访问

匿名访问步骤

1
2
3
4
5
6
7
8
9
10
11
编辑/etc/grafana下的grafana.ini文件
#################################### Anonymous Auth ######################
[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

然后就可以了

再分享两个小技巧,假设你现在匿名访问了grafana,如何切换登录呢?

IP:3000/login

退出登录

IP:3000/logout

grafana网页,随便一面板,点击settings——Likns——New——Type:link Url:http://ip:8686/api/v5/report/面板uid(可在网址上看到,http://ip:3000/d/uid) Title随便写,Tooltip随便写,Include全勾——add——会在右上角生成附件图标,点击图标会网页打开pdf内容,可点击下载或打印

举例子

这是我的一个SLA的面板,它的地址是http://192.168.4.200:3000/d/UxvOdcmGk/san-si-slafu-wu?orgId=1&panelId=&fullscreen=&edit=

那么它的uid是UxvOdcmGk,即Link中的地址这样写

http://192.168.4.200:8686/api/v5/report/UxvOdcmGk

完成之后会生成这样的内容

也可命令行通过wget下载为pdf:

1
wget -O shserver.pdf http://ip:8686/api/v5/report/000000095?from=now-7d&to=now

发送邮件:

echo “aa” | mail -s “bb” -a shserver.pdf zhi.yang@ming.com

可写成shell并设置crontab自动发送

参考另一个教程

http://www.bujarra.com/generando-informes-con-grafana-y-programar-su-envio/?lang=zh