单例命令行界面

编辑

curator_cli 命令允许用户从命令行运行单个受支持的操作,无需客户端或操作 YAML 配置文件,尽管它确实支持使用客户端配置文件(如果需要)。一个重要的额外好处是,命令行选项允许您覆盖curator.yml文件中的设置!

虽然配置文件和命令行参数可以一起使用,但需要注意的是,命令行选项将覆盖相同设置的文件配置。

$ curator_cli --help
Usage: curator_cli [OPTIONS] COMMAND [ARGS]...

  Curator CLI (Singleton Tool)

  Run a single action from the command-line.

  The default $HOME/.curator/curator.yml configuration file (--config) can be used but is not needed.

  Command-line settings will always override YAML configuration settings.

Options:
  --config PATH                   Path to configuration file.
  --hosts TEXT                    Elasticsearch URL to connect to.
  --cloud_id TEXT                 Elastic Cloud instance id
  --api_token TEXT                The base64 encoded API Key token
  --id TEXT                       API Key "id" value
  --api_key TEXT                  API Key "api_key" value
  --username TEXT                 Elasticsearch username
  --password TEXT                 Elasticsearch password
  --bearer_auth TEXT              Bearer authentication token
  --opaque_id TEXT                X-Opaque-Id HTTP header value
  --request_timeout FLOAT         Request timeout in seconds
  --http_compress / --no-http_compress
                                  Enable HTTP compression  [default: no-http_compress]
  --verify_certs / --no-verify_certs
                                  Verify SSL/TLS certificate(s)  [default: verify_certs]
  --ca_certs TEXT                 Path to CA certificate file or directory
  --client_cert TEXT              Path to client certificate file
  --client_key TEXT               Path to client key file
  --ssl_assert_hostname TEXT      Hostname or IP address to verify on the node's certificate.
  --ssl_assert_fingerprint TEXT   SHA-256 fingerprint of the node's certificate. If this value is given then root-of-trust
                                  verification isn't done and only the node's certificate fingerprint is verified.
  --ssl_version TEXT              Minimum acceptable TLS/SSL version
  --master-only / --no-master-only
                                  Only run if the single host provided is the elected master  [default: no-master-only]
  --skip_version_test / --no-skip_version_test
                                  Elasticsearch version compatibility check  [default: no-skip_version_test]
  --dry-run                       Do not perform any changes.
  --loglevel [DEBUG|INFO|WARNING|ERROR|CRITICAL]
                                  Log level
  --logfile TEXT                  Log file
  --logformat [default|ecs]       Log output format
  -v, --version                   Show the version and exit.
  -h, --help                      Show this message and exit.

Commands:
  alias             Add/Remove Indices to/from Alias
  allocation        Shard Routing Allocation
  close             Close Indices
  delete-indices    Delete Indices
  delete-snapshots  Delete Snapshots
  forcemerge        forceMerge Indices (reduce segment count)
  open              Open Indices
  replicas          Change Replica Count
  restore           Restore Indices
  rollover          Rollover Index associated with Alias
  show-indices      Show Indices
  show-snapshots    Show Snapshots
  shrink            Shrink Indices to --number_of_shards
  snapshot          Snapshot Indices

  Learn more at https://elastic.ac.cn/guide/en/elasticsearch/client/curator/8.0/singleton-cli.html

给定命令的选项标志与相同操作使用的选项标志匹配。唯一的区别在于处理过滤的方式。

从 Docker 运行 Curator

编辑

使用 Docker 从命令行运行curator_cli只需要几个额外的步骤。

如果您希望使用它们,基于 Docker 的curator_cli要求您为配置和/或日志文件映射一个卷。如果您忽略了将配置目录卷映射到/.curator,则尝试读取 YAML 配置文件将不起作用。

它看起来像这样

docker run [-t] --rm --name myimagename  \
  --entrypoint /curator/curator_cli      \
  -v /PATH/TO/MY/CONFIGS:/.curator       \
  untergeek/curator:mytag                \
  --config /.curator/config.yml [OPTIONS] COMMAND [ARGS]...

在测试过程中,添加-t标志将分配一个伪终端,允许您查看否则会被隐藏的终端输出。

config.yml文件应该在运行时之前已经存在于/PATH/TO/MY/CONFIGS路径中。

命令中的--rm表示容器(而不是镜像)将在执行完成后删除。您肯定需要这个,因为没有理由为每次运行都创建容器。最终的清理将非常不愉快。

命令行过滤

编辑

Curator 的最新改进包括模式和设置验证。通过这些改进,如果以 Curator 易于理解的方式传递,则可以验证过滤器及其多种排列。

--filter_list TEXT  JSON string representing an array of filters.

这意味着过滤器需要作为单个对象或 JSON 格式的对象数组传递。

单个

--filter_list '{"filtertype":"none"}'

多个

--filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":13},{"filtertype":"pattern","kind":"prefix","value":"logstash"}]'

这保留了链式过滤器的功能,使其可在命令行上使用。

例如,在某些平台或 shell(例如 PowerShell)上,您可能需要转义所有双引号。

此方法的注意事项

  1. 一次只能执行一个操作。
  2. 并非所有操作都有单例模拟。例如,别名
    恢复没有单例操作。

显示索引/快照

编辑

单例命令提供的一个其他命令无法提供的功能是显示系统中有哪些索引和快照。这是一种在不损害系统的情况下直观测试过滤器的绝佳方法。

$ curator_cli show-indices --help
Usage: curator_cli show-indices [OPTIONS]

  Show indices

Options:
  --verbose           Show verbose output.
  --header            Print header if --verbose
  --epoch             Print time as epoch if --verbose
  --filter_list TEXT  JSON string representing an array of filters.
                      [required]
  --help              Show this message and exit.

  Learn more at https://elastic.ac.cn/guide/en/elasticsearch/client/curator/8.0/singleton-cli.html#_show_indicessnapshots
$ curator_cli show-snapshots --help
Usage: curator_cli show-snapshots [OPTIONS]

  Show snapshots

Options:
  --repository TEXT   Snapshot repository name  [required]
  --filter_list TEXT  JSON string representing an array of filters.
                      [required]
  --help              Show this message and exit.

  Learn more at https://elastic.ac.cn/guide/en/elasticsearch/client/curator/8.0/singleton-cli.html#_show_indicessnapshots

show-snapshots命令只显示与提供的过滤器匹配的快照。show-indices命令也会这样做,但还提供了一些额外功能。

  • --verbose添加状态、主分片和所有副本的总大小、文档计数、主分片和副本分片的数量以及 ISO8601 格式的创建日期。
  • --header添加一个显示列名的标题。只有在也选择了--verbose时才会出现。
  • --epoch将日期格式从 ISO8601 更改为纪元时间。如果也选择了--header,则列标题将更改为creation_date

show-snapshots命令没有额外的列或--verbose输出。

不带--epoch

Index               State     Size     Docs Pri Rep   Creation Timestamp
logstash-2016.10.20 close     0.0B        0   5   1 2016-10-20T00:00:03Z
logstash-2016.10.21  open  763.3MB  5860016   5   1 2016-10-21T00:00:03Z
logstash-2016.10.22  open  759.1MB  5858450   5   1 2016-10-22T00:00:04Z
logstash-2016.10.23  open  757.8MB  5857456   5   1 2016-10-23T00:00:04Z
logstash-2016.10.24  open  771.5MB  5859720   5   1 2016-10-24T00:00:00Z
logstash-2016.10.25  open  771.0MB  5860112   5   1 2016-10-25T00:00:01Z
logstash-2016.10.27  open  658.3MB  4872830   5   1 2016-10-27T00:00:03Z
logstash-2016.10.28  open  655.1MB  5237250   5   1 2016-10-28T00:00:00Z

--epoch

Index               State     Size     Docs Pri Rep creation_date
logstash-2016.10.20 close     0.0B        0   5   1    1476921603
logstash-2016.10.21  open  763.3MB  5860016   5   1    1477008003
logstash-2016.10.22  open  759.1MB  5858450   5   1    1477094404
logstash-2016.10.23  open  757.8MB  5857456   5   1    1477180804
logstash-2016.10.24  open  771.5MB  5859720   5   1    1477267200
logstash-2016.10.25  open  771.0MB  5860112   5   1    1477353601
logstash-2016.10.27  open  658.3MB  4872830   5   1    1477526403
logstash-2016.10.28  open  655.1MB  5237250   5   1    1477612800