Конфигурационный файл лежит по стандартному пути /etc/logstash/logstash.yml.

Для авторизации в кластере можно использовать встроенную учетную запись logstash_system.

Если кластер elasticsearch без авторизации то всё что касается логинов и паролей можно пропустить.

Настройка мониторинга для узлов Logstash

  1. Добавляем логин logstash_system и пароль от него. Как задать пароли стандартным пользователям в кластере я уже писал ранее.
    sudo vim  /etc/logstash/logstash.yml
    
    xpack.monitoring.enabled: true
    xpack.monitoring.elasticsearch.username: logstash_system
    xpack.monitoring.elasticsearch.password: 'pwd'
    
  2. Если кластер elasticsearch с использованием tls, то указываем путь к сертификату центра сертификации
    sudo vim  /etc/logstash/logstash.yml
    
    xpack.monitoring.elasticsearch.ssl.certificate_authority: /etc/logstash/root-ca.crt
    
  3. Указываем ноды кластера для мониторинга logstash
    sudo vim  /etc/logstash/logstash.yml
    
    xpack.monitoring.elasticsearch.hosts: [ "https://elk-node3.my.lan:9122","https://elk-node2.my.lan:9122","https://elk-node1.my.lan:9122" ]
    
  4. На всех нодах elasticsearch в кластере включаем xpack.monitoring.collection
    sudo vim  /etc/elasticsearch/elasticsearch.yml
    
    xpack.monitoring.collection.enabled: true
    
  5. Перезапускаем все ноды elasticsearch в кластере
    sudo systemctl restart elasticsearch
    
  6. В итоге должны получить dashboard в kibana по url enter image description here

Настройка Logstash

  1. Настраиваем дополнительные параметры
    sudo vim  /etc/logstash/logstash.yml
    
    node.name: elk-node3
    #можно оставить по умолчанию
    path.data: /elk/logstash/data
    #можно оставить по умолчанию
    path.logs: /elk/logstash/logs
    path.config: /etc/logstash/conf.d/*.conf
    
  2. Добавляем роль logstash_writer через kibana url enter image description here

  3. Добавляем пользователя logstash_internal и назначаем ему роль logstash_writer через kibana url

  4. Добавляем input и output для logstash. Input - это то, что будет слушать logstash и принимать логи. Output - это то куда и как logstash будет пересылать логи.
    sudo vim  /etc/logstash/conf.d/example.conf
    
    input {
      beats {
     port => 5044
      }
    }
    output {
      elasticsearch {
     hosts => ["https://elk-node3.my.lan:9122","https://elk-node2.my.lan:9122","https://elk-node1.my.lan:9122"]
     user => "logstash_internal"
     password => "pwd"
     cacert => '/etc/logstash/root-ca.crt'
      }
    }
    
  5. Настраиваем файрволл
    sudo firewall-cmd --add-port=5044/udp --permanent
    sudo firewall-cmd --add-port=5044/tcp --permanent
    sudo firewall-cmd --reload
    
  6. Перезапускаем logstash
    sudo systemctl restart logstash
    sudo journalctl -u logstash -f