Sidebar

ru:manual:appendix:install:elastic_search_setup

3 Установка Elasticsearch

Поддержка Elasticsearch экспериментальная! (поддерживается начиная с Zabbix 3.4.5)
Процедура установки, которая рассматривается в этом разделе, применима к следующим версиям Elasticsearch: 5.0.x –> 6.1.x. В случае, если используется более старая или более новая версия Elasticsearch, некоторый функционал может не работать должным образом.

Zabbix недавно начал поддерживать хранение данных истории в Elasticsearch вместо базы данных. Теперь пользователям предоставляется возможность выбора места хранения данных истории между совместимой базой данных и Elasticsearch.

Если все данные истории хранятся в Elasticsearch, динамика изменений не будет вычисляться, как и записываться в базу данных. Поскольку динамика изменений не вычисляется и не сохраняется может потребоваться увеличение периода хранения данных истории.

Настройка

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

Zabbix сервер и веб-интерфейс

Выдержка из файла конфигурации Zabbix сервера с параметрами, которые необходимо обновить:

### Option: HistoryStorageURL
#	History storage HTTP[S] URL.
#
# Mandatory: no
# Default:
# HistoryStorageURL= 
### Option: HistoryStorageTypes
#	Comma separated list of value types to be sent to the history storage.
#
# Mandatory: no
# Default:
# HistoryStorageTypes=uint,dbl,str,log,text

Пример значений параметров, которые требуется указать в файле конфигурации Zabbix сервера:

HistoryStorageURL=http://test.elasticsearch.lan:9200
HistoryStorageTypes=str,log,text

Подобная конфигурация заставит Zabbix сервер хранить значения истории числовых типов в соответствующей базе данных и текстовых данных истории в Elasticsearch.

Elasticsearch поддерживает следующие типы элементов данных:

uint,dbl,str,log,text

Разъяснение поддерживаемых типов элементов данных:

Тип значения элемента данныхТаблица в базе данныхТип в Elasticsearch
Числовой (целое положительное)history_uintuint
Числовой (с плавающей точкой) history dbl
Символhistory_strstr
Журнал (лог)history_loglog
Текстhistory_texttext

Выдержка из файла конфигурации Zabbix веб-интерфейса (conf/zabbix.conf.php) с параметрами, которые необходимо обновить:

// Elasticsearch url (can be string if same url is used for all types).
$HISTORY['url']   = [
	'uint' => 'http://localhost:9200',
	'text' => 'http://localhost:9200'
];
// Value types stored in Elasticsearch.
$HISTORY['types'] = ['uint', 'text'];

Пример значений параметров, которые требуется указать в файле конфигурации Zabbix веб-интерфейса:

$HISTORY['url']   = 'http://test.elasticsearch.lan:9200';
$HISTORY['types'] = ['str', 'text', 'log'];

Подобная конфигурация заставит хранить значения истории Текст, Символ и Журнал (лог) в Elasticsearch.

Также требуется сделать $HISTORY глобальной переменной в conf/zabbix.conf.php, чтобы убедиться, что все работает должным образом (смотрите файл conf/zabbix.conf.php.example как это сделать):

// Zabbix GUI configuration file.
global $DB, $HISTORY;
Установка Elasticsearch и создание сопоставления

Последними двумя шагами, чтобы все заработало, нужно установить сам Elasticsearch и создать процесс сопоставления.

Чтобы установить Elasticsearch, пожалуйста, обратитесь к инструкции по установке Elasticsearch [en].

Сопоставление является структурой данных в Elasticsearch (аналогично таблице в базе данных). Сопоставления по всем типам данных истории доступны здесь: database/elasticsearch/elasticsearch.map.
Создание сопоставления обязательно. Некоторый функционал будет поломан, если сопоставление не создано согласно этой инструкции.

Для создания сопоставления для типа text отправьте следующий запрос в Elasticsearch:

curl -X PUT \
 http://ваш-elasticsearch.здесь:9200/text \
 -H 'content-type:application/json' \
 -d '{
 "settings" : {
    "index" : {
       "number_of_replicas" : 1,
       "number_of_shards" : 5
    }
 },
 "mappings" : {
    "values" : {
       "properties" : {
          "itemid" : {
             "type" : "long"
          },
          "clock" : {
             "format" : "epoch_second",
             "type" : "date"
          },
          "value" : {
             "fields" : {
                "analyzed" : {
                   "index" : true,
                   "type" : "text",
                   "analyzer" : "standard"
                }
             },
             "index" : false,
             "type" : "text"
          }
       }
    }
 }
}'

Похожий запрос требуется выполнить для создания сопоставлений по значениям истории Символ и Журнал (лог) с соответствующим исправлением типа.

Чтобы работать с Elasticsearch, пожалуйста, обратитесь к странице требований для получения более подробной информации.
Очистка истории не удаляет никакие данные с Elasticsearch.

Решение проблем

Следующие шаги могут помочь вам в решении проблем с установкой Elasticsearch:

  1. Проверьте, что сопоставления корректны (требуется запрос GET к URL индекса, примерно такой: http://localhost:9200/uint).
  2. Проверьте, что шарды не находятся в состоянии ошибки (должен помочь перезапуск Elasticsearch).
  3. Проверьте конфигурацию Elasticsearch. Конфигурация должна разрешать доступ с хоста Zabbix веб-интерфейса и хоста Zabbix сервера.
  4. Проверьте журналы Elasticsearch.

Если у вас по-прежнему возникают проблемы с вашей инсталляцией, пожалуйста, создайте отчет об ошибке со всем информацией из этого списка (сопоставления, журналы ошибок, настройка, версия и так далее)