Поддержка Elasticsearch экспериментальная! (поддерживается начиная с Zabbix 3.4.5)
Процедура установки, которая рассматривается в этом разделе, применима к следующим версиям Elasticsearch: 5.0.x -→ 6.1.x. В случае, если используется более старая или более новая версия Elasticsearch, некоторый функционал может не работать должным образом.
Zabbix недавно начал поддерживать хранение данных истории в Elasticsearch вместо базы данных. Теперь пользователям предоставляется возможность выбора места хранения данных истории между совместимой базой данных и Elasticsearch.
Если все данные истории хранятся в Elasticsearch, динамика изменений не будет вычисляться, как и записываться в базу данных. Поскольку динамика изменений не вычисляется и не сохраняется может потребоваться увеличение периода хранения данных истории.
Для обеспечения надлежащей связи между всеми участвующими элементами убедитесь, что параметры файла конфигурации сервера и файл конфигурации веб-интерфейса настроены должным образом.
Выдержка из файла конфигурации 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 сервера:
Подобная конфигурация заставит Zabbix сервер хранить значения истории числовых типов в соответствующей базе данных и текстовых данных истории в Elasticsearch.
Elasticsearch поддерживает следующие типы элементов данных:
Разъяснение поддерживаемых типов элементов данных:
Тип значения элемента данных | Таблица в базе данных | Тип в Elasticsearch |
Числовой (целое положительное) | history_uint | uint |
Числовой (с плавающей точкой) | history | dbl |
Символ | history_str | str |
Журнал (лог) | history_log | log |
Текст | history_text | text |
Выдержка из файла конфигурации 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 веб-интерфейса:
Подобная конфигурация заставит хранить значения истории Текст
, Символ
и Журнал (лог)
в Elasticsearch.
Также требуется сделать $HISTORY глобальной переменной в conf/zabbix.conf.php
, чтобы убедиться, что все работает должным образом (смотрите файл conf/zabbix.conf.php.example
как это сделать):
Последними двумя шагами, чтобы все заработало, нужно установить сам 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:
http://localhost:9200/uint
).Если у вас по-прежнему возникают проблемы с вашей инсталляцией, пожалуйста, создайте отчет об ошибке со всем информацией из этого списка (сопоставления, журналы ошибок, настройка, версия и так далее)