Metricbeat WARN Невозможно проиндексировать событие

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

Следуя этому руководству, я создал эластичный кластер: 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 в докере, никакой полезной информации тоже.

Создается индекс 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, так и к кибане, поскольку он смог создать индекс и панель мониторинга, я могу открыть панель мониторинга в кибане, но данных нет.

Что я делаю неправильно?

Спасибо


person Lucas Abbade    schedule 25.05.2020    source источник
comment
У вас что-нибудь есть в логах elasticserch?   -  person leandrojmp    schedule 26.05.2020
comment
нет, в elasticsearch ничего не регистрируется   -  person Lucas Abbade    schedule 26.05.2020
comment
Дважды проверьте, есть ли у вашего пользователя привилегии, необходимые для публикации в индексе, похоже, что вам не хватает create_doc привилегии в metricbeat-* индексе для вашего пользователя.   -  person leandrojmp    schedule 26.05.2020
comment
ЭТО БЫЛО, БОЛЬШОЕ СПАСИБО, пожалуйста, опубликуйте свой ответ, чтобы я мог дать ему то, что он заслуживает   -  person Lucas Abbade    schedule 26.05.2020


Ответы (1)


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

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

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

person leandrojmp    schedule 25.05.2020