我有一个dockerized应用程序,其中一些服务使用docker-compose运行.我想使用另一个搬运工-撰写应用,来连接与ElasticSearch/Logstash/Kibana(ELK)本申请搬运工-麋鹿.它们都在开发中的同一个docker机器上运行.在生产中,情况可能并非如此.
如何配置我的应用程序docker-compose.yml以链接到ELK堆栈?
目前我在我的logstash配置文件中做了类似的事情:
filter {
...
mutate {
...
convert => {
"blahId" => "integer"
"blahblahId" => "integer"
...
...
"b...blahId" => "integer"
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我想将所有以"Id"结尾的字段转换为整数.有没有办法在一行中做到这一点?这样的事情"*Id" => "integer"是什么?
编辑:我试过了
convert => {
"*Id" => "integer"
}
Run Code Online (Sandbox Code Playgroud)
正如我所料,没有奏效.
也许使用红宝石过滤器?
我想知道如何为获取的不同日志创建分离的索引logstash(后来传递到其中elasticsearch),因此kibana,我可以为它们定义两个索引并发现它们.
在我的例子中,我有一些客户端服务器(每个都安装了filebeat)和一个集中的日志服务器(ELK).每个客户端服务器有不同类型的日志,例如redis.log,python日志,mongodb日志,我喜欢把它们归类到不同的索引和存储elasticsearch.
每个客户端服务器还用于不同的目的,例如数据库,UI,应用程序.因此我也想给它们不同的索引名称(通过改变输出索引filebeat.yml?).
我有以下场景:
我在弹性搜索中有以下索引。
现在假设,我想在日期之间的弹性搜索中搜索一些数据 - 2016.04.11 到 2016.04.16。我的问题是:
我们有没有办法运行单个查询并定义一些过滤器参数,以便仅在这两个日期之间的索引中进行搜索?
如果不是,那么我们如何优化搜索查询 如果我们需要在某个索引范围内搜索数据?
Java 实现。
请帮忙..
由于这些限制,我不允许从互联网上安装任何软件包.所以,这个命令对我来说对安装搜索防范没有用.
bin/elasticsearch-plugin install -b com.floragunn:search-guard-ssl:<version>
Run Code Online (Sandbox Code Playgroud)
但是,我可以通过运行上面的命令在不同的网络上成功安装Search Guard.
由于这个原因,我尝试根据文档通过以下命令从tar.gz或zip文件安装Search Guard .
/usr/share/elasticsearch# bin/elasticsearch-plugin install file:///home/xxxx/xxxx/search-guard-5-5.2.0-10-sgadmin-standalone.zip
Run Code Online (Sandbox Code Playgroud)
这个失败,出现以下错误.
-> Downloading file:///home/xxx/xxxx/search-guard-5-5.2.0-10- sgadmin-standalone.zip
[=================================================] 100%
ERROR: `elasticsearch` directory is missing in the plugin zip
Run Code Online (Sandbox Code Playgroud)
我下载的zip/tar.gz的从这个搜索gaurd的Maven仓库.
是否有人也面临同样的问题.如果没有,请帮助解决这个问题.
elasticsearch elasticsearch-plugin elastic-stack elasticsearch-5
我正在 AWS 集群上重新分配节点 1 的 AWS ES 集群中的副本分片。我希望主分片和副本分片都驻留在那里。但是当运行以下命令时出现错误
curl -XPOST 'http://AWS-CLuster-name.com/_cluster/allocation/reroute' -d '{ "commands": [{"allocate_replica":{"index": ".kibana", "shard": 0, node: "nodename" "primary": false }'
Run Code Online (Sandbox Code Playgroud)
运行上述命令时,出现以下错误。
{"Message":"Your request: '/_cluster/allocation/reroute' is not allowed."}
Run Code Online (Sandbox Code Playgroud)
这是否意味着 AWS 中不允许手动分配分片?任何人都可以请澄清。
谢谢
我有一个正在运行的 elasticsearch 集群,我正在尝试将 kibana 连接到这个集群(同一节点)。目前,当我尝试使用 : 在浏览器中打开服务时,页面挂起。. 在我的 kibana pod 日志中,pod 中的最后几条日志消息是:
{"type":"log","@timestamp":"2017-10-13T17:23:46Z","tags":["listening","info"],"pid":1,"message":"Server running at http://0.0.0.0:5601"}
{"type":"log","@timestamp":"2017-10-13T17:23:46Z","tags":["status","ui settings","error"],"pid":1,"state":"red","message":"Status changed from uninitialized to red - Elasticsearch plugin is red","prevState":"uninitialized","prevMsg":"uninitialized"}
{"type":"log","@timestamp":"2017-10-13T17:23:49Z","tags":["status","plugin:ml@5.6.3","error"],"pid":1,"state":"red","message":"Status changed from yellow to red - Request Timeout after 3000ms","prevState":"yellow","prevMsg":"Waiting for Elasticsearch"}
Run Code Online (Sandbox Code Playgroud)
我挂载到 kibana pod 中的 kibana.yml 文件具有以下配置:
server.name: kibana-logging
server.host: 0.0.0.0
elasticsearch.url: http://elasticsearch:9300
xpack.security.enabled: false
xpack.monitoring.ui.container.elasticsearch.enabled: true
Run Code Online (Sandbox Code Playgroud)
并且我的 elasticsearch.yml 文件具有以下配置设置(我有 3 个 es pod)
cluster.name: elasticsearch-logs
node.name: ${HOSTNAME}
network.host: 0.0.0.0
bootstrap.memory_lock: false
xpack.security.enabled: false
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["172.17.0.3:9300", "172.17.0.4:9300", "172.17.0.4:9300"] …Run Code Online (Sandbox Code Playgroud) 也许我缺少一些简单的东西,但是仍然无法弄清楚以下事情:
从ES 6.x开始,该_all字段已弃用,建议使用copy_to说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-to.html)。
但是,给我的印象是,您需要显式指定要复制到自定义_all字段的字段。但是,如果我使用动态映射,则我事先不知道字段,因此不能使用copy_to?。
我可以通过什么方式告诉ES将所有遇到的字段复制到自定义_all字段,以便可以在所有字段中进行搜索?
提前致谢!
我正在尝试索引一个有 50,000 条日志的 12mb 日志文件。索引大约 30,000 条日志后,出现以下错误
[2018-04-17T05:52:48,254][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 429 ({"type"=>"es_rejected_execution_exception", "reason"=>"rejected execution of org.elasticsearch.transport.TransportService$7@560f63a9 on EsThreadPoolExecutor[name = EC2AMAZ-1763048/bulk, queue capacity = 200, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@7d6ae98b[Running, pool size = 2, active threads = 2, queued tasks = 200, completed tasks = 3834]]"})
Run Code Online (Sandbox Code Playgroud)
但是,我浏览了文档和 elasticsearch 论坛,它们建议我增加 elasticsearch 批量队列的大小。我尝试使用 curl 但我无法做到这一点。
curl -XPUT localhost:9200/_cluster/settings -d '{"persistent" : {"threadpool.bulk.queue_size" : 100}}'
Run Code Online (Sandbox Code Playgroud)
增加队列大小是个好选择吗?我无法增加硬件,因为我的数据较少。
我面临的错误是由于队列大小问题还是其他原因?如果使用队列大小如何更新elasticsearch.yml中的队列大小,在elasticsearch.yml中更新后是否需要重新启动es?
请告诉我。谢谢你的时间
我们使用 Elastic 6.0 和 Nest,有 1 个主副本和 3 个副本。有时,当我们运行查询时,它会返回空结果,而当我们立即再次运行它时,它会返回适当的结果。这是随机发生的,我看不到任何模式。我不知道是什么原因造成的,我可以提供更多信息。
谢谢