1 Grafana介绍
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
2 下载安装
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.2-1.x86_64.rpm
yum install grafana-enterprise-8.1.2-1.x86_64.rpm
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server
启动服务,打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口。系统默认用户名和密码为admin/admin。
第一次登陆系统会要求修改密码,修改密码后登陆admin/bigdata。
3 grafana使用方法
3.1 启动opentsdb数据源
(1)启动opentsdb
docker run -d -p 4242:4242 --name opentsdb petergrace/opentsdb-docker
(2)发送数据
import requests
import datetime
import random
# 获取当前时间
curtime = datetime.datetime.now()
ts = round(curtime.timestamp()) #时间戳秒
data1 = {
"metric": "press",
"timestamp": str(ts),
"value": str(random.randint(10,50)),
"tags": {
"host": "web01",
"name": "motor"
}
}
data2 = {
"metric": "press",
"timestamp": str(ts),
"value": str(random.randint(10,50)),
"tags": {
"host": "web01",
"name": "motor"
}
}
datalist = [data1,data2]
if __name__ == "__main__":
res = requests.post("http://192.168.43.48:4242/api/put?details", json=datalist)
print(res.text)
3.2 grafana中的操作
(1)添加数据源
首先是添加数据源,点击左边的grafana图标。
Name:库的名称;
Type:选择所需要的库(这里选择OpenTSDB)
Url:optsdb的http访问地址
Version:选择<=2.1版本(根据安装的opentsdb进行选择)
(2)创建DashBoard
创建好数据源之后,就需要创建DashBoard(仪表盘),可以自定义,也可以导入你需要的仪表盘,官方提供了很多的可选仪表盘。