::: n?o importante O suporte do Elasticsearch ¨¦ experimental!
:::
Áú»¢¶Ä²© suporta o armazenamento de dados ³ó¾±²õ³Ù¨®°ù¾±³¦´Çs por meio do Elasticsearch em vez de um banco de dados. Os usu¨¢rios podem escolher o local de armazenamento para ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç dados entre um banco de dados compat¨ªvel e o Elasticsearch. A configura??o procedimento descrito nesta se??o ¨¦ aplic¨¢vel ao Elasticsearch vers?o 7.X. Caso uma vers?o anterior ou posterior do Elasticsearch seja usado, algumas funcionalidades podem n?o funcionar como pretendido.
Se todos os dados do ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç estiverem armazenados no Elasticsearch, as tend¨ºncias n?o s?o calculadas nem armazenadas no banco de dados. Sem tend¨ºncias calculado e armazenado, o per¨ªodo de armazenamento do ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç pode precisar ser estendido.
Para garantir a comunica??o adequada entre todos os elementos envolvidos, certifique-se de os par?metros do arquivo de configura??o do servidor e do arquivo de configura??o do frontend s?o configurado corretamente.
Rascunho do arquivo de configura??o do servidor Áú»¢¶Ä²© com par?metros a serem atualizados:
### Op??o: HistoryStorageURL
# URL de armazenamento de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç HTTP[S].
#
# Obrigat¨®rio: n?o
# Predefini??o:
# HistoryStorageURL=
### Op??o: HistoryStorageTypes
# Lista separada por v¨ªrgulas de tipos de valores a serem enviados para o armazenamento de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç.
#
# Obrigat¨®rio: n?o
# Predefini??o:
# HistoryStorageTypes=uint,dbl,str,log,texto
Valores de par?metro de exemplo para preencher o arquivo de configura??o do servidor Áú»¢¶Ä²© com:
Esta configura??o for?a o Áú»¢¶Ä²© Server a armazenar valores de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç de tipos num¨¦ricos no banco de dados correspondente e dados de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç textual em Pesquisa el¨¢stica.
O Elasticsearch oferece suporte aos seguintes tipos de itens:
Explica??o do tipo de item suportado:
Tipo de valor de item | Tabela de banco de dados | Tipo de pesquisa el¨¢stica |
Num¨¦rico (sem sinal) | ³ó¾±²õ³Ù¨®°ù¾±²¹³å³Ü¾±²Ô³Ù | uint |
Num¨¦rico (flutuante) | ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç | dbl |
Personagem | ³ó¾±²õ³Ù¨®°ù¾±²¹³å²õ³Ù°ù | str |
Log | ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç_log | log |
Texto | ³ó¾±²õ³Ù¨®°ù¾±²¹³å³Ù±ð³æ³Ù´Ç | texto |
Rascunho do arquivo de configura??o de frontend do Áú»¢¶Ä²© (conf/zabbix.conf.php
) com par?metros a serem atualizados:
// URL do Elasticsearch (pode ser string se o mesmo URL for usado para todos os tipos).
$HISTORY['url'] = [
'uint' => 'http://localhost:9200',
'texto' => 'http://localhost:9200'
];
// Tipos de valor armazenados no Elasticsearch.
$HISTORY['types'] = ['uint', 'text'];
Valores de par?metro de exemplo para preencher o arquivo de configura??o do frontend do Áú»¢¶Ä²© com:
Esta configura??o for?a a armazenar o ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç de Text
, Character
e Log
valores no Elasticsearch.
Tamb¨¦m ¨¦ necess¨¢rio tornar $HISTORY global em conf/zabbix.conf.php
para certifique-se de que tudo est¨¢ funcionando corretamente (consulte conf/zabbix.conf.php.example
para saber como fazer isso):
As duas etapas finais para fazer as coisas funcionarem s?o a instala??o do Elasticsearch em si e criando o processo de mapeamento.
Para instalar o Elasticsearch, consulte .
Mapeamento ¨¦ uma estrutura de dados no Elasticsearch (semelhante a um tabela em um banco de dados). O mapeamento para todos os tipos de dados do ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç est¨¢ dispon¨ªvel aqui: database/elasticsearch/elasticsearch.map
.
A cria??o de mapeamento ¨¦ obrigat¨®ria. Algumas funcionalidades ser¨¢ quebrado se o mapeamento n?o for criado de acordo com o instru??o.
Para criar mapeamento para o tipo text
, envie a seguinte solicita??o para Elasticsearch:
curl -X PUT \
http://your-elasticsearch.here:9200/text \
-H 'content-type:application/json' \
-d '{
"settings": {
"index": {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mappings": {
"properties": {
"itemid": {
"type": "long"
},
"clock": {
"format": "epoch_second",
"type": "date"
},
"value": {
"fields": {
"analyzed": {
"index": true,
"type": "text",
"analyzer": "standard"
}
},
"index": false,
"type": "text"
}
}
}
}'
Solicita??o semelhante deve ser executada para Character
e Log
cria??o de mapeamento de valores de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç com corre??o de tipo correspondente.
Para trabalhar com o Elasticsearch, consulte P¨¢gina de Requisito para em forma??o.
Housekeeper n?o est¨¢ excluindo nenhum dado do Elasticsearch..
Esta se??o descreve as etapas adicionais necess¨¢rias para trabalhar com pipelines e ingerir n¨®s.
Para come?ar, voc¨º deve criar modelos para ¨ªndices.
O exemplo a seguir mostra uma solicita??o para criar o modelo uint:
curl -X PUT \
http://your-elasticsearch.here:9200/_template/uint_template \
-H 'content-type:application/json' \
-d'{
"index_patterns": [
"uint*"
],
"defini??es": {
&±ç³Ü´Ç³Ù;¨ª²Ô»å¾±³¦±ð&±ç³Ü´Ç³Ù;: {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mapeamentos": {
"propriedades": {
"item": {
"tipo": "longo"
},
&±ç³Ü´Ç³Ù;°ù±ð±ô¨®²µ¾±´Ç&±ç³Ü´Ç³Ù;: {
"format": "epoch_second",
"tipo": "data"
},
"valor": {
"tipo": "longo"
}
}
}
}'
Para criar outros modelos, o usu¨¢rio deve alterar a URL (a ¨²ltima parte ¨¦ a nome do modelo), altere o campo "index_patterns"
para corresponder ao nome do ¨ªndice e para definir um mapeamento v¨¢lido, que pode ser obtido de banco de dados/elasticsearch/elasticsearch.map
.
Por exemplo, o comando a seguir pode ser usado para criar um modelo para ¨ªndice de texto:
curl -X PUT \
http://your-elasticsearch.here:9200/_template/text_template \
-H 'content-type:application/json' \
-d'{
"index_patterns": [
"texto*"
],
"defini??es": {
&±ç³Ü´Ç³Ù;¨ª²Ô»å¾±³¦±ð&±ç³Ü´Ç³Ù;: {
"number_of_replicas": 1,
"number_of_shards": 5
}
},
"mapeamentos": {
"propriedades": {
"item": {
"tipo": "longo"
},
&±ç³Ü´Ç³Ù;°ù±ð±ô¨®²µ¾±´Ç&±ç³Ü´Ç³Ù;: {
"format": "epoch_second",
"tipo": "data"
},
"valor": {
"Campos": {
"analisado": {
&±ç³Ü´Ç³Ù;¨ª²Ô»å¾±³¦±ð&±ç³Ü´Ç³Ù;: verdadeiro,
"tipo": "texto",
"analisador": "padr?o"
}
},
&±ç³Ü´Ç³Ù;¨ª²Ô»å¾±³¦±ð&±ç³Ü´Ç³Ù;: falso,
"tipo": "texto"
}
}
}
}'
Isso ¨¦ necess¨¢rio para permitir que o Elasticsearch defina um mapeamento v¨¢lido para ¨ªndices criado automaticamente. Em seguida, ¨¦ necess¨¢rio criar o pipeline defini??o. Pipeline ¨¦ algum tipo de pr¨¦-processamento de dados antes colocando dados em ¨ªndices. O comando a seguir pode ser usado para criar pipeline para o ¨ªndice uint:
curl -X PUT \
http://your-elasticsearch.here:9200/_ingest/pipeline/uint-pipeline \
-H 'content-type:application/json' \
-d'{
"description": "nomea??o di¨¢ria do ¨ªndice uint",
"processadores": [
{
"date_index_name": {
"campo": &±ç³Ü´Ç³Ù;°ù±ð±ô¨®²µ¾±´Ç&±ç³Ü´Ç³Ù;,
"date_formats": [
"UNIX"
],
"index_name_prefix": "uint-",
"date_rounding": "d"
}
}
]
}'
O usu¨¢rio pode alterar o par?metro de arredondamento ("date_rounding") para definir um per¨ªodo espec¨ªfico de rota??o do ¨ªndice. Para criar outros pipelines, o usu¨¢rio deve altere a URL (a ¨²ltima parte ¨¦ o nome do pipeline) e altere campo "index_name_prefix" para corresponder ao nome do ¨ªndice.
Veja tamb¨¦m .
Al¨¦m disso, armazenar dados ³ó¾±²õ³Ù¨®°ù¾±³¦´Çs em v¨¢rios ¨ªndices baseados em datas deve tamb¨¦m ser habilitado no novo par?metro na configura??o do servidor Áú»¢¶Ä²©:
### Op??o: HistoryStorageDateIndex
# Habilite o pr¨¦-processamento de valores de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç no armazenamento de ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç para armazenar valores em diferentes ¨ªndices com base na data.
# 0 - desabilitar
#1 - habilitar
#
# Obrigat¨®rio: n?o
# Predefini??o:
# HistoryStorageDateIndex=0
As etapas a seguir podem ajud¨¢-lo a solucionar problemas com a configura??o do Elasticsearch:
http://localhost:9200/uint
).Se voc¨º ainda est¨¢ tendo problemas com sua instala??o, por favor, crie um relat¨®rio de bug com todas as informa??es desta lista (mapeamento, logs de erros, configura??o, vers?o, etc.)