Áú»¢¶Ä²©

Esta ¨¦ uma tradu??o da p¨¢gina de documenta??o original em ingl¨ºs. Ajude-nos a torn¨¢-la melhor.

6 Configura??o do Elasticsearch

::: 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.

Configura??o

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.

Servidor e frontend Áú»¢¶Ä²©

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:

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

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:

uint,dbl,str,log,texto

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:

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

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):

// Arquivo de configura??o da interface gr¨¢fica do Áú»¢¶Ä²©.
       global $DB, $HIST?RICO;
Instalando o Elasticsearch e criando mapeamento

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..

Armazenando dados do ³ó¾±²õ³Ù¨®°ù¾±³¦´Ç em v¨¢rios ¨ªndices baseados em data

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

Solu??o de problemas

As etapas a seguir podem ajud¨¢-lo a solucionar problemas com a configura??o do Elasticsearch:

  1. Verifique se o mapeamento est¨¢ correto (solicita??o GET para URL de ¨ªndice necess¨¢rio como http://localhost:9200/uint).
  2. Verifique se os fragmentos n?o est?o em estado de falha (a reinicializa??o do Elasticsearch deve ajudar).
  3. Verifique a configura??o do Elasticsearch. A configura??o deve permitir o acesso do host Áú»¢¶Ä²© Frontend e do host do Áú»¢¶Ä²© Server.
  4. Verifique os logs do Elasticsearch.

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.)