Я видел несколько подобных сообщений, но ни одно из них не решило мою проблему, поэтому:
Я создал кластер 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, так и к кибане, потому что он смог создать индекс и панель мониторинга, я могу открыть панель мониторинга в кибане, но нет данных.
Что я делаю не так?
Спасибо