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_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 веб-интерфейса:
$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:
- Проверьте, что сопоставления корректны (требуется запрос GET к URL
индекса, примерно такой:
http://localhost:9200/uint). - Проверьте, что шарды не находятся в состоянии ошибки (должен помочь перезапуск Elasticsearch).
- Проверьте конфигурацию Elasticsearch. Конфигурация должна разрешать доступ с хоста Zabbix веб-интерфейса и хоста Zabbix сервера.
- Проверьте журналы Elasticsearch.
Если у вас по-прежнему возникают проблемы с вашей инсталляцией, пожалуйста, создайте отчет об ошибке со всем информацией из этого списка (сопоставления, журналы ошибок, настройка, версия и так далее)