我安装了 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"]
}
}
诚挚的问候,瓦迪姆。