目标:利用Elasticsearch数据适配,将Elasticsearch数据通过图表进行展示。
方案:图表数据适配时,数据源选择Elasticsearch,通过Elasticsearch SQL语法查询系统Elasticsearch存储数据。
步骤:
确认要查询的Elasticsearch索引名称:通过URL地址http://<安装Elasticsearch的节点IP>:9100访问Elasticsearch管理页面,单击“索引标签”如图-1所示,确认查询Elasticsearch数据所在的索引名称,下面以“h3c_m9k-2018.11.05”为例进行说明。
图-1 ES索引页面
在精细报告中创建一个想要适配的图表,在该图表数据适配页面中的数据源下拉框中选择“ES”,如图-2所示。
在SQL输入框中按照Elasticsearch SQL的语法输入查询数据的SQL语句。例如:
select * from h3c_m9k-2018.11.05 limit 5
Elasticsearch SQL与SQL语法基本相同,支持select、where、order by、group by、and、or、like、 avg()、count()、last()、max()、min()和sum()等关键字,查询时需注意以下几点:
此处仅支持select查询,不支持delete和update操作。
由于Elasticsearch存储数据量较大,在Elasticsearch SQL查询时默认只返回前200条记录,如果需要展示更多记录请在SQL语句后添加limit和想要返回的记录数。记录数若超过10000条会造成前端展示性能变差。
在进行order by、group by等聚合查询时,聚合的字段如果是text类型,需要在字段后加“.keyword”,例如:
select count(*) from h3c_m9k-2018.11.05 group by ldp_dst_city.keyword
where后加条件时,字符串需要用英文单引号括起来,例如:
select * from h3c_m9k-2018.11.05 where ldp_dst_city = 'Beijing' limit 5
如果需要查询某时间范围内的数据,仅需在步骤4中配置时间范围即可。
关于union的说明,此处仅支持一个union,暂不支持多个union查询。
进行时间设置:单击时间设置,在弹出的时间配置界面选择要查询数据的时间范围,如图-3所示。此处提供两种时间范围选择方式,选择好查询时间范围后单击确认按钮。(时间范围是根据索引logTime字段进行查询的,若没有logTime字段,则会根据@timestamp字段查询。)
单击查询,查看结果是否为要适配的数据。并分别选择映射字段单击应用查看效果,如图-4所示。