open_resty + elk实现客户端日志上报、展示功能

open_resty + elk实现客户端日志上报和展示功能
整个功能框图如下:


屏幕快照 2017-02-21 上午11.03.41.png

相关知识点:

1. open_resty
2. elk

主要过程:
1.客户端post错误信息到open_resty监听的url,打印请求的结构体到nginx的error_log里面
2.log_stash监听error_log,把文件内容同步到elastic_search里面;
3.通过kibana来查看错误日志

实现:

  1. nginx配置文件
    <pre>
    worker_processes 1;
    error_log logs/error.log;
    events {
    worker_connections 1024;
    }
    http {
    server {
    listen 3030;
    location /report {
    content_by_lua_block {
    local cjson = require("cjson")
    ngx.req.read_body()
    local arg = ngx.req.get_post_args()
    ngx.log(ngx.ERR,cjson.encode(arg)) #body就是错误信息,打 # 印到log里面
    }
    }
    }
    }
    </pre>

  2. log_stash配置文件

<pre>
input {
file {
path => "/home/dhcd/nginx/logs/error.log"
start_position => beginning
}
}
filter {

}
output {
elasticsearch {
hosts => ["172.30.0.219:9200"]
index => "app_error"
}
}
</pre>

3.在kibana里面建立一个app_error的indice就可以了。日志是实时的

屏幕快照 2017-02-21 上午11.23.18.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容