Metricbeat WARN Невозможно проиндексировать событие - PullRequest
0 голосов
/ 25 мая 2020

Я видел несколько подобных сообщений, но ни одно из них не решило мою проблему, поэтому:

Я создал кластер elasti c, следуя этому руководству: https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls-docker.html

Я установил встроенные пароли и могу получить доступ к elasticsearch

$ curl -k --user elastic:$ELASTIC_PWD https://localhost:9200/
{
  "name" : "es01",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "hqrGkTUGR0W2Clsaxp75pQ",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Я скопировал центр сертификации на хост-машину (где я буду запускать metricbeat) следующим образом:

sudo -s
mkdir -p /etc/pki/root
docker exec kibana cat /usr/share/elasticsearch/config/certificates/ca/ca.crt > /etc/pki/root/ca.pem

Я могу проверить наличие сертификата:

$ cat /etc/pki/root/ca.pem
-----BEGIN CERTIFICATE-----
<certificate>
-----END CERTIFICATE-----

Пока все хорошо, я установил metricbeat, следуя этому руководству: https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-installation.html

И установите следующие конфигурации на /etc/metricbeat/metricbeat.yml:

setup.kibana:
  host: "https://localhost:5601"
  ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

output.elasticsearch:
  hosts: ["https://localhost:9200"]
  username: "metricbeat"
  password: "<password>"
  ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

Пользователь metricbeat, который я создал в Kibana, следующим образом: https://www.elastic.co/guide/en/beats/metricbeat/current/feature-roles.html

По сути, я создал роль metricbeat_setup с привилегиями кластера monitor и manage_ilm и привилегией индекса manage на metricbeat-*, затем я создал пользователя metricbeat с ролями metricbeat_setup, kibana_admin, ingest_admin, beats_admin, beats_system

Я думаю, что моя проблема может быть здесь, я не совсем понял необходимые разрешения, поэтому я просто все равно переборщил, продолжая ...

Я запустил настройку sudo metricbeat setup -e, и все прошло нормально, без ошибок в настройке, затем я начал с sudo service metricbeat start, но ничего не попадает в elasticsearch, и когда я посмотрите на sudo service metricbeat status, я получаю несколько строк WARN Cannot index event

Я попытался посмотреть журналы в /var/log/metricbeat/, но не нашел там ничего полезного, также в журналах elasticsearch в docker, никакой полезной информации как ну.

Создан индекс metricbeat- * и выделен шард:

$ curl -k --user elastic:$ELASTIC_PWD https://localhost:9200/_cat/indices/metricbeat-*?pretty
green open metricbeat-7.7.0-2020.05.25-000001 p_0nuiX1S8SARk9QZK01EA 1 1 0 0 566b 283b
$ curl -k --user elastic:$ELASTIC_PWD https://localhost:9200/_cluster/allocation/explain?pretty
{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "unable to find any unassigned shards to explain [ClusterAllocationExplainRequest[useAnyUnassignedShard=true,includeYesDecisions?=false]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "unable to find any unassigned shards to explain [ClusterAllocationExplainRequest[useAnyUnassignedShard=true,includeYesDecisions?=false]"
  },
  "status" : 400
}

Итак, пожалуйста, что мне здесь не хватает? Я не могу найти никакой соответствующей информации в журналах или в сообщениях, я видел здесь сообщения, в которых говорилось, что это связано с нехваткой дискового пространства, у меня свободно 14 ГБ, поэтому я думаю, что проблема не в этом. Кроме того, я знаю, что metricbeat может подключаться как к elasticsearch, так и к кибане, потому что он смог создать индекс и панель мониторинга, я могу открыть панель мониторинга в кибане, но нет данных.

Что я делаю не так?

Спасибо

1 Ответ

1 голос
/ 26 мая 2020

Чтобы иметь возможность писать в индекс, пользователь должен иметь привилегию create_doc в желаемом индексе.

В этом случае у пользователя должна быть привилегия index create_doc для каждого индекса с именем metricbeat-*.

источник: предоставить права и роли, необходимые для публикации

...