🧑‍🏫
liualexiang
  • Introduction
  • Azure
    • AKS Basic
    • AKS Spark
    • AZ ACR SYNC
    • Azure CMI SDWAN
    • Azure LB DeepDive
      • Azure LB DeepDive
    • Azure Service Principal Basic
    • Azure Internal VM Network Connectivity
      • Azure Internal VM Network Connectivity
    • Azure Cli Build
    • Azure Vm Memory Monitor
  • Blockchain
    • BTC
  • CRISPR
    • 使用Parallel_Cluster提升CRISPA效率
  • OpenSource
    • ElasticSearch
      • ES Get Started
      • ES Search Query
      • Kibana 可视化
      • Logstash配置
    • Ansible 基础
    • Infra As Code
      • Pulumi Get Started
      • Terraform Basic
    • ZooKeeper 基础
    • RPC与REST
    • 使用Python申请大量内存测试
    • 使用TPC_DS产生压测数据
    • Superset
      • Superset部署手册
    • 代码扫描
    • Git
      • Git Basic
      • Github Action Basic
      • Gitlab与AzureAD集成
      • Gitbook 基础教程
    • K8S
      • enter_node
      • K8s X509 Client Cert
      • K8s Basic
      • K8s Oidc
      • Docker 基础
      • helm基础
      • K8S_Secrets管理
      • 深入了解K8S
      • 混沌工程
      • Istio
      • 生态
      • CRD开发
      • k8s网络
    • Cloud_Custodian
    • Jenkins Basic
    • Nginx
    • ETCD
    • 正则
    • VictoriaMetrics
    • Kafka
  • MySQL
    • MySQL 调优
  • Linux
    • SSH Tunnel 上网
    • 内存管理
    • 在Linux系统中通过LUKS加密磁盘
    • 量子计算 Basic
    • IO多路复用
    • Iptables
    • tmux和screen
    • Systemd
    • OS 基础
    • jq基础
    • yum
    • neovim
  • Web
    • Html Css
    • Web部署
    • 缓存
  • Programming
    • 算法
      • 返回list中最大生序子序列长度
    • Python技巧
      • Python的语法糖
      • Python常用装饰器
      • AsyncIO基础
      • 自动化测试pytest
      • python中的下划线
      • 面向对象
      • Python的坑
      • Python配置文件管理
      • HTTP Stream Response
      • Python项目管理
    • 设计模式
      • 设计模式
      • 面向对象的思想
      • 编程概念
    • Go
      • Go 基础
      • Go常用功能
      • 结构体入门
    • 前端
    • Vue
    • NodeJS
  • Math
    • 多项式插值法
  • Security
    • HTTP常见攻击
    • 加密与签名
    • RSA
    • ECDSA
  • Solidity
    • Solidity基础
    • Blockchain Testnet Faucet
  • Tools
    • 视频处理ffmpeg
    • IDE配置
    • iTerm2美化
    • 密码管理
    • FRP配置
    • 工具集
由 GitBook 提供支持
在本页
  • Kibana 和ES的集成
  • 搜索
  • 创建可视化Visualize
  1. OpenSource
  2. ElasticSearch

Kibana 可视化

上一页ES Search Query下一页Logstash配置

最后更新于1年前

Kibana 和ES的集成

默认情况下,解压Kibana之后,直接运行./bin/kibana即可和本机的 ElasticSearch集成(localhost:9200),但是kibana也监听在本机loccalhost地址上,如果要更改监听地址,那么需要在./conf/kibana.yml文件中指定 server.host: "0.0.0.0"。 Kibana 默认没有用户名密码,ElasticSearch 可以 通过x-pack插件来启用认证,kibana如果要做认证的话,一般做法是在kibana前端挂一个nginx,然后通过nginx来做认证.

注意:Kibana一定要和ES版本一致,否则会出错。 有关更多配置可参考:https://www.elastic.co/guide/en/kibana/current/settings.html

搜索

在,可以直接搜某一个字段的值,如果想要精确搜索某些字段的值,可以用"字段:值 AND 字段:值"的方法进行搜索,示例

destIp:10.21.1.208 AND srcPort:23552

如果要搜索srcIP不是某个值,示例:

NOT srcIp: 10.21.1.208

创建可视化Visualize

  • 创建一个比较常见的柱状图 Vertical bar chart

以统计某个时间段内排名靠前10的destIp为例,同时每一个值还有一个 traffic的字段,这个字段代表了入站或出战流量,我们还想再同一个柱状图上,显示出入站和出站的流量分布 由于要选择统计数据,所以Y-Axis Aggregation选择为Count (默认就是Count), Custom Label可以不写,有可以写为"Total Count" buckets 就是要做的分类,其中 buckets type选择 X-Axis,Aggregation 选为 Terms,Field选为destIp.keyword,这样就以destIp将数据按柱状图展示了。同时Order By选为 metric: Total Count,Order选择Descending降序,Size为10,这样就将Top 10的DestIp取出来,Custom Label可以留空,也可以输入"Top 10 IPs",之后点击下"运行",就可以了。 此时还需要将同一个destIp按出入站流量在同一个柱状图上分开,因此我们还要Add sub-buckets,这次选择Split Bars(如果选择Split Charts,那么会将出站和入站流量在同一个柱状图中以两个柱展示),选择Split Bars的话,就是在一个柱上以颜色区分开,Sub Aggregation依然是Terms,Field为traffic.keyword,其他和之前类似,不做过多解释。之后点击运行看下效果

  • Metric 图表

如果想要在Dashboard中显示一个具体的数值,那么可以在Visualize中选择Metric这个图表 在Metric图表中,还可以显示记录的最早时间,操作如下: 将Aggregation选择为Min,field为date: @timestamp,然后点击运行即可.

  • Pie Chart

同样是设置Aggregation, Field, Order By Order, Size,不再赘述

  • 创建Search,并在Dashboard中展示

在Discover中,可以创建一个search,在search左侧菜单中,添加要展示的字段(默认不添加则显示所有字段),搜索框可以输入 * 全部搜索,也可以自定义,之后保存 在创建dashboard的时候,点击add,除了添加之前在visualize 中保存的charts之外,还可以添加刚刚保存的search结果.

  • 创建Region Map类型的图表

Kibana short url

使用 kibana short url,需要调用 kibana 的api,而并非 ES API,这里的locatorId必须叫LEGACY_SHORT_URL_LOCATOR 这个值

curl -X POST "http://localhost:5601/api/short_url" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-u "USERNAME:PASSWORD" \
-d '{
  "locatorId": "LEGACY_SHORT_URL_LOCATOR",
  "params": {
    "url": "/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time:(from:%272024-05-27T16:13:14.294Z%27,to:%272024-05-27T16:13:36.567Z%27))&_a=(columns:!(customer_first_name,currency),filters:!(),index:%27ff959d40-b880-11e8-a6d9-e546fe2bba5f%27,interval:auto,query:(language:kuery,query:%27%27),sort:!(!(order_date,desc)))"
  }
}'

之后返回的json里有一个值,kibana的 url就是如下拼接

http://127.0.0.1:5601/goto/4ba69454-283e-4f04-ad86-3f6c84f66239

在ES/Kibana 5.5开始,Kibana支持了。以前的Tile Map只能在某个城市上,以圆圈大小来显示数据的多少,但如果想要以城市或者国家在地图上的颜色区分,整个国家或整个城市按颜色深浅来表示数据点的多少,那么可以用Region Map。使用Tile map需要对经纬度坐标保存成 geo_point类型,而Region Map则更友好,支持ISO 3166-1 alpha-2 和 ISO 3166-1 alpha-3的定义格式,可直接识别CN, TW, HK等string类型数据。 Region Map 的使用技巧如下(在7.8.0版本测试): 打开Kibana,点击Maps,Create Map,然后点击Add layer,选择 EMS Boundaries(EMS 为 Elastic Maps Service缩写),由于我们的测试数据来自于全球,所以Layer选择 World Countries,Add Layer,之后进入 Layer settings。 在Layer settings中,Name可以随便写,比如"SourceIP by Country", Visibility 选择0--24,Opacity为透明度,选100%为完全不透明。Tooltip fields点击Add,选择ISO 3166-1 alpha-2 code。Terms Join中,选择Left field为 ISO3166-1 alpha-2 code,Right Source选择ES的index,Right field选择geoip.country_code2.keyword,则表示按国家来区分,之后再地图上就能看到效果了。 但此时所有的颜色都一致,想要根据数据点多少而显示不同的颜色,还需要在Layer Style中,将Fill color选为 By Value,select a field中选择 count of INDEX_NAME, AS number中可以选择颜色。如果想要设置边框,还可以在Border width中设置为固定宽度,或者动态宽度。

搜索栏
Region Maps