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

Logstash не отправляет информацию в elasticsearch

У меня установлен environemtent Kibana, но он не работает.

Когда я пытаюсь настроить кибану, кибана говорит: не удалось найти данные Elasticsearch.

Когда я перечисляю индексы elasticseach http: // локальный: 9200 / _cat / индексы? v он говорит: индекс состояния здоровья uuid pri rep docs.count docs.deleted store.size pri.store.size

Я думаю, что logstash готов, но не работает должным образом, это мои конфиги logstash

/ и т.д. / по умолчанию / logstash

JAVACMD="/usr/bin/java"
LS_HOME="/usr/share/logstash"
LS_SETTINGS_DIR="/etc/logstash"
LS_PIDFILE="/var/run/logstash.pid"
LS_USER="root"
LS_GROUP="root"
LS_GC_LOG_FILE="/var/log/logstash/gc.log"
LS_OPEN_FILES="16384"
LS_NICE="19"
SERVICE_NAME="logstash"
SERVICE_DESCRIPTION="logstash"

/etc/logstash/conf.d/logstash.conf

  input {
      file {
        path => "/var/log/apache2/access.log"
        start_position => "beginning"
      }
    }

    filter {
      if [path] =~ "access" {
        mutate { replace => { "type" => "apache_access" } }
        grok {
          match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
      }
      date {
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }

    output {
      elasticsearch {
        hosts => ["localhost:9200"]
      }
    }

Ошибка в системном журнале:

[main] Logstash - java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: (OpenSSL :: X509 :: StoreError) не удалось установить путь по умолчанию: параметр trustAnchors должен быть непустым

Как я могу решить эту проблему? Есть идеи о том, что происходит?

Ваш диагноз правильный, ElasticSearch работает, но индексы не созданы. Вот почему вы получаете это:

health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
[whole lot of nothing]

Что тебе следует должен получать это .kibana index, который Kibana создает в момент подключения к системе ElasticSearch.

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
  }
}

Это то, что должно понравиться. В http:// сообщает Logstash подключиться к ElasticSearch на локальном хосте, используя незашифрованное соединение. Теоретически использование простого имени хоста: порт должно дать вам это, но использование http: // гарантирует это. А также убедитесь, что LogStash не мобилизует инфраструктуру x509 для подключения к своему единственному выходу.

Также посмотрите журналы ElasticSearch, чтобы убедиться, что они работают нормально. Иногда, если нужно возражать против того, что его кормит Logstash, вы увидите там много бомб. Они сами по себе могут быть диагностическими.

Вы должны убедиться, что ваш kibana.yml файл также использует тот же http://localhost:9200 установка для elasticsearch.url.

SSL - это платная функция X-Pack в ElasticSearch. Это очень легко включается и уже не работает, увы.

Для версии java 10.x.

sudo rm /etc/ssl/certs/java/cacerts
sudo update-ca-certificates -f 
sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure 

Для x-pack ...
пытаться

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
  }
}

С уважением, Вадим.