Kibana-【重新创建Index到ES并通过程序更新数据,最后在Kibana可视化界面展示统计图】

1)首先新创建一个index

// 一、创建索引

@Test

public void createIndex_blog() {

client.admin().indices().prepareCreate("kibana_data").get();

// 关掉连接

client.close();

}

2)接下来插入数据

//十七、循环插入数据-1
    @Test
    public void kibana_data_generate() {
        //创建索引--"kibana_data"
//        client.admin().indices().prepareCreate("kibana_data").get();
        //创建示例数据
        //使用map创建Document
        Map<String,Object> json=null;
        IndexResponse indexResponse=null;
        for(int i=1;i<=1000;i++) {
            json=new HashMap<String, Object>();
            json.put("id", i+"");
            json.put("status_code", generateStatusCode()+"");
            json.put("response_time", Math.random());
            indexResponse=client.prepareIndex("kibana_data", "access_log", i+"").setSource(json).execute().actionGet();
        }
        client.close();
    }
    //以一定的概率产生数据
    private int generateStatusCode() {
        int status_code=0;
        double randomNum=Math.random();
        if(randomNum<=0.7) {
            status_code=200;
        }else if(randomNum<=0.8) {
            status_code=404;
        }else if(randomNum<=0.95) {
            status_code=500;
        }else {
            status_code=401;
        }
        return status_code;
    }

如果要运行程序的话,需要再添加如下代码来建立连接:

public class ESTest_1 {

// 对ES的操作都是通过client

private TransportClient client;

// 注意:加注解才能运行

@SuppressWarnings("unchecked")

@Before

// @Before 以后在操作ES的时候首先获取连接-初始化Client

// 获取连接-初始化Client

public void getClient() throws Exception {

// 1.设置连接集群的名称

Settings settings = Settings.builder().put("cluster.name", "my-application").build();

// 2.连接集群

client = new PreBuiltTransportClient(settings);

// IP,client-客户机操作ES的端口号

client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.212.111"), 9300));

}

整体代码参考:https://www.cnblogs.com/liuxinrong/articles/13515694.html

3)查看ES:

 

4)现在新建统计图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 5)如果再往Kibana_data里面写数据:

//十七、循环插入数据-2
    //再次写入数据
    @Test
    public void kibana_data_generate_again() {
        // 使用map创建document
        // 文档数据准备
        Map<String, Object> json = null;
        IndexResponse indexResponse = null;
        for(int i = 1000; i <= 2000 ; i++){
            json = new HashMap<String, Object>();
            json.put("id", i + "");
            json.put("status_code", generateStatusCode2() + "");
            json.put("response_time", Math.random());
            indexResponse = client.prepareIndex("kibana_data", "access_log", i + "").setSource(json).execute().actionGet();
        }
        // 关闭连接
        client.close();
    }
    //以一定的概率产生数据
    public int generateStatusCode2 () {
        int status_code = 0;
        double randomNum = Math.random();
        if (randomNum <= 0.7) {
            status_code = 500;
        } else if (randomNum <=0.8) {
            status_code = 404;
        } else if (randomNum <=0.95) {
            status_code = 200;
        } else {
            status_code = 401;
        }
        return status_code;
    }

(1)查看ES:

 

(2)现在刷新Kibana可视化界面:

 

----------------------------------------------------------------------------------------------------

6)当然也可以制作其它类型统计图

(1)比如饼图:

 

 

 

 

 

 

 

 

 

 

 (2)同理,下面再尝试一个图:

 

 

 

 

解析:

 

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3