V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
CivAx
V2EX  ›  程序员

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

  •  
  •   CivAx · Jan 30, 2019 · 4789 views
    This topic created in 2657 days ago, the information mentioned may be changed or developed.

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

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

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

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

    15 replies    2019-01-31 13:55:49 +08:00
    mritd
        1
    mritd  
       Jan 30, 2019
    建议上分布式日志追踪,容器环境 https://opentracing.io/ 非容器环境 opentrace 里面的那种组建能单独抽出来集成,实质上都是 https://bigbully.github.io/Dapper-translation/
    mogging
        2
    mogging  
       Jan 30, 2019
    我司用的是容器环境 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  
       Jan 30, 2019
    中文日志?
    CivAx
        4
    CivAx  
    OP
       Jan 30, 2019
    @mogging #2

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

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

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

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