Logstash 不会向 elasticsearch 发送信息

Logstash 不会向 elasticsearch 发送信息

我安装了 Kibana 环境,但是它无法运行。

当我尝试配置 kibana 时,kibana 说:找不到任何 Elasticsearch 数据

当我列出 elasticsearch 的索引时http://localhost:9200/_cat/indices?v它说:健康状态索引 uuid pri rep docs.count docs.deleted store.size pri.store.size

我认为 logstash 已经准备就绪但无法正常工作,这是我的 logstash 配置

/etc/默认/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 参数必须非空

我该如何解决这个问题?知道发生了什么吗?

答案1

您的诊断是正确的,ElasticSearch 正在运行,但尚未创建索引。这就是您收到此信息的原因:

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

你应该应该获取的是.kibana其中的索引,这是 Kibana 在连接到 ElasticSearch 系统时创建的。

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

就是这样。http://告诉 Logstash 使用未加密的连接连接到本地主机上的 ElasticSearch。理论上,使用裸主机名:端口应该可以实现这一点,但使用 http:// 可以确保这一点。还要确保 LogStash 不会调动 x509 基础设施来连接到其一个输出。

另外,请查看 ElasticSearch 日志以确保它们运行良好。有时,如果它对 Logstash 提供的内容提出异议,您会在其中看到很多炸弹。这些都可以自行诊断。

您应确保您的kibana.yml文件也使用相同的http://localhost:9200设置elasticsearch.url

SSL 是 ElasticSearch 中 X-Pack 的一项付费功能。它非常很容易打开但却不起作用,唉。

答案2

适用于 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"]
  }
}

诚挚的问候,瓦迪姆。

相关内容