先决条件
1、环境
- Windows,内存最好在8GB以上
- 已安装Docker Desktop(下载地址:https://www.docker.com/products/docker-desktop/)
2、 知识准备
- 了解如何使用Docker
- 了解Open Search或Elastic Search
安装
由于Grafana和OpenSearch都提供了Docker的安装方式,且基于OpenSearch支持集群,所以采用docker-compose的方式进行安装。
参考:
- Grafan :https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
- OpenSearch: https://opensearch.org/docs/latest/opensearch/install/docker/
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