代码之家  ›  专栏  ›  技术社区  ›  terrywb

opensearchdashboards(kibana)-使用预先配置的索引模式启动docker容器

  •  0
  • terrywb  · 技术社区  · 3 年前

    我有一个docker compose文件,其中包含opensearch:2.7和opensearch仪表板:2.7

    services:
      opensearch:
        image: opensearchproject/opensearch
      opensearch-dashboards:
        image: opensearchproject/opensearch-dashboards
        ports:
        - published: 8094
          target: 5601
    

    我希望opensearch面板在启动时配置一个索引模式。

    我注意到UI将允许我导出索引模式。

    export index pattern from saved object

    然后稍后导入该索引模式。

    import saved object to re-create an index pattern

    使用UI,我可以成功地重新创建索引模式。

    有没有一种方法可以通过docker compose执行此导入?

    • 导出的索引模式可以安装到docker容器中吗?
    • 是否有opensearch仪表板API调用来触发导入?

    附加信息:

    curl -X POST \
         -H "osd-xsrf: true" \
         "http://admin:admin@localhost:8094/api/saved_objects/_import?overwrite=true" \
         --form file=@data/export.ndjson
    

    该操作似乎有效。不幸的是,这不会创建一个保存的对象或索引模式。

    {"successCount":1,"success":true,"successResults":[{"type":"index-pattern","id":"62df61e0-ea0b-11ed-b0ee-5f4ec07e6377","meta":{"title":"ecs*","icon":"indexPatternApp"},"overwrite":true}]}
    
    0 回复  |  直到 3 年前
        1
  •  0
  •   terrywb    3 年前

    这个 post 我上面提到的帮助我解决了这个问题。

    services:
      opensearch:
        image: opensearchproject/opensearch
      opensearch-dashboards:
        image: opensearchproject/opensearch-dashboards
        ports:
        - published: 8094
          target: 5601
      init:
        image: curlimages/curl
        container_name: init
        environment:
        - DOMAIN=my.domain
        entrypoint:
          - /bin/sh
          - '-c'
          - |
              URL=http://admin:admin@$HOSTNAME.$$DOMAIN:8094
              status_code=$$(curl --write-out %{http_code} --silent --output /dev/null $$URL/app/home)
              echo $$status_code
              sleep 2
              while [ $$status_code -ne 200 ]
              do
                status_code=$$(curl --write-out %{http_code} --silent --output /dev/null $$URL/app/home)
                echo $$status_code
                sleep 2
              done
              cat > /tmp/indexpattern.json << HERE
              {
                "attributes": {
                  "title": "ecs-*",
                  "timeFieldName": "@timestamp"
                }
              }
              HERE
              curl --silent -H "osd-xsrf: true" \
                -H "Content-Type: application/json" \
                -H "securitytenant: Global" \
                -d "@/tmp/indexpattern.json" \
                "$URL/api/saved_objects/index-pattern/ecs-*"
              echo 'index pattern imported'
        depends_on:
        - opensearch
        - opensearch-dashboards
    
    
    
    推荐文章