zl程序教程

您现在的位置是:首页 >  Java

当前栏目

mac 上学习k8s系列(48)es +grafana可视化

2023-02-18 16:32:25 时间

我们知道es一般搭配kibana做可视化,grafana和promethus配合使用,其实对于es中带时间字段的索引,可以作为grafana的数据源,来做一些可视化的监控和报表。下面开始搭建环境。

version: "3"

services:
  elasticsearch:
    image: docker.io/elasticsearch:7.17.6
    # networks:
    # - elastic-jaeger
    ports:
      - "9200:9200"
      - "9300:9300"
    restart: on-failure
    environment:
      - cluster.name=jaeger-cluster
      - discovery.type=single-node
      - http.host=0.0.0.0
      - transport.host=127.0.0.1
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
      - xpack.security.enabled=false
    volumes:
      - ~/bilibili/live/learn/elasticsearch/esdata:/usr/share/elasticsearch/data
    extra_hosts:
     - host.docker.internal:host-gateway
  
  grafana:
    image: grafana/grafana:latest
    restart: always
    container_name: grafana
    hostname: grafana
    environment:
     - TZ=Asia/Shanghai
     - ELASTICSEARCH_HOSTS=http://host.docker.internal:9200
    volumes:
  #  - /opt/grafana/defaults.ini:/etc/grafana/grafana.ini
     - ~/bilibili/live/learn/elasticsearch/grafana:/var/lib/grafana
    ports:
     - 3000:3000
    
  kibana:
    image: docker.io/kibana:7.17.6
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    extra_hosts:
     - host.docker.internal:host-gateway
    # -e ELASTICSEARCH_HOSTS=http://172.17.0.2:9200
    environment:
      - ELASTICSEARCH_HOSTS=http://host.docker.internal:9200

启动容器

docker compose -f learn/elasticsearch/docker-compose-es-grafana.yml up

先登入kibana插入数据http://127.0.0.1:3000/login,用户名和密码都是admin

PUT chengji
{
    "mappings": {
        "properties": {
      "name": {
        "type": "text"
      },
      "name_keyword": {
        "type": "keyword"
      },
      "sex": {
        "type": "keyword"
      },
      "course": {
        "type": "keyword"
      },
      "Score": {
        "type": "integer"
      },
      "ctime":{
        "type": "date",
                "format": "yyyy-MM-dd HH:mm:ss"
      }
       }
    }
}
POST _bulk 
{"index":{"_index":"chengji"}}
{"name":"张三","name_keyword":"张三","sex":"男","course":"语文","Score":76,"ctime":"2022-10-11 12:12:00"}
{"index":{"_index":"chengji"}}
{"name":"张三","name_keyword":"张三","sex":"男","course":"数学","Score":95,"ctime":"2022-10-11 12:13:00"}
{"index":{"_index":"chengji"}}
{"name":"张三","name_keyword":"张三","sex":"男","course":"英语","Score":58,"ctime":"2022-10-11 12:14:00"}
{"index":{"_index":"chengji"}}
{"name":"李四","name_keyword":"李四","sex":"男","course":"语文","Score":68,"ctime":"2022-10-11 12:16:00"}
{"index":{"_index":"chengji"}}
{"name":"李四","name_keyword":"李四","sex":"男","course":"数学","Score":45,"ctime":"2022-10-11 12:18:00"}
{"index":{"_index":"chengji"}}
{"name":"李四","name_keyword":"李四","sex":"男","course":"英语","Score":37,"ctime":"2022-10-11 12:19:00"}
{"index":{"_index":"chengji"}}
{"name":"王五","name_keyword":"王五","sex":"男","course":"语文","Score":81,"ctime":"2022-10-11 12:11:00"}
{"index":{"_index":"chengji"}}
{"name":"王五","name_keyword":"王五","sex":"男","course":"数学","Score":74,"ctime":"2022-10-11 12:21:00"}
{"index":{"_index":"chengji"}}
{"name":"王五","name_keyword":"王五","sex":"男","course":"英语","Score":64,"ctime":"2022-10-11 12:22:00"}
{"index":{"_index":"chengji"}}
{"name":"马六","name_keyword":"马六","sex":"男","course":"语文","Score":69,"ctime":"2022-10-11 12:23:00"}
{"index":{"_index":"chengji"}}
{"name":"马六","name_keyword":"马六","sex":"男","course":"数学","Score":93,"ctime":"2022-10-11 12:24:00"}
{"index":{"_index":"chengji"}}
{"name":"马六","name_keyword":"马六","sex":"男","course":"英语","Score":77,"ctime":"2022-10-11 12:25:00"}
{"index":{"_index":"chengji"}}
{"name":"小丽","name_keyword":"小丽","sex":"女","course":"语文","Score":84,"ctime":"2022-10-11 13:12:00"}
{"index":{"_index":"chengji"}}
{"name":"小丽","name_keyword":"小丽","sex":"女","course":"数学","Score":61,"ctime":"2022-10-11 14:12:00"}
{"index":{"_index":"chengji"}}
{"name":"小丽","name_keyword":"小丽","sex":"女","course":"英语","Score":88,"ctime":"2022-10-11 15:12:00"}
{"index":{"_index":"chengji"}}
{"name":"小梅","name_keyword":"小梅","sex":"女","course":"语文","Score":85,"ctime":"2022-10-11 12:34:00"}
{"index":{"_index":"chengji"}}
{"name":"小梅","name_keyword":"小梅","sex":"女","course":"数学","Score":78,"ctime":"2022-10-11 12:35:00"}
{"index":{"_index":"chengji"}}
{"name":"小梅","name_keyword":"小梅","sex":"女","course":"英语","Score":92,"ctime":"2022-10-11 12:36:00"}
{"index":{"_index":"chengji"}}
{"name":"周美","name_keyword":"周美","sex":"男","course":"语文","Score":96,"ctime":"2022-10-11 12:38:00"}
{"index":{"_index":"chengji"}}
{"name":"周美","name_keyword":"周美","sex":"男","course":"数学","Score":97,"ctime":"2022-10-11 12:40:00"}
{"index":{"_index":"chengji"}}
{"name":"周美","name_keyword":"周美","sex":"男","course":"英语","Score":93,"ctime":"2022-10-11 12:42:00"}

做完后开始配置grafana http://127.0.0.1:5601/app/home

会爆一个错误

Query error
Elasticsearch error: Bad Gateway

这是因为xhyve虚拟机的原因导致没法访问localhost,配置改成如下

问题解决,接着配置索引,选择时序字段。

然后就可以开始配置我们的时序监控面板了,当然也是支持luence查询的