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

disk_queue:
    reserved_free_bytes: 524288000 #reserve 500MB free storage
    max_bytes_per_file: 52428800 #50MB for each local file
    compress_on_message_payload: #enable compression
      enabled: true
    retention: #only keep 3 recently consumed queue files
      max_num_of_local_files: 3

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

elastic:
    elasticsearch: default
    enabled: true
    remote_configs: true
    health_check:
      enabled: true
    availability_check:
      enabled: true
    metadata_refresh:
      enabled: true
    store:
      enabled: true
    orm:
      enabled: true
      init_template: true
      template_name: ".infini"
      index_prefix: ".infini_"

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

pipeline:
  - name: metrics_ingest
    auto_start: true
    keep_running: true
    processor:
      - json_indexing:
          index_name: ".infini_metrics"
          index_prefix: ".infini_"
          elasticsearch: "default"
          input_queue: "metrics"
          worker_size: 1
          bulk_size_in_mb: 10
  - 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
          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