Ubuntu使用Grafana搭建监控平台展示OpenTSDB数据

Ubuntu使用Grafana搭建监控平台展示OpenTSDB数据

1、环境配置

1.1版本要求

Hbase 2.2.5

OpenTSDB 2.4.0

Grafana 7.1.1

Grafana官网:https://grafana.com/grafana/download

1.2Grafana安装

依次执行一下三条命令完成安装

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.1.1_amd64.deb
sudo dpkg -i grafana_7.1.1_amd64.deb

基本操作命令

启动:service grafana-server start
停止:service grafana-server stop
重启:service grafana-server restart
加入开机自启动: chkconfig --add grafana-server on

完成安装和启动后访问 http://localhost:3000/ 出现登录界面则表示安装成功

在这里插入图片描述

登录账号为admin,初始密码为admin

1.3Hbase和OpenTSDB

Hbase和OpenTSDB的启动(启动命令可能不一样)

Hbase启动:./start-hbase.sh
OpenTSDB启动:$DBPATH/opentsdb/bin/tsdb tsd --port=4242 --staticroot=$DBPATH/opentsdb/share/opentsdb/static --cachedir=/tmp/tsd

为OpenTSDB创建metric

创建metric:
$DBPATH/opentsdb/bin/tsdb mkmetric test.metric
$DBPATH/opentsdb/bin/tsdb mkmetric test.first
$DBPATH/opentsdb/bin/tsdb mkmetric test.secound

2、Grafana的使用

2.1为Grafana配置OpenTSDB数据源

登陆成功后进入首页,点击下图红框区域,创建数据源

在这里插入图片描述

选择OpenTSDB

在这里插入图片描述

需要配置的主要是url和version

这里要注意,我所使用的OpenTSDB版本为2.4.0,但是Grafana的最新版本7.1.1最多只支持OpenTSDB4.3.0,选择4.3.0,目前并没有发现上面使用异常

在这里插入图片描述

之后点击Save&Test显示创建成功即可使用

此时数据源配置完成

2.2展示数据源

点击左侧仪表盘的 “+” 按钮 create–>dashboard,之后点击Add new panel出现如下界面

在这里插入图片描述

之后在左侧进行数据源的配置

可以指定同一个数据源的不同metric对应的不同标签的数据,也可以将不同数据源的不同metric中数据放到图上进行比较。效果如下

在这里插入图片描述

鼠标左键选择图像上部分可以进行放大操作

在这里插入图片描述

在这里插入图片描述

将鼠标移动到图像上面时湖岸线是当前点击的处的信息

在这里插入图片描述

2.3对数据进行操作

点击首页做出的类似仪表盘的图标的 Explore 进入如下页面,在进行数据剧院和数据的配置后出现如下效果

在这里插入图片描述

同样,这一模块的图像也支持选择放大

在这一模块对数据提供了某些函数操作的功能,如下图

在这里插入图片描述

同时支持散点图的显示

在这里插入图片描述

柱状图的显示

在这里插入图片描述

和对各个时间段的不同数值的显示

在这里插入图片描述

3、Java为OpenTSDB生成数据

1.生成数据的格式

put test.metric 1596196200 28 port=webServer cpu=0
put test.metric 1596196200 28 port=webServer cpu=1
put test.metric 1596196200 33 port=webServer02 cpu=02
put test.first 1596196200 76 port=webServerFirst cpu=01

2.数据生成代码

import java.util.Random;

public class MakeData {
    private String data_String= null;
    public String makeData(int timestamp){
        String metric = "test.secound";
        Random random=new Random();
        int value=random.nextInt(100);
        data_String = "put" + " " + metric+ " " + String.valueOf(timestamp) + " " + String.valueOf(value) + " " + "port=webServerSecond" + " " + "cpu=03";

        return data_String;
    }
}

3.数据写入代码

自定义一个开始时间的时间戳,使用TelnetClient模拟telnet向端口写入数据

时间戳在写入过程中每次自增2

使用50ms的时间间隔进行数据写入

到终止时间时停止,可以在较快的时间内写入较长时间的数据

public class PortSend {

    public static void main(String args[]) throws IOException {
        int timestamp = 1596195060;

        TelnetClient telnetClient = new TelnetClient();
        telnetClient.setDefaultTimeout(50);
        telnetClient.connect("127.0.0.1",4242);
        while (true){
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            MakeData makeData=new MakeData();
            String dataString=makeData.makeData(timestamp);
            System.out.println(dataString);
            PrintStream printStream = new PrintStream(telnetClient.getOutputStream());  //写命令的流
            printStream.println(dataString);//写命令
            printStream.flush();//将命令发送到telnet Server
            timestamp = timestamp+2;
            if(timestamp > 1596196200){break;}
        }
        telnetClient.disconnect();
    }
}

maven导入TelnetClient

        <dependency>
            <groupId>org.phoenixframe</groupId>
            <artifactId>phoenix_telnetclient</artifactId>
            <version>1.4.8</version>
        </dependency>
posted @ 2020-08-01 18:07  博0_oer~  阅读(57)  评论(0编辑  收藏  举报