Kibana-【重新创建Index到ES并通过程序更新数据,最后在Kibana可视化界面展示统计图】
Posted on 2020-08-18 21:35 MissRong 阅读(1081) 评论(0) 收藏 举报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)同理,下面再尝试一个图:


解析:

浙公网安备 33010602011771号