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

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


open_resty + elk实现客户端日志上报、展示功能_第1张图片
屏幕快照 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配置文件


    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里面
    }
    }
    }
    }

  2. log_stash配置文件


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

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

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

open_resty + elk实现客户端日志上报、展示功能_第2张图片
屏幕快照 2017-02-21 上午11.23.18.png

你可能感兴趣的:(open_resty + elk实现客户端日志上报、展示功能)