先决条件

1、环境

2、 知识准备

  • 了解如何使用Docker
  • 了解Open Search或Elastic Search

安装

由于Grafana和OpenSearch都提供了Docker的安装方式,且基于OpenSearch支持集群,所以采用docker-compose的方式进行安装。
参考:

1、创建docker-compose.yml文件,然后添加Grafana和Opensearch的配置

version: '3'
services:
  #opensearch 集群 节点1
  opensearch-node-1:
    #如果java jdk版本是1.8,则需要安装1.3+的版本
    #参考:https://opensearch.org/docs/2.3/opensearch/install/compatibility/
    image: opensearchproject/opensearch:1.3.3
    container_name: opensearch-node-1
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node-1
      - discovery.seed_hosts=opensearch-node-1,opensearch-node-2
      - cluster.initial_master_nodes=opensearch-node-1,opensearch-node-2
      - bootstrap.memory_lock=true
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
      - "DISABLE_SECURITY_PLUGIN=true" #禁用安全插件,这样可以免密登录
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536 # 为OpenSearch用户打开的最大文件数,设置为至少65536
        hard: 65536
    volumes:
      # 挂载数据到本地
      - opensearch-data-1:/usr/share/opensearch/data
    ports:
      - 9200:9200
      - 9600:9600
    expose:
      - 9200
      - 9600
    networks:
      # 所有节点配置的网络都为同一个,这样访问其他容器服务时可以直接用node名称作为domain
      - opensearch-grafana-network
  # opensearch 集群 节点2,配置同节点1
  opensearch-node-2:
    image: opensearchproject/opensearch:1.3.3
    container_name: opensearch-node-2
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node-2
      - discovery.seed_hosts=opensearch-node-1,opensearch-node-2
      - cluster.initial_master_nodes=opensearch-node-1,opensearch-node-2
      - bootstrap.memory_lock=true
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
      - "DISABLE_SECURITY_PLUGIN=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - opensearch-data-2:/usr/share/opensearch/data
    networks:
      - opensearch-grafana-network
  # opensearch仪表盘,可以使用它的dev tool来可视化查看数据
  # 如果不需要,这一段可以注释掉
  opensearch-dashboards-1:
    image: opensearchproject/opensearch-dashboards:1.3.3
    container_name: opensearch-dashboards
    ports:
      - 5601:5601
    expose:
      - "5601"
    environment:
      - 'OPENSEARCH_HOSTS=["http://opensearch-node-1:9200","http://opensearch-node-2:9200"]'
      - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true"
    networks:
      - opensearch-grafana-network
  # grafana 配置
  grafana:
    image: grafana/grafana:latest
    ports:
      - 3000:3000
    volumes:
      - grafana-data-1:/var/lib/grafana
    environment:
      - TERM=linux
      - "GF_RENDERING_CALLBACK_URL=http://grafana:3000/"
    networks:
      - opensearch-grafana-network

volumes:
  opensearch-data-1:
  opensearch-data-2:
  grafana-data-1:

networks:
  opensearch-grafana-network:

2、在启动docker容器之前,确保docker-desktop分配的内存大于4GB,否则启动OpenSearch会报错。如果使用的WSL 2, 参考:https://blog.csdn.net/z2431435/article/details/123316551

3、打开命令行或者powershell运行 docker-compose up -d (-d表示后台启动)。第一次运行时会先拉取镜像,可能会耗费较长时间,需要耐心等待

测试

1、容器创建完毕后,访问http://localhost:3000,用默认的账号密码 admin/admin 登录Grafana,登录后可以根据需要修改密码

2、接着访问http://localhost:5601,打开Opensearch Dashboard添加一些示例数据进行测试。先点击 Add data

3、可以随便选择3个示例数据中的一个,这里选择了第二个,因为它提供了时间戳字段,方便grafana进行可视化

4、在Grafana首页,找到左侧设置,点击Data sources, 添加一个新的数据源

5、OpenSearch兼容ElasticSearch,这里可以直接选择ElasticSearch的数据源

6、Name自定义,URL填写OpenSearch集群中第一个节点的地址,即 http://opensearch-node-1:9200。这里opensearch-node-1为第一个节点的容器名称。由于docker配置时禁用了Opensearch的安全插件,Auth的配置项不需要填写

7、转到 OpenSearch Dashboard,打开Dev Tools

8、在工具的左侧,输入GET _cat/indices查询所有的索引,复制之前添加的示例数据的索引

9、然后继续查询该索引下的全部字段,找到date类型的字段名称,这里为timestamp

10、在Grafana 数据源的Elasticsearch details配置项中,填入示例数据的index名称;Time field name填入timestamp;Elasticsearch version选择8.0+的版本,然后点击 “Save & Test按钮”,出现Index OK提示表示数据源配置成功

11、点击Dashboards – New Dashboard,创建一个新的仪表盘

12、然后点击Add a new panel,进入panel的编辑页面,将左下角的data source切换成前面配置的数据源。然后可以点击左上角的保存按钮,保存仪表盘设置。

13、保存后的仪表盘可以在Dashboard – Browse中找到

参考:https://www.elastic.co/cn/what-is/opensearch

原文地址:http://www.cnblogs.com/rachel-x/p/16836472.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性