网上有很多开源的日志分析组件,都比较适合处理大型的日志数据,搭建使用起来有一定的成本。如果日志数据量没有那么大的话,可以考虑根据自己的业务情况,自己搭建一个简单的网站日志分析系统。今天介绍下自己搭建使用的简单日志分析系统,基础架构如下:

Lnmp

网站由linux + nginx + mysql + php搭建,nginx中的相关配置如下:

upstream frontends {
    server 127.0.0.1:8080;
}

server
{
    listen 80;
    server_name _;
    location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends;
       }
    access_log /home/wwwlogs/nginx.log;
}

实际网站是由golang开发,这里用nginx做了一个反向代理,方便记录日志。没有配置日志格式则就是使用nginx默认的日志格式,可以使用shell脚本自动定时按天分割nginx日志,脚本内容如下:

# /bin/bash
mv /home/wwwlogs/nginx.log /home/wwwlogs/nginx_$(date -d "yesterday" +"%Y_%m_%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

Nginxlog

nginxlog是用golang开发的解析nginx日志的系统程序,同时从elasticsearch中查询数据返回json供系统调用展示,代码地址如下: https://github.com/markbest/go-nginx-log

Elasticsearch

elasticsearch是一个分布式的搜索引擎,它可以存储海量的数据以及提供了多个语言的restful api,所以这里选择用elasticsearch进行日志的存储。具体搭建elasticsearch可以自行网上搜索,或者可以直接使用docker进行搭建。 参考文章:使用Docker创建Elasticsearch服务

results matching ""

    No results matching ""