简介
grafana可以连接各种数据源, 并通过给定的SQL语句做数据的定时统计和web大屏展示,也可以对外提供API进行展示, 类似这样
内含多种不同类型图表, 可以涵盖很多种监控需求, 报表可视化需求.
安装:
在线安装(以centOS为例):
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.6-1.x86_64.rpm
sudo yum install grafana-enterprise-9.3.6-1.x86_64.rpm
离线安装
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.6.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-9.3.6.linux-amd64.tar.gz
配置grafana
grfana的默认配置文件在conf/defaults.ini
绿色版grafana,我们需要定制化配置文件,新建一个custome.ini路径放在
grafana/conf/custome.ini
在custome.ini中修改的配置会覆盖defaults.ini中的配置,所以不要修改默认的defaults.ini
grafana给我们提供了一个例子conf/sample.ini
, 我们修改一下放到对应位置即可
sudo cp conf/sample.ini conf/custom.ini
sudo vi conf/custom.ini
grafana的配置项超级多,我们可以改一些主要的配置
启动grafana:
在grafana的bin目录下执行./grafana-server ../conf/custom.ini
即可
配置mysql数据源:
添加mysql数据源
配置访问路径和密码
新建一个dashborad大屏
添加一个panel窗口
配置panel
举例, 比方我们要监控一个表每个小时产生的数据量
sql如下
SELECT from_unixtime(left(ts,10),'%Y-%m-%d %H') as '时间',COUNT(0) as '数量'
FROM formation_stop_data
GROUP BY from_unixtime(left(ts,10),'%Y-%m-%d %H');
然后再选择合适的图表样式(有很多默认样式)
如果满意则点击save + apply提交
dashboard就添加了一个panel,可以添加多个panel,而且可以随意拖动改变大小.
右上角还能调节定时刷新数据的时间间隔和时间范围
配置TDengine
grafana集成tdengine需要安装插件:
离线安装
TDengine 的 Grafana 插件托管在 GitHub,可从 https://github.com/taosdata/grafanaplugin/releases/latest 下载
下载到本地并解压到 Grafana 插件目录。
GF_VERSION=3.1.3
sudo unzip tdengine-datasource-$GF_VERSION.zip -d /var/lib/grafana/plugins/
注意如果是绿色版则默认放在data/plugins ,如果没有这个文件夹则需要自己创建, 解压放好重启grafana就可以看到了
**注意**:如果没有安装unzip会报错, 下载unzip并安装:
安装步骤如下:
1、下载unzip 离线包 :
unzip-6.0-19.el7.x86_64.rpm 软件下载: https://pan.baidu.com/s/1wRCu8V3XaWJNCCj890kKkg 提取码:bn0o
2、安装
将离线包放到Linux任意目录,执行rpm -Uvh unzip-6.0-19.el7.x86_64.rpm命令安装.
Grafana 7.3+ / 8.x 版本会对插件进行签名检查,因此还需要在 grafana.ini 文件中增加如下行,才能正确使用插件:
[plugins]
allow_loading_unsigned_plugins = tdengine-datasource
在线安装
如果你的电脑可以联网就方便多了, 只需要在bin目录下执行以下指令即可安装
./grafana-cli plugins install tdengine-datasource
重启grafana
bin目录下./grafana-server ../conf/custom.ini
重启后在grafana的plugin这一栏就能看到tdengine的插件了
创建tdengine的链接
- 先保证tdengine的taosadapter时启动状态
[pmish@localhost bin]$ systemctl status taosadapter
● taosadapter.service - adapter service
Loaded: loaded (/etc/systemd/system/taosadapter.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2023-04-20 16:17:39 CST; 11min ago
Main PID: 5109 (taosadapter)
CGroup: /system.slice/taosadapter.service
└─5109 /usr/bin/taosadapter
- 开机自动启动
systemctl enable taosadapter
- 在grafana上选择add DataSource -> tdengine
- 新建一个dashboard->panel选择数据源为我们建立的这个tdengine
在下面的input sql处写你要做查询的sql语句,以td的语法, 然后点击Generate SQL确认SQL
比如我这里查lbfs库的division表每分钟数据量:
select
TIMETRUNCATE(ts,1m),
count(ts)
from lbfs.division
where
ts >= $from and ts < $to
group by
TIMETRUNCATE(ts,1m);
其中$from
$to
都是tdengine插件的内置函数,代表从grafana页面上获取的查询起始和结束时间.
效果如下:
grafana也有一些全局的内置参数, 比如$__from
,$__to
注意是双下划线.
- Grafana内置参数(双下划线)
$__dashboard
当前dashboard的名称
$__from $__to
时间范围的毫秒值
可自定义格式,比如:{$__from: date :YYYY-MM-DD HH:mm:ss} {$__from: date :seconds}
$__interval
查询的时间间隔,包含单位,比如:30s,2m
$__interval_ms
查询的时间间隔,毫秒值
$__range
查询的时间区间大小,包含单位,比如:2d
$__range_s $__range_ms
查询的时间区间大小,分别是秒数和毫秒数
$__timeFilter
返回当前选择的时间范围表达式,比如:time > now() -7d,常用于数据库作为datasource的时候。
grafana设置开启自启
# 1.创建文件 grafana.service
vim /lib/systemd/system/grafana.service
# 2.填入一些内容
[Unit]
Description=grafana service
After=network.target
[Service]
Type=simple
Restart=on-failure
ExecStart=/home/pmish/software/grafana-9.3.6/bin/grafana-server -homepath=/home/pmish/software/grafana-9.3.6/
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 3.保存并退出 :wq
# 4.刷新systemctl
systemctl daemon-reload
# 5. 设置开机启动,注意此处grafana等价于grafana.service
systemctl enable grafana
# 6.启动grafana,注意此处grafana等价于grafana.service
systemctl start grafana
# 查看grafana运行状态
systemctl status grafana
# 取消开机启动grafana
systemctl disable grafana
这里只是最最简单的使用, 更多的tdengine查询语法和grafana自定义dashboard还要看官方文档慢慢研究才行.
TD官方文档:https://docs.taosdata.com/taos-sql/function/
grafana官网:https://grafana.com/grafana/