Назад | Перейти на главную страницу

Сервер Graylog2 не может подключиться к Elasticsearch

Я пытаюсь следовать Руководство по Digital Ocean кроме использования последних версий компонентов. Мой elasticsearch.yml:

cluster.name: graylog2
network.bind_host: localhost
network.publish_host: localhost
script.disable_dynamic: true

Elasticsearch говорит, что это нормально. Затем пробую три версии graylog2.conf:

is_master = true
node_id_file = /etc/graylog2-server-node-id
password_secret = YRdFrLaoQQfRuSccOhU7Vy8vfoWlobVK5ZXf9G6joag4KyPQMLiITfO6EMysO2VrAwunhqE2e7gAVhuN4izPK0jakrtQqnRg
root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
plugin_dir = plugin
rest_listen_uri = http://127.0.0.1:12900/
rest_transport_uri = http://127.0.0.1:12900/
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 20
retention_strategy = delete
elasticsearch_shards = 1
elasticsearch_replicas = 0
elasticsearch_index_prefix = graylog2
allow_leading_wildcard_searches = false
allow_highlighting = false
elasticsearch_analyzer = standard
output_batch_size = 25
output_flush_interval = 1
processbuffer_processors = 5
outputbuffer_processors = 3
processor_wait_strategy = blocking
ring_size = 1024
dead_letters_enabled = false
lb_recognition_period_seconds = 3
mongodb_useauth = false
mongodb_host = 127.0.0.1
mongodb_database = graylog2
mongodb_port = 27017
mongodb_max_connections = 100
mongodb_threads_allowed_to_block_multiplier = 5
transport_email_enabled = false
transport_email_hostname = mail.example.com
transport_email_port = 587
transport_email_use_auth = true
transport_email_use_tls = true
transport_email_use_ssl = true
transport_email_auth_username = you@example.com
transport_email_auth_password = secret
transport_email_subject_prefix = [graylog2]
transport_email_from_email = graylog2@example.com

Во второй версии добавляю строчку elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9200 и в третьей той же строке с 9300 порт.

С этими конфигами у меня есть 3 лога для sudo java -jar /opt/graylog2-server/graylog2-server.jar --debug: первый, второй и третий. Все они неудачники.

Это какая-то несовместимость версий компонентов? Или есть способ решить эту проблему в моей среде?

Вы должен используйте версию 0.90.10 Elasticsearch с Graylog2 0.20. Он использует двоичный протокол, который, к сожалению, обычно несовместим между версиями.

Эта строка:

org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream

- вот что решает проблему, протокол другой, поэтому клиент Elasticsearch не может подключиться к серверу. Если вы используете 0.90.10, он будет работать.