V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CivAx
V2EX  ›  程序员

你们都是如何使用 ELK 来对业务日志进行 收集 和 查询 的?

  •  
  •   CivAx · 2019-01-30 15:32:37 +08:00 · 4205 次点击
    这是一个创建于 1922 天前的主题,其中的信息可能已经有所发展或是发生改变。

    期初是试图模仿阿里云的日志服务,自建一套日志收集与查询系统。

    在给公司搭建了一套 ElasticSearch + LogStash + Kibaba + FileBeat 后才发现搜索功能根本不能用………使用关键字在 Kibana 中进行查询的时候,只有零星几个结果,明明用 grep 在服务器上直接查 Tomcat 日志可以匹配成千行数据,。

    查来查去似乎是由于 Index 的 Analyzer 配置问题导致的,兜兜转转了三四天还是没有任何头绪如何解决 ELK 系统中 LogStash 与 ElasticSearch 的索引配合问题

    想问问有没有大佬在生产环境上把 ELK 调配得十分完美、能正常使用搜索功能的?想请教是如何做到的,如果愿意深入解答可以有偿,谢谢。

    15 条回复    2019-01-31 13:55:49 +08:00
    mritd
        1
    mritd  
       2019-01-30 15:35:45 +08:00
    建议上分布式日志追踪,容器环境 https://opentracing.io/ 非容器环境 opentrace 里面的那种组建能单独抽出来集成,实质上都是 https://bigbully.github.io/Dapper-translation/
    mogging
        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 语法可以在线调试
    imaple
        3
    imaple  
       2019-01-30 15:42:02 +08:00
    中文日志?
    CivAx
        4
    CivAx  
    OP
       2019-01-30 15:44:52 +08:00
    @mogging #2

    你们的索引是 “先手动建立 ElasticSearch 索引,再由 LogStash 推数据到指定索引”,还是 “直接由 LogStash 推数据,让 ElasticSearch 自动创建索引”

    现在我的索引是在 LogStash 的 config 中指定了

    ```
    output {
    elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "api-%{YYYY+MM+dd}"
    }
    }
    ```

    想请教你们是怎么配置的呢?
    JKeita
        5
    JKeita  
       2019-01-30 15:51:45 +08:00
    这肯定是先建模板让 es 自己生成 index 啊
    dapang1221
        6
    dapang1221  
       2019-01-30 15:55:45 +08:00
    首先说阿里云的 sls 真的跟屎一样,搜东西一回车直接出来历史记录了。。
    建好 elk 之后先用 logstash 往 es 里写日志,写完之后打开 kibana,设置 index,这时候这个 index 的关键词就自动出来了,直接保存就能查了,甚至不用在 es 里建索引
    dapang1221
        7
    dapang1221  
       2019-01-30 15:56:38 +08:00
    dapang1221
        8
    dapang1221  
       2019-01-30 15:57:08 +08:00
    ↑另外分享一个自己做的带日志的 docker,求 star
    linxiaoziruo
        9
    linxiaoziruo  
       2019-01-30 15:58:10 +08:00
    我们就是这套,大部分时间能用,小部分时间会出现日志丢失。我对这套系统是不信任的。系统的稳定性和运维人员的技术水平有很大的关系。
    Wincer
        10
    Wincer  
       2019-01-30 16:01:32 +08:00
    搜索只有零星几条数据但是确保数据确实已经进入了 es 的话,应该是分词的原因了。
    我之前是让 logstash 自动发送数据到 es 中,这个过程中的 template 会自动生成,再根据需要手动修改几项,比如把 string 改成 keyword 之类的。再在 logstash 中指定使用修改后的 template。
    index 则一直都是 logstash 创建。
    aaa5838769
        11
    aaa5838769  
       2019-01-30 16:02:18 +08:00
    创建索引,日志文件建议用 json 格式,
    CivAx
        12
    CivAx  
    OP
       2019-01-30 16:04:00 +08:00
    @Wincer #10 请问这个 手动修改 Template 和 指定使用某 Template 有相关的操作方法或文档吗?
    seanseek
        13
    seanseek  
       2019-01-30 16:07:22 +08:00
    日志文件转成 json 就很容易处理,还有注意看 logstash 的日志,不能解析的 log 会有报错,根据报错去优化 grok
    defunct9
        14
    defunct9  
       2019-01-30 16:32:38 +08:00 via iPhone
    开 ssh,让我上去搭。收费
    Wincer
        15
    Wincer  
       2019-01-31 13:55:49 +08:00
    @CivAx 关键词:logstash set template,elasticsearch set index template
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1074 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:34 · PVG 07:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.