Docker

Container Deployment #

INFINI Console supports container deployment.

Downloading an Image #

The images of INFINI Console are published at the official repository of Docker. The URL is as follows:

https://hub.docker.com/r/infinilabs/console

Use the following command to obtain the latest container image:

docker pull infinilabs/console:latest

Verifying the Image #

After downloading the image locally, you will notice that the container image of INFINI Console is very small, with a size less than 30 MB. So, the downloading is very fast.

✗ docker images              
REPOSITORY                                      TAG       IMAGE ID       CREATED          SIZE
infinilabs/console                            latest    8c27cd334e4c   47 minutes ago   26.4MB

Create configuration #

Now you need to create a configuration file console.yml for basic configuration, as follows:

# for this System Cluster, please use Elasticsearch  v7.3+
elasticsearch:
  - name: default
    enabled: true
    monitored: false
    endpoint: http://192.168.3.188:9299
    basic_auth:
      username: elastic
      password: ZBdkVQUUdF1Sir4X4BGB
    discovery:
      enabled: true

web:
  enabled: true
  embedding_api: true
  auth:
    enabled: true
  ui:
    enabled: true
    path: .public
    vfs: true
    local: true
  network:
    binding: 0.0.0.0:9000
    skip_occupied_port: true
  gzip:
    enabled: true

elastic:
    elasticsearch: default
    enabled: true
    remote_configs: true
    health_check:
      enabled: true
      interval: 30s
    availability_check:
      enabled: true
      interval: 60s
    metadata_refresh:
      enabled: true
      interval: 30s
    cluster_settings_check:
      enabled: true
      interval: 20s
    store:
      enabled: false
    orm:
      enabled: true
      init_template: true
      template_name: ".infini"
      index_prefix: ".infini_"

metrics:
  enabled: true
  major_ip_pattern: "192.*"
  queue: metrics
  elasticsearch:
    enabled: true
    cluster_stats: true
    node_stats: true
    index_stats: true

pipeline:
  - name: indexing_merge
    auto_start: true
    keep_running: true
    processor:
      - indexing_merge:
          input_queue: "metrics"
          elasticsearch: "default"
          index_name: ".infini_metrics"
          output_queue:
            name: "metrics_requests"
            label:
              tag: "metrics"
          worker_size: 1
          bulk_size_in_mb: 10
  - name: consume-metrics_requests
    auto_start: true
    keep_running: true
    processor:
      - bulk_indexing:
          bulk:
            compress: true
            batch_size_in_mb: 10
            batch_size_in_docs: 5000
          consumer:
            fetch_max_messages: 100
          queues:
            type: indexing_merge
          when:
            cluster_available: [ "default" ]
  - name: metadata_ingest
    auto_start: true
    keep_running: true
    processor:
      - metadata:
          bulk_size_in_mb: 10
          bulk_max_docs_count: 5000
          fetch_max_messages: 1000
          elasticsearch: "default"
          queues:
            type: metadata
            category: elasticsearch
          consumer:
            group: metadata
          when:
            cluster_available: [ "default" ]
  - name: activity_ingest
    auto_start: true
    keep_running: true
    processor:
      - activity:
          bulk_size_in_mb: 10
          bulk_max_docs_count: 5000
          fetch_max_messages: 1000
          elasticsearch: "default"
          queues:
            category: elasticsearch
            activity: true
          consumer:
            group: activity
          when:
            cluster_available: [ "default" ]

Note: Please change the relevant configuration of Elasticsearch in the above configuration to the actual server connection address and authentication information, which requires version v7.3 or above.

Starting the Console #

Use the following command to start the INFINI Console container:

docker run -p 9000:9000  -v=`pwd`/console.yml:/console.yml  infinilabs/console:latest

Docker Compose #

You can also use docker compose to manage container instances. Create one docker-compose.yml file as follows:

version: "3.5"

services:
  infini-console:
    image: infinilabs/console:latest
    ports:
      - 9000:9000
    container_name: "infini-console"
    volumes:
      - ../console.yml:/console.yml

volumes:
  dist:

In the directory where the configuration file resides, run the following command to start INFINI Console.

➜  docker-compose up