期初是试图模仿阿里云的日志服务,自建一套日志收集与查询系统。
在给公司搭建了一套 ElasticSearch + LogStash + Kibaba + FileBeat 后才发现搜索功能根本不能用………使用关键字在 Kibana 中进行查询的时候,只有零星几个结果,明明用 grep 在服务器上直接查 Tomcat 日志可以匹配成千行数据,。
查来查去似乎是由于 Index 的 Analyzer 配置问题导致的,兜兜转转了三四天还是没有任何头绪如何解决 ELK 系统中 LogStash 与 ElasticSearch 的索引配合问题
想问问有没有大佬在生产环境上把 ELK 调配得十分完美、能正常使用搜索功能的?想请教是如何做到的,如果愿意深入解答可以有偿,谢谢。
1
mritd 2019-01-30 15:35:45 +08:00
建议上分布式日志追踪,容器环境 https://opentracing.io/ 非容器环境 opentrace 里面的那种组建能单独抽出来集成,实质上都是 https://bigbully.github.io/Dapper-translation/
|
2
mogging 2019-01-30 15:37:43 +08:00
我司用的是容器环境 ELK
1,进 ES 容器:docker exec -it `docker ps | grep elastics | awk '{print $1}'` /bin/sh 2,先查看索引数据状态:curl -s -XGET http://localhost:9200/_cat/indices?pretty ES 里面的索引状态正常,基本上 Kibana 上就可以手动创建索引了 然后再开始细化 logstash 的过滤语句,gork 语法可以在线调试 |
3
imaple 2019-01-30 15:42:02 +08:00
中文日志?
|
4
CivAx OP @mogging #2
你们的索引是 “先手动建立 ElasticSearch 索引,再由 LogStash 推数据到指定索引”,还是 “直接由 LogStash 推数据,让 ElasticSearch 自动创建索引” 现在我的索引是在 LogStash 的 config 中指定了 ``` output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "api-%{YYYY+MM+dd}" } } ``` 想请教你们是怎么配置的呢? |
5
JKeita 2019-01-30 15:51:45 +08:00
这肯定是先建模板让 es 自己生成 index 啊
|
6
dapang1221 2019-01-30 15:55:45 +08:00
首先说阿里云的 sls 真的跟屎一样,搜东西一回车直接出来历史记录了。。
建好 elk 之后先用 logstash 往 es 里写日志,写完之后打开 kibana,设置 index,这时候这个 index 的关键词就自动出来了,直接保存就能查了,甚至不用在 es 里建索引 |
7
dapang1221 2019-01-30 15:56:38 +08:00
|
8
dapang1221 2019-01-30 15:57:08 +08:00
↑另外分享一个自己做的带日志的 docker,求 star
|
9
linxiaoziruo 2019-01-30 15:58:10 +08:00
我们就是这套,大部分时间能用,小部分时间会出现日志丢失。我对这套系统是不信任的。系统的稳定性和运维人员的技术水平有很大的关系。
|
10
Wincer 2019-01-30 16:01:32 +08:00
搜索只有零星几条数据但是确保数据确实已经进入了 es 的话,应该是分词的原因了。
我之前是让 logstash 自动发送数据到 es 中,这个过程中的 template 会自动生成,再根据需要手动修改几项,比如把 string 改成 keyword 之类的。再在 logstash 中指定使用修改后的 template。 index 则一直都是 logstash 创建。 |
11
aaa5838769 2019-01-30 16:02:18 +08:00
创建索引,日志文件建议用 json 格式,
|
12
CivAx OP @Wincer #10 请问这个 手动修改 Template 和 指定使用某 Template 有相关的操作方法或文档吗?
|
13
seanseek 2019-01-30 16:07:22 +08:00
日志文件转成 json 就很容易处理,还有注意看 logstash 的日志,不能解析的 log 会有报错,根据报错去优化 grok
|
14
defunct9 2019-01-30 16:32:38 +08:00 via iPhone
开 ssh,让我上去搭。收费
|