为grafana平台接入阿里云日志服务进行实时分析实践

软件环境依赖

grafana
阿里云日志服务

配置阿里云日志服务

日志服务入口https://sls.console.aliyun.com

创建project

图片1
图片2

创建Logstore

图片3
图片4

设置采集、分析方式

图片5
这里我们使用自有主机环境的自建软件(windows)来配置采集nginx日志
图片6
填写目标主机的日志路径及采集格式
图片7
nginx日志格式

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" "$http_host" '
        '"$http_user_agent" "$http_x_forwarded_for" '
        '"$request_body" $request_length $request_time '
        '"$upstream_addr" "$upstream_status" $upstream_response_time';

设置采集的机器组
图片8
图片9
继续下一步,设置确认完成设置
图片10
图片11

Logtail配置

官方文档

这里我们使用自有主机环境的自建软件(windows)来配置采集nginx日志
官方文档入口
为非本账号ECS、自建IDC配置AliUid文档入口

windows版本下载入口
linux版本下载入口

安装步骤

以windows为例:
1.下载软件logtail_installer
2.解压缩logtail_installer.zip到某一目录。
3.根据服务器类型和所在区域选择网络类型后,按照日志服务所在区域安装Logtail。

比如公网环境,华南区服务

1
./logtail_installer.exe install cn-shenzhen-internet

配置用户标识

参考为非本账号ECS、自建IDC配置AliUid文档入口
1.查看阿里云账号ID,即AliUid。登陆账号管理的安全设置页面,查看账号所属的账号ID即为AliUid。
2.登录服务器,配置AliUid作为用户标识。

1
2
3
#windows,在C:/LogtailData/users创建以AliUid作为文件名的文件
mkdir C:/LogtailData/users
type NUL > C:/LogtailData/users/1559122535028493

安装Grafana插件

安装aliyun-log-grafana-datasource插件

1
2
3
cd /var/lib/grafana/plugins/
git clone https://github.com/aliyun/aliyun-log-grafana-datasource-plugin
service grafana-server restart

安装grafana-piechart-panel插件

1
2
3
4
5
6
grafana-cli plugins install grafana-piechart-panel
#或者
wget https://grafana.com/api/plugins/grafana-piechart-panel/versions/1.3.4/download -o grafana-piechart-panel.zip
unzip grafana-piechart-panel.zip
mv grafana-piechart-panel/grafana-piechart-panel-* /var/lib/grafana/plugins/
service grafana-server restart

配置日志服务数据源

选择数据源菜单(Data Sources)
图片12
图片13
添加新的数据源(Add data source)
图片14
各子项含义:

Name:名称,可以自定义,方便识别的名称
Type:类型,选择[LogService]
Url:Endpoint,输入样例:project为dashboard-demo,则url可为http://dashboard-demo.cn-shenzhen.log.aliyuncs.com,定义为 `<project_name>.<region_endpoint>`,[详细定义参考点击此处](https://help.aliyun.com/document_detail/29008.html?spm=5176.2020520112.108.2.53f834c0XEhp4J "详细定义参考点击此处")
Access:访问方式,选择[Browser]
log service details:日志服务详细配置,分别填写project名称,logstore名称,以及具备读取权限的accessKey,accessKey可以是主账号的accessKey,也可以是子帐号的accessKey。
配置完成后点击[Save & Test],即可完成添加dataSource。接下来添加dashboard。

添加dashboard

在左侧菜单中新加一个dashboard
图片15

配置模板变量

在grafana中可以配置模板变量,在同一个视图中,通过选择不同的变量值,展示不同的视图,在本文中,我们配置每个时间区间的大小,以及不同域名的访问情况。

在右上侧点击设置按钮(Setting)
图片16

在左侧菜单中点击[Variables],
在当前页面,如没有变量,则有[Add Variable]按钮
图片17

在当前页面,若有变量,会显示出已经配置的模板变量,可点击[New], 创建新的模板
图片18

我们首先配置一个时间区间,变量的名称是我们在配置中使用的变量,在这里起名为myinterval, 在查询条件中,要写成$myinterval ,会自动替换成页面选择的模板值。
图片19

我们再配置一个域名模板,通常我们在一个vps上可以挂载多个域名,那么我们需要查看不同域名的访问情况,在模板值中,我们输入*,www.host1.com,www.host2.com,*表示我们可以查看所有域名,也可以分别只查看www.host1.com或者www.host2.com的访问情况。
图片20

配置完成后,可以在dashboard页面上方看到刚才配置的模板变量,通过下拉框可以选择任何一个值。例如time interval,所有可选的值如下:
图片21

配置图表定义

这里就不对具体的图表详细介绍了,可使用下面的dashboard定义信息创建,查看dashboard.json ,导入粘贴即可
图片22
点击页面上方的保存按钮,发布dashboard:
图片24
图片25

结果展示

图片23

结束

在页面上方,可以选择统计的时间范围,也可以选择统计的时间粒度,或者选择不同的域名。
图片26
这样整个nginx访问统计的dashboard就完成了,我们可以从视图中挖掘有价值的信息。