Spec-Zone.ru › Chef 16

ресурс elasticsearch

[править на GitHub]

Используйте ресурс elasticsearch для проверки статуса узла относительно работающего кластера Elasticsearch. Chef InSpec извлекает список узлов из предоставленного URL-адреса узла кластера (по умолчанию http://localhost:9200) и предоставляет возможность запроса различных настроек и статусов.

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс впервые стал доступен в версии v1.43.5 InSpec.

Синтаксис

describe elasticsearch do
  its('property') { should cmp 'value' }
end

Поддерживаемые параметры ресурса

Ресурс elasticsearch принимает ряд необязательных параметров ресурса:

url
URL верхнего уровня узла Elasticsearch в кластере. Если ваш Elasticsearch не доступен из каталога верхнего уровня на хосте, обязательно укажите полный URL-адрес; например: http://my-load-balancer/elasticsearch. По умолчанию: http://localhost:9200
username
имя пользователя для входа с помощью аутентификации HTTP-Basic. Если указан username, также необходимо указать password.
password
пароль для входа с помощью аутентификации HTTP-Basic. Если указан password, также необходимо указать username.
ssl_verify
если false, проверка SSL-сертификатов будет отключена. По умолчанию: true

Кроме того, ресурс elasticsearch позволяет фильтровать узлы, возвращаемые свойством, перед выполнением тестов:

describe elasticsearch.where { node_name == 'one-off-node' } do
  its('version') { should eq '1.2.3' }
end

describe elasticsearch.where { process.mlockall == false } do
  its('count') { should cmp 0 }
end

Для простой проверки наличия узлов, соответствующих критериям, используйте соответствие exist.

describe elasticsearch.where { cluster_name == 'my_cluster' } do
  it { should exist }
end

Свойства

Предоставляются следующие свойства:

  • build_hash cluster_name, host, http, ingest, ip, jvm, module_list, modules, node_name, node_id, os, plugin_list, plugins, process, roles, settings, total_indexing_buffer, transport, transport_address, version

Поскольку ресурс elasticsearch предназначен для использования в кластере, каждое свойство вернет массив значений для каждого узла, соответствующего предоставленным критериям поиска. Использование соответствия cmp InSpec помогает избежать проблем при сравнении значений, когда есть только один совпадение (например, когда кластер содержит только один узел или критерии фильтра where возвращают только один узел).

Примеры свойств

build_hash

Возвращает хеш сборки для каждого узла.

describe elasticsearch do
  its('build_hash') { should cmp 'b2f0c09' }
end

cluster_name

Возвращает имена кластеров каждого из узлов.

describe elasticsearch do
  its('cluster_name') { should cmp 'my_cluster' }
end

host

Возвращает имя хоста каждого из узлов. Это может вернуть IP-адрес, если узел неправильно выполняет разрешение DNS или у него нет имени хоста.

describe elasticsearch do
  its('host') { should cmp 'my.hostname.mycompany.biz' }
end

http

Возвращает хеш настроек, относящихся к HTTP, для каждого узла. В этом примере используется метод first, чтобы получить информацию об HTTP только для первого узла, что является способом удаления элемента из массива, если запрашивается только один узел.

describe elasticsearch do
  its('http.first.max_content_length_in_bytes') { should cmp 123456 }
end

ingest

Возвращает настройки и возможности, связанные с ingest, такие как доступные процессоры.

describe elasticsearch do
  its('ingest.first.processors.count') { should be >= 1 }
end

ip

Возвращает IP-адрес каждого из узлов.

describe elasticsearch do
  its('ip') { should cmp '192.168.1.100' }
end

jvm

Возвращает параметры Java Virtual Machine для каждого из узлов.

describe elasticsearch do
  its('jvm.first.version') { should cmp '1.8.0_141' }
end

module_list

Возвращает список включенных модулей для каждого узла в кластере. Для получения дополнительной информации о каждом модуле используйте свойство modules.

describe elasticsearch do
  its('module_list.first') { should include 'my_module' }
end

modules

Возвращает подробную информацию о каждом включенном модуле для каждого узла в кластере. Для получения краткого списка имен каждого из включенных модулей используйте свойство module_list. В этом примере используется дополнительный Ruby для поиска определенного модуля и утверждения значения.

modules = elasticsearch.modules.first
lang_groovy_module = modules.find { |mod| mod.name == 'lang-groovy' }

describe 'lang-groovy module version' do
  subject { lang_groovy_module }
  its('version') { should cmp '5.5.2' }
end

node_name

Возвращает имя узла для каждого узла в кластере.

describe elasticsearch do
  its('node_name') { should cmp 'node1' }
end

node_id

Возвращает идентификаторы узлов каждого из узлов в кластере.

describe elasticsearch do
  its('node_id') { should include 'my_node_id' }
end

os

Возвращает информацию об ОС для каждого узла в кластере.

describe elasticsearch do
  its('os.first.arch') { should cmp 'amd64' }
end

plugin_list

Возвращает список включенных плагинов для каждого узла в кластере. Для получения дополнительной информации о каждом плагине используйте свойство plugins.

describe elasticsearch do
  its('plugin_list.first') { should include 'my_plugin' }
end

plugins

Возвращает подробную информацию о каждом включенном плагине для каждого узла в кластере. Для получения краткого списка имен каждого из включенных плагинов используйте свойство plugin_list. В этом примере используется дополнительный Ruby для поиска определенного плагина и утверждения значения.

plugins = elasticsearch.plugins.first
my_plugin = plugins.find { |plugin| plugin.name == 'my_plugin' }

describe 'my_plugin plugin version' do
  subject { my_plugin }
  its('version') { should cmp '1.2.3' }
end

process

Возвращает информацию о процессе для каждого узла в кластере, например, идентификатор процесса.

describe elasticsearch do
  its('process.first.mlockall') { should cmp true }
end

roles

Возвращает роль для каждого узла в кластере.

describe elasticsearch.where { node_name == 'my_master_node' } do
  it { should include 'master' }
end

settings

Возвращает все настройки конфигурации для каждого узла в кластере. Эти настройки обычно включают те, которые заданы в elasticsearch.yml, а также те, которые заданы с помощью флагов -Des. или -E при запуске. Используйте inspec shell для изучения различных ключей настроек, которые доступны.

describe elasticsearch do
  its('settings.first.path.home') { should cmp '/usr/share/elasticsearch' }
end

total_indexing_buffer

Возвращает общий буфер индексирования для каждого узла в кластере.

describe elasticsearch do
  its('total_indexing_buffer') { should cmp 123456 }
end

transport

Возвращает настройки, связанные с транспортом, для каждого узла в кластере, такие как привязанные и опубликованные адреса.

describe elasticsearch do
  its('transport.first.bound_address') { should cmp '1.2.3.4:9200' }
end

transport_address

Возвращает привязанный адрес транспорта для каждого узла в кластере.

describe elasticsearch do
  its('transport_address') { should cmp '1.2.3.4:9200' }
end

version

Возвращает версию Elasticsearch, работающую на каждом узле кластера.

describe elasticsearch do
  its('version') { should cmp '5.5.2' }
end

Сопоставления

Полный список доступных соответствий можно найти на нашей странице странице соответствий.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/elasticsearch/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API