Upgrade

Upgrade #

Here are instructions for the version upgrade of the INFINI Console.

Upgrade from v1.0 to v1.3 #

Download the Console v1.3 installation package and decompress it to overwrite the old version. Restart the Console to complete the upgrade without changing the backend storage engine.

Upgrade from lower version to v1.0 #

Since Console v1.0 has many update functions, when upgrading from a lower version, it is recommended to back up the lower version programs and data first, then download the new version installation package and decompress it to overwrite the old version for upgrade.

Two ways to upgrade:

  • New environment installation and deployment
  • Format override upgrade

New environment installation and deployment #

A new environment means deploying the Console installation to a new disk directory and using a new backend to store Easysearch or Elasticsearch. Deployment and installation instructions reference: Download and install.

Format override upgrade #

Format overwrite upgrade refers to overwrite upgrade based on the original old version, and delete the old version of Console data.

Reminder: If you have important data, please back it up first, you will be responsible for any data loss caused by the deletion operation, please operate with caution.

The operation steps are as follows:

  1. First switch to the Console installation directory /xxx/console, please modify it according to the actual situation.
cd /xxx/console
  1. Stop the Console service

If it is started with -service, it can be stopped in the following way.

./console -service stop

If it is not started by -service, it will solve the problem of stopping the service by itself.

  1. Delete Console data
rm -rif data/ log/ config/
  1. Delete the Console system index and template in Easysearch or Elasticsearch

Remove .infini templates

curl -XDELETE http://localhost:9200/_template/.infini

Delete all Console system indexes starting with .infini

curl -XDELETE http://localhost:9200/.infini*
  1. Download the new version of the Console installation package and decompress it

This process will not be described in detail, please do it yourself.

  1. Restart the Console service

This example starts with -service.

./console -service install
Success
./console -service start
Success
  1. Complete

So far, the formatting coverage upgrade has been completed. You can use a browser to open http://localhost:9000 to access and verify whether the system is normal.

Upgrade from 0.2 to 0.3 #

Update template .infini #

PUT _template/.infini
{
    "order": 0,
    "index_patterns": [
      ".infini_*"
    ],
    "settings": {
      "index": {
        "max_result_window": "10000000",
        "mapping": {
          "total_fields": {
            "limit": "20000"
          }
        },
        "analysis": {
          "analyzer": {
            "suggest_text_search": {
              "filter": [
                "word_delimiter"
              ],
              "tokenizer": "classic"
            }
          }
        },
        "number_of_shards": "1"
      }
    },
    "mappings": {
      "dynamic_templates": [
        {
          "strings": {
            "mapping": {
              "ignore_above": 256,
              "type": "keyword"
            },
            "match_mapping_type": "string"
          }
        }
      ]
    },
    "aliases": {}
}

Close index .infini_cluster #

POST .infini_cluster/_close

Update index settings of .infini_cluster #

PUT .infini_cluster/_settings
{
     "analysis": {
          "analyzer": {
            "suggest_text_search": {
              "filter": [
                "word_delimiter"
              ],
              "tokenizer": "classic"
            }
          }
        }
}

Update index mappings of .infini_cluster #

PUT .infini_cluster/_mapping
{
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "mapping": {
              "ignore_above": 256,
              "type": "keyword"
            }
          }
        }
      ],
      "properties": {
        "basic_auth": {
          "properties": {
            "password": {
              "type": "keyword"
            },
            "username": {
              "type": "keyword"
            }
          }
        },
        "created": {
          "type": "date"
        },
        "description": {
          "type": "text"
        },
        "discovery": {
          "properties": {
            "refresh": {
              "type": "object"
            }
          }
        },
        "enabled": {
          "type": "boolean"
        },
        "endpoint": {
          "type": "keyword"
        },
        "endpoints": {
          "type": "keyword"
        },
        "host": {
          "type": "keyword",
          "copy_to": [
            "search_text"
          ]
        },
        "hosts": {
          "type": "keyword"
        },
        "labels": {
          "properties": {
            "health_status": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "location": {
          "properties": {
            "dc": {
              "type": "keyword"
            },
            "provider": {
              "type": "keyword"
            },
            "rack": {
              "type": "keyword"
            },
            "region": {
              "type": "keyword"
            }
          }
        },
        "monitored": {
          "type": "boolean"
        },
        "name": {
          "type": "keyword",
          "fields": {
            "text": {
              "type": "text"
            }
          }
        },
        "order": {
          "type": "integer"
        },
        "owner": {
          "properties": {
            "department": {
              "type": "keyword",
              "copy_to": [
                "search_text"
              ]
            },
            "id": {
              "type": "keyword"
            },
            "name": {
              "type": "keyword",
              "copy_to": [
                "search_text"
              ]
            }
          }
        },
        "project": {
          "type": "keyword",
          "copy_to": [
            "search_text"
          ]
        },
        "schema": {
          "type": "keyword"
        },
        "search_text": {
          "type": "text",
          "analyzer": "suggest_text_search",
          "index_prefixes": {
            "min_chars": 2,
            "max_chars": 5
          },
          "index_phrases": true
        },
        "tags": {
          "type": "keyword",
          "copy_to": [
            "search_text"
          ]
        },
        "traffic_control": {
          "properties": {
            "max_bytes_per_node": {
              "type": "keyword"
            },
            "max_connection_per_node": {
              "type": "keyword"
            },
            "max_qps_per_node": {
              "type": "keyword"
            },
            "max_wait_time_in_ms": {
              "type": "keyword"
            }
          }
        },
        "updated": {
          "type": "date"
        },
        "version": {
          "type": "keyword",
          "copy_to": [
            "search_text"
          ]
        }
      }
}

Open index .infini_cluster #

POST .infini_cluster/_open

Update console.yml #

The v0.3 version adds a pipeline configuration to the v0.2 version:

- 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" ]
- 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" ]
  1. stop console
  2. add the above configuration under the pipeline module in the console.yml configuration file
  3. start console

Configure ILM for index .infini_alert-history #

The alert module has been added in v0.3. The alert module stores a large amount of index data for execution records, so you need to configure ILM as follows:

PUT _template/.infini_alert-history-rollover
{
    "order" : 100000,
    "index_patterns" : [
      ".infini_alert-history*"
    ],
    "settings" : {
      "index" : {
        "format" : "7",
        "lifecycle" : {
          "name" : "infini_metrics-30days-retention",
          "rollover_alias" : ".infini_alert-history"
        },
        "codec" : "best_compression",
        "number_of_shards" : "1",
        "translog.durability":"async"
      }
    },
    "mappings" : {
      "dynamic_templates" : [
        {
          "strings" : {
            "mapping" : {
              "ignore_above" : 256,
              "type" : "keyword"
            },
            "match_mapping_type" : "string"
          }
        }
      ]
    },
    "aliases" : { }
  }

DELETE .infini_alert-history

DELETE .infini_alert-history-00001
PUT .infini_alert-history-00001
{
  "settings": {
    "index.lifecycle.rollover_alias":".infini_alert-history"
    , "refresh_interval": "5s"
  },
  "aliases":{
    ".infini_alert-history":{
      "is_write_index":true
    }
  },
  "mappings": {
    "properties" : {
        "condition" : {
          "properties" : {
            "items" : {
              "properties" : {
                "expression" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                },
                "minimum_period_match" : {
                  "type" : "long"
                },
                "operator" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                },
                "severity" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                },
                "values" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            },
            "operator" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "condition_result" : {
          "type" : "object",
          "enabled" : false
        },
        "context" : {
          "type" : "keyword",
          "copy_to" : [
            "search_text"
          ]
        },
        "created" : {
          "type" : "date"
        },
        "expression" : {
          "type" : "keyword",
          "copy_to" : [
            "search_text"
          ]
        },
        "id" : {
          "type" : "keyword"
        },
        "is_escalated" : {
          "type" : "boolean"
        },
        "is_notified" : {
          "type" : "boolean"
        },
        "message" : {
          "type" : "keyword",
          "ignore_above" : 256
        },
        "objects" : {
          "type" : "keyword",
          "copy_to" : [
            "search_text"
          ]
        },
        "resource_id" : {
          "type" : "keyword"
        },
        "resource_name" : {
          "type" : "keyword"
        },
        "rule_id" : {
          "type" : "keyword"
        },
        "rule_name" : {
          "type" : "keyword"
        },
        "search_text" : {
          "type" : "text",
          "analyzer" : "suggest_text_search",
          "index_prefixes" : {
            "min_chars" : 2,
            "max_chars" : 5
          },
          "index_phrases" : true
        },
        "severity" : {
          "type" : "keyword"
        },
        "state" : {
          "type" : "keyword",
          "ignore_above" : 256
        },
        "title" : {
          "type" : "keyword"
        },
        "updated" : {
          "type" : "date"
        }
      }
    }
}

Upgrade FAQs #

Fault Description: #

Duplicate index data

Duplicate index data

Solution: #

  • stop console
  • delete index .infini_index
  • start console

Fault Description: #

Duplicate node data

Duplicate node data

Solution: #

  • stop console
  • delete index .infini_node
  • start console

Fault Description: #

The data node has monitoring data, Non-data nodes (master, client, etc.) have no monitoring data, as shown in the following figure:

No monitoring data for non-data nodes

Solution: #

Please upgrade the INFINI Console to the latest version.

Fault Description: #

The page appears blank and JS reports an error.

Solution: #

Please upgrade the INFINI Console to the latest version. Also provide the specific error information to us.

Feedback #

If you have any other questions or suggestions, please submit them to us through the feedback on the right or here, to help us improving the products, thank you for your support!