云端配置杂记

ELK 日志收集配置实战

2020-05-09  本文已影响0人  国服最坑开发

0x00 关于ELK认识

0x01 Logstash配置

根据前一篇的配置, 我们发现主要工作,都集中在Logstash.
而 Logstash 的配置,又是由各种插件组合配置完成.

先来看个配置文件:

input {
        file {
                path => ["/app/my-app/logs/info*.log"]
        }
}

filter {
        grok {
                match => {
                        "message" => [
                                "%{DATA:timestamp}\s+\[INFO\s\]\s%{GREEDYDATA:log_json}"
                        ]
                }
        }

        mutate {
                remove_field => ['_id', '_score', '_type', 'message']
        }

        json {
                source => "log_json"
                target => "json_content"
                remove_field=> ["log_json"]
        }

        if "_grokparsefailure" in [tags] or "_jsonparsefailure" in [tags] {
            drop { }
        }
}

output {
        elasticsearch {
                hosts => ["localhost:9200"]
                index => "push_report"
                template_overwrite => true
        }
}

关于正则表达的调试器(需梯子):
https://grokdebug.herokuapp.com/

0x02 已知问题

  1. 这种方案因为有JSON格式转换,实测CPU占用极高.
    解决方案: 把检索KEY信息单独打印到日志里, 进行匹配后, 再推送到ES即可.

  2. 关于ES日志删除
    可以删除旧的日志文件, 防止 ES磁盘爆炸.

curl -X DELETE http://xx.xx.com:9200/logstash-*-`date +%Y-%m-%d -d "-$n days"`
上一篇下一篇

猜你喜欢

热点阅读